musl/arch
Rich Felker 83340c7a58 make arm crt_arch.h compatible with thumb code generation
compilers targeting armv7 may be configured to produce thumb2 code
instead of arm code by default, and in the future we may wish to
support targets where only the thumb instruction set is available.

the changes made here avoid operating directly on the sp register,
which is not possible in thumb code, and address an issue with the way
the address of _DYNAMIC is computed.

previously, the relative address of _DYNAMIC was stored with an
additional offset of -8 versus the pc-relative add instruction, since
on arm the pc register evaluates to ".+8". in thumb code, it instead
evaluates to ".+4". both are two (normal-size) instructions beyond "."
in the current execution mode, so the numbered label 2 used in the
relative address expression is simply moved two instructions ahead to
be compatible with both instruction sets.
2015-05-14 18:26:16 -04:00
..
aarch64 fix __syscall declaration with wrong visibility in syscall_arch.h 2015-04-30 16:22:57 -04:00
arm make arm crt_arch.h compatible with thumb code generation 2015-05-14 18:26:16 -04:00
i386 use hidden visibility for i386 asm-internal __vsyscall symbol 2015-04-14 10:22:12 -04:00
microblaze fix __syscall declaration with wrong visibility in syscall_arch.h 2015-04-30 16:22:57 -04:00
mips fix __syscall declaration with wrong visibility in syscall_arch.h 2015-04-30 16:22:57 -04:00
or1k fix __syscall declaration with wrong visibility in syscall_arch.h 2015-04-30 16:22:57 -04:00
powerpc fix stack protector crashes on x32 & powerpc due to misplaced TLS canary 2015-05-06 18:37:19 -04:00
sh fix sh jmp_buf size to match ABI 2015-04-27 20:03:28 -04:00
x32 fix stack protector crashes on x32 & powerpc due to misplaced TLS canary 2015-05-06 18:37:19 -04:00
x86_64 dynamic linker bootstrap overhaul 2015-04-13 03:04:42 -04:00