[1] https://wiki.debian.org/M68k/Alignment
[2] https://github.com/M680x0/issues/issues/3
[3] https://github.com/M680x0/issues/issues/6
[4] https://github.com/llvm/llvm-project/issues/181481
[5] https://github.com/M680x0/issues/issues/4
[6] https://github.com/rust-lang/rust/issues/155602
[7] https://github.com/rust-lang/rust/issues/155603
Once the alignment issue has been sorted out, the next issue to address is the lack of the
M68k backend in LLVM to handle 32-bit offsets for variables and jumps [4]. Currently, the
backend will always generate 16-bit offsets which is not enough to compile all Rust code,
although some Rust code compiles also with 16-bit offsets.elp of Gemini but
I have created a rough patch to add support for 32-bit offsets with the h
the patch has multiple problems as outlined in the GitHub issue in [4]. One of the problems
is that it creates the 32-bit offsets in an inefficient way as if the target was a ColdFire
CPU. However, the original 680x0 CPUs can actually use more efficient code to address 32-bit
variables and jumps. The inefficient way would still be used when ColdFire support gets added
to LLVM though [5].
[1] https://github.com/llvm/llvm-project/issues/181481#issuecomment-4476933700
I have used Google Gemini Code Assist now [1] in order to create a patchto add support for 32-bit
relocations to the LLVM M68k backend. This time, the code makes use of the full capabilities of
68020+ CPUs and does not the inefficient four-instruction method to implement 32-bit accesses.
I'm hesitant to send this in for review as this was basically written byGemini under my supervision
with a lot of testing of build tests.
| Sysop: | Jacob Catayoc |
|---|---|
| Location: | Pasay City, Metro Manila, Philippines |
| Users: | 4 |
| Nodes: | 4 (0 / 4) |
| Uptime: | 495145:28:27 |
| Calls: | 165 |
| Files: | 574 |
| D/L today: |
29 files (9,998K bytes) |
| Messages: | 78,198 |