libroot: Restore the old __swap functions for x86_64.

They are needed in order to not break applications compiled against
them. Fixes the boot on x86_64 after PulkoMandy's commit.
This commit is contained in:
Augustin Cavalier 2019-03-27 15:11:30 -04:00
parent 569791be52
commit ebc14c9921
1 changed files with 22 additions and 0 deletions

View File

@ -7,6 +7,28 @@
#include <asm_defs.h> #include <asm_defs.h>
/* uint16 __swap_int16(uint16 value) */
FUNCTION(__swap_int16):
movl %edi, %eax
bswap %eax
shr $16, %eax
ret
FUNCTION_END(__swap_int16)
/* uint32 __swap_int32(uint32 value) */
FUNCTION(__swap_int32):
movl %edi, %eax
bswap %eax
ret
FUNCTION_END(__swap_int32)
/* uint64 __swap_int64(uint64 value) */
FUNCTION(__swap_int64):
movq %rdi, %rax
bswap %rax
ret
FUNCTION_END(__swap_int64)
/* float __swap_float(float value) */ /* float __swap_float(float value) */
FUNCTION(__swap_float): FUNCTION(__swap_float):
sub $8, %rsp sub $8, %rsp