Forum > Other

assembler

<< < (3/5) > >>

Thaddy:

--- Quote from: MarkMLl on July 17, 2024, 10:42:34 am --- meta-assembler etc.,

--- End quote ---
You mean a high-level language compiler.. :D

Anyway, an assembler depends on a processor family or even something else like java byte code or wasm.
Quite a few are implemented as basm in FPC and they are quite good too.
Other remark:
An assembler need not optimize, in fact never does: as a programmer you are on your own to write optimal assembler code and often a high-level language compiler does it MUCH better than you or I can. In yesteryears that was not true, but now it is.

Fred vS:
Hello.

When cross-compiling fpc 3.3.1 source form Linux amd64 to FreeBSD aarch64 using fpcupdeluxe and his provided aarch64-freebsd-as the compilation is ok. Note that I have to copy  /from_fpupdeluxe_cross_bin/aarch64-freebsd13-as in /usr/bin/ and rename it as aarch64-freebsd13as otherwise there is a "assembler not found" error.

But if I try to re-compile fpc 3.3.1 source on a real FreeBSD 14.0 aarch64 machine using the provided "as" assembler, the compilation fails with operand mismatch errors (see picture).
Must I use a other assembler?

MarkMLl:

--- Quote from: Thaddy on July 17, 2024, 11:59:32 am ---
--- Quote from: MarkMLl on July 17, 2024, 10:42:34 am --- meta-assembler etc.,

--- End quote ---
You mean a high-level language compiler.. :D

--- End quote ---

No, I most definitely do not.

I mean the directives etc. which- as I said- determine how things are laid out, and which have some limited degree of similarity between assembler for different targets (unlike the opcodes themselves).

MarkMLl

Thaddy:

--- Quote from: Fred vS on July 17, 2024, 12:35:56 pm ---But if I try to re-compile fpc 3.3.1 source on a real FreeBSD 14.0 aarch64 machine using the provided "as" assembler, the compilation fails with operand mismatch errors (see picture).
Must I use a other assembler?

--- End quote ---
Almost always use the toolchain provided by arm. fpcupdeluxe usually picks that up. The latest stable is 13.3 and is available as a separate download from the arm developers website:
https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads.
I would only do that if the freebsd version is behind.

(You can also find the cross-tools there to and from almost anything, so take the time to see what you want)

Fred vS:

--- Quote from: Thaddy on July 17, 2024, 04:14:49 pm ---
--- Quote from: Fred vS on July 17, 2024, 12:35:56 pm ---But if I try to re-compile fpc 3.3.1 source on a real FreeBSD 14.0 aarch64 machine using the provided "as" assembler, the compilation fails with operand mismatch errors (see picture).
Must I use a other assembler?

--- End quote ---
The latest stable is 13.3 and is available as a separate download from the arm developers website:
https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads.
I would only do that if the freebsd version is behind.

--- End quote ---

Thanks Thaddy for that precious link, I will explore it deeply.


--- Quote ---(You can also find the cross-tools there to and from almost anything, so take the time to see what you want)
--- End quote ---

For cross-compiling fpc 3.1.1, all works, only the FreeBSD binary brandelf-Linux is needed to "brandelf" at end of compilation and a fix in t_bsd.pas (see attachment)
But I did not find a Linux-brandelf to use, maybe your link has it, I have to check.

Note that, for compiling fpc on a real FreeBSD aarch machine, /compiler/Makefile must be patched and add at each step of pre-compiler (pp1,pp2,..): (see attachment)

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---brandelf -t freebsd <ppX>But there is the error when assembling system.ppu (see previous post).

Thanks.

Fre;D

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version