Commit Graph

6 Commits

Author SHA1 Message Date
Connor-GH aecec88fb6 Fix regression caused in e553e9e4
In the process of converting the assembly from AT&T syntax to Intel
syntax, bjorn3 made some mistakes. Firstly, `A+B(%reg)` is translated to
`[reg + A + B]`, and not `[reg * B + A]`. I can see how this was
confused because x86 also has an addressing mode that takes up to 4
arguments, where `A(%r1,%r2,B)` is translated to `[r1 + A + r2 * B]`
with the constraints that `B` must be a power of two <= 8, and `A` (if
present), must be an immediate. In this case, the `72+8` and such is
constfolded by the assembler into `80`.

This commit and the previous AT&T syntax version produce the exact same
assembly output now.
2026-04-02 19:14:42 -05:00
bjorn3 f8626fd9d0 Move setjmp and sigsetjmp together
This fixes compilation of relibc on arm64. On arm64 the reference from
sigsetjmp to setjmp has a limited range.
2026-03-29 16:18:21 +02:00
Andrey Turkin a4122753e6 Initial RISC-V64 support 2024-10-11 06:44:54 +03:00
Jeremy Soller ece0bd090d Fix x86 setjmp/longjmp 2022-07-22 19:23:46 -06:00
4lDO2 d69c115421 Compile on latest nightly.
This also replaces all the assembly that previously used the AT&T style
with the (in my opinion) superior Intel syntax.

I tried prepending `.att_syntax prefix`, but that did not work...
2021-06-17 22:31:39 +02:00
Jeremy Soller ed00ddfb54 Fix remaining issues, move setjmp into relibc crate, move start logic into relibc 2018-08-26 12:28:27 -06:00