M2-Planet/test
deesix b2ece54864 aarch64: do not generate a wasteful stack anymore
Until now, each element on the compiled program stack was 128 bits long,
half of them unused because only one 64 bits value was stored.

Now it's 64 bits long, so we don't waste all that memory.

We workaround the architectural alignment restriction of the SP register by
using a free regular register. X18 is for platform use so it seems a good
candidate for this task.

At _start we copy the value of SP into X18. SP is not used anymore. When a
definition refers to SP it doesn't mean it literaly now, because here we
redefine (without renaming) the involved M1 macro definitions to operate
on X18 (easier transition; abstraction). INIT_SP is introduced.

The function arguments are passed via stack, so the offset from the Base
Pointer ("depth") to each of them is different now. Changes both to
compiler code (cc_core.c) and libc reflect that the arguments are 8 bytes
(instead of 16 bytes) apart now. Note that SUB_X0_32 and SUB_X0_48 are
removed, because we only need 8, 16 and 24 bytes subtraction to reach the
arguments from asm libc functions. SUB_X0_8 and SUB_X0_24 are introduced.
2020-02-08 00:16:54 +01:00
..
common_aarch64 aarch64: do not generate a wasteful stack anymore 2020-02-08 00:16:54 +01:00
common_amd64 Fixed getcwd to better match 2020-01-28 04:24:29 -05:00
common_armv7l Fixed getcwd to better match 2020-01-28 04:24:29 -05:00
common_knight Fix knight-native to be able to support much larger binaries 2020-01-31 22:43:51 -05:00
common_x86 Fixed getcwd to better match 2020-01-28 04:24:29 -05:00
test00 aarch64: tests 2020-02-01 21:23:49 +01:00
test01 aarch64: tests 2020-02-01 21:23:49 +01:00
test02 aarch64: tests 2020-02-01 21:23:49 +01:00
test03 aarch64: tests 2020-02-01 21:23:49 +01:00
test04 aarch64: tests 2020-02-01 21:23:49 +01:00
test05 aarch64: tests 2020-02-01 21:23:49 +01:00
test06 aarch64: tests 2020-02-01 21:23:49 +01:00
test07 aarch64: tests 2020-02-01 21:23:49 +01:00
test08 aarch64: tests 2020-02-01 21:23:49 +01:00
test09 aarch64: tests 2020-02-01 21:23:49 +01:00
test10 aarch64: tests 2020-02-01 21:23:49 +01:00
test11 aarch64: tests 2020-02-01 21:23:49 +01:00
test12 aarch64: tests 2020-02-01 21:23:49 +01:00
test13 aarch64: tests 2020-02-01 21:23:49 +01:00
test14 aarch64: tests 2020-02-01 21:23:49 +01:00
test15 aarch64: tests 2020-02-01 21:23:49 +01:00
test16 aarch64: tests 2020-02-01 21:23:49 +01:00
test17 aarch64: tests 2020-02-01 21:23:49 +01:00
test18 aarch64: tests 2020-02-01 21:23:49 +01:00
test19 aarch64: tests 2020-02-01 21:23:49 +01:00
test20 aarch64: tests 2020-02-01 21:23:49 +01:00
test21 aarch64: tests 2020-02-01 21:23:49 +01:00
test22 aarch64: tests 2020-02-01 21:23:49 +01:00
test23 aarch64: tests 2020-02-01 21:23:49 +01:00
test24 aarch64: tests 2020-02-01 21:23:49 +01:00
test25 Update kaem test to new kaem.c 2020-02-02 09:18:27 +11:00
test26 aarch64: tests 2020-02-01 21:23:49 +01:00
test27 aarch64: test27 links to the usual 0x400000 base address 2020-02-05 13:20:58 +01:00
test99 aarch64: tests 2020-02-01 21:23:49 +01:00
test100 aarch64: do not generate a wasteful stack anymore 2020-02-08 00:16:54 +01:00
.gitignore Harmonized License headers and added missing license headers 2018-10-17 19:27:06 -04:00
test.answers aarch64: do not generate a wasteful stack anymore 2020-02-08 00:16:54 +01:00