diff --git a/CHANGELOG.org b/CHANGELOG.org index 86c3134..93f9a55 100644 --- a/CHANGELOG.org +++ b/CHANGELOG.org @@ -21,6 +21,7 @@ Added test for chdir and getcwd family of posix primitives ** Changed ** Fixed +AArch64 wasteful stack ** Removed diff --git a/HACKING b/HACKING index 7c2efc3..bfa59a0 100644 --- a/HACKING +++ b/HACKING @@ -273,12 +273,16 @@ tmp, oLR and oBP again) leaving everything as it was before this journey. Well... one important thing changed: following M2-Planet conventions the value returned from the function, if any, is on X0. -*** Wasted stack space +*** Stack pointer -Due to alignment (128 bits) restriction for "push" and "pop" we waste -half of the stack space in the running generated binaries, as the -values are only 64 bits. Using another register as stack pointer would -work around the architectural restriction but this solution is not -implemented yet. Adjustment to several definitions and functions is -required, to reflect the new "depth" of the elements and the change of -register. +Due to alignment (128 bits) restriction for "push" and "pop" based on +the architectural register, we initialize and use X18 as stack pointer +instead. + +The M1 definitions referring to SP use X18; stack operations too. + +For example: + +DEFINE LDR_X0_[SP] 400240f9 is ldr x0, [x18] +DEFINE PUSH_LR 5e8e1ff8 is str x30, [x18, #-8]! +DEFINE INIT_SP f2030091 is mov x18, sp diff --git a/cc_core.c b/cc_core.c index f265372..84805ab 100644 --- a/cc_core.c +++ b/cc_core.c @@ -1100,7 +1100,7 @@ void collect_local() else if(X86 == Architecture) a->depth = -20; else if(AMD64 == Architecture) a->depth = -40; else if(ARMV7L == Architecture) a->depth = 16; - else if(AARCH64 == Architecture) a->depth = 64; /* argc, argv, envp and the local (16 bytes each) */ + else if(AARCH64 == Architecture) a->depth = 32; /* argc, argv, envp and the local (8 bytes each) */ } else if((NULL == function->arguments) && (NULL == function->locals)) { @@ -1108,7 +1108,7 @@ void collect_local() else if(X86 == Architecture) a->depth = -8; else if(AMD64 == Architecture) a->depth = -16; else if(ARMV7L == Architecture) a->depth = 8; - else if(AARCH64 == Architecture) a->depth = 16; + else if(AARCH64 == Architecture) a->depth = register_size; } else if(NULL == function->locals) { @@ -1116,7 +1116,7 @@ void collect_local() else if(X86 == Architecture) a->depth = function->arguments->depth - 8; else if(AMD64 == Architecture) a->depth = function->arguments->depth - 16; else if(ARMV7L == Architecture) a->depth = function->arguments->depth + 8; - else if(AARCH64 == Architecture) a->depth = function->arguments->depth + 16; + else if(AARCH64 == Architecture) a->depth = function->arguments->depth + register_size; } else { @@ -1124,7 +1124,7 @@ void collect_local() else if(X86 == Architecture) a->depth = function->locals->depth - register_size; else if(AMD64 == Architecture) a->depth = function->locals->depth - register_size; else if(ARMV7L == Architecture) a->depth = function->locals->depth + register_size; - else if(AARCH64 == Architecture) a->depth = function->locals->depth + 16; + else if(AARCH64 == Architecture) a->depth = function->locals->depth + register_size; } function->locals = a; @@ -1631,7 +1631,7 @@ void collect_arguments() else if(X86 == Architecture) a->depth = -4; else if(AMD64 == Architecture) a->depth = -8; else if(ARMV7L == Architecture) a->depth = 4; - else if(AARCH64 == Architecture) a->depth = 16; + else if(AARCH64 == Architecture) a->depth = register_size; } else { @@ -1639,7 +1639,7 @@ void collect_arguments() else if(X86 == Architecture) a->depth = function->arguments->depth - register_size; else if(AMD64 == Architecture) a->depth = function->arguments->depth - register_size; else if(ARMV7L == Architecture) a->depth = function->arguments->depth + register_size; - else if(AARCH64 == Architecture) a->depth = function->arguments->depth + 16; + else if(AARCH64 == Architecture) a->depth = function->arguments->depth + register_size; } global_token = global_token->next; diff --git a/test/common_aarch64/aarch64_defs.M1 b/test/common_aarch64/aarch64_defs.M1 index edd181c..dacb594 100644 --- a/test/common_aarch64/aarch64_defs.M1 +++ b/test/common_aarch64/aarch64_defs.M1 @@ -16,18 +16,20 @@ DEFINE NULL 0000000000000000 -# Stack (SP-based, 128 bits per element) -DEFINE PUSH_X0 e00f1ff8 -DEFINE PUSH_X1 e10f1ff8 -DEFINE PUSH_X16 f00f1ff8 -DEFINE PUSH_BP f10f1ff8 -DEFINE PUSH_LR fe0f1ff8 +# Stack (x18 as SP, 64 bits per element) +DEFINE PUSH_X0 408e1ff8 +DEFINE PUSH_X1 418e1ff8 +DEFINE PUSH_X16 508e1ff8 +DEFINE PUSH_BP 518e1ff8 +DEFINE PUSH_LR 5e8e1ff8 -DEFINE POP_X0 e00741f8 -DEFINE POP_X1 e10741f8 -DEFINE POP_X16 f00741f8 -DEFINE POP_BP f10741f8 -DEFINE POP_LR fe0741f8 +DEFINE POP_X0 408640f8 +DEFINE POP_X1 418640f8 +DEFINE POP_X16 508640f8 +DEFINE POP_BP 518640f8 +DEFINE POP_LR 5e8640f8 + +DEFINE INIT_SP f2030091 # mov x18, sp # Jump/branch/call/return @@ -56,7 +58,7 @@ DEFINE LOAD_W16_AHEAD 50000018 # Load/store/dereference -DEFINE LDR_X0_[SP] e00340f9 +DEFINE LDR_X0_[SP] 400240f9 DEFINE STR_X0_[X1] 200000f9 DEFINE STR_BYTE_W0_[X1] 20000039 DEFINE DEREF_X0 000040f9 @@ -66,16 +68,16 @@ DEFINE DEREF_X0_BYTE 00004039 # Move data between registers DEFINE SET_X0_FROM_BP e00311aa DEFINE SET_X1_FROM_X0 e10300aa -DEFINE SET_X1_FROM_SP e1030091 +DEFINE SET_X1_FROM_SP e10312aa DEFINE SET_X2_FROM_X0 e20300aa DEFINE SET_X3_FROM_X0 e30300aa DEFINE SET_X4_FROM_X0 e40300aa DEFINE SET_X5_FROM_X0 e50300aa DEFINE SET_X6_FROM_X0 e60300aa DEFINE SET_X16_FROM_X0 f00300aa -DEFINE SET_X16_FROM_SP f0030091 +DEFINE SET_X16_FROM_SP f00312aa DEFINE SET_BP_FROM_X16 f10310aa -DEFINE SET_BP_FROM_SP f1030091 +DEFINE SET_BP_FROM_SP f10312aa # Move constant to register @@ -94,13 +96,13 @@ DEFINE SET_X0_TO_FCNTL_H_AT_FDCWD 600c8092 # Arith/logic/relational DEFINE ADD_X0_X1_X0 2000008b DEFINE ADD_X0_BP_X0 2002008b -DEFINE ADD_X1_SP_8 e1230091 +DEFINE ADD_X1_SP_8 41220091 DEFINE SUB_X0_X1_X0 200000cb DEFINE SUB_X0_X0_X1 000001cb +DEFINE SUB_X0_8 002000d1 DEFINE SUB_X0_16 004000d1 -DEFINE SUB_X0_32 008000d1 -DEFINE SUB_X0_48 00c000d1 +DEFINE SUB_X0_24 006000d1 DEFINE MSUB_X0_X0_X2_X1 0084029b DEFINE MUL_X0_X1_X0 207c009b diff --git a/test/common_aarch64/functions/access.c b/test/common_aarch64/functions/access.c index 3d7718a..fb3d3fc 100644 --- a/test/common_aarch64/functions/access.c +++ b/test/common_aarch64/functions/access.c @@ -17,9 +17,9 @@ int access(char* pathname, int mode) { - asm("SET_X0_FROM_BP" "SUB_X0_32" "DEREF_X0" + asm("SET_X0_FROM_BP" "SUB_X0_16" "DEREF_X0" "SET_X2_FROM_X0" - "SET_X0_FROM_BP" "SUB_X0_16" "DEREF_X0" + "SET_X0_FROM_BP" "SUB_X0_8" "DEREF_X0" "SET_X1_FROM_X0" "SET_X0_TO_0" "SET_X3_FROM_X0" diff --git a/test/common_aarch64/functions/chdir.c b/test/common_aarch64/functions/chdir.c index 2ff0357..3c29b6c 100644 --- a/test/common_aarch64/functions/chdir.c +++ b/test/common_aarch64/functions/chdir.c @@ -17,14 +17,14 @@ int chdir(char* path) { - asm("SET_X0_FROM_BP" "SUB_X0_16" "DEREF_X0" + asm("SET_X0_FROM_BP" "SUB_X0_8" "DEREF_X0" "SET_X8_TO_SYS_CHDIR" "SYSCALL"); } int fchdir(int fd) { - asm("SET_X0_FROM_BP" "SUB_X0_16" "DEREF_X0" + asm("SET_X0_FROM_BP" "SUB_X0_8" "DEREF_X0" "SET_X8_TO_SYS_FCHDIR" "SYSCALL"); } diff --git a/test/common_aarch64/functions/execve.c b/test/common_aarch64/functions/execve.c index 402e880..e606164 100644 --- a/test/common_aarch64/functions/execve.c +++ b/test/common_aarch64/functions/execve.c @@ -26,11 +26,11 @@ int waitpid(int pid, int* status_ptr, int options) { asm("SET_X0_TO_MINUS_1" "SET_X3_FROM_X0" - "SET_X0_FROM_BP" "SUB_X0_48" "DEREF_X0" + "SET_X0_FROM_BP" "SUB_X0_24" "DEREF_X0" "SET_X2_FROM_X0" - "SET_X0_FROM_BP" "SUB_X0_32" "DEREF_X0" - "SET_X1_FROM_X0" "SET_X0_FROM_BP" "SUB_X0_16" "DEREF_X0" + "SET_X1_FROM_X0" + "SET_X0_FROM_BP" "SUB_X0_8" "DEREF_X0" "SET_X8_TO_SYS_WAIT4" "SYSCALL"); } @@ -38,11 +38,11 @@ int waitpid(int pid, int* status_ptr, int options) int execve(char* file_name, char** argv, char** envp) { asm( - "SET_X0_FROM_BP" "SUB_X0_48" "DEREF_X0" + "SET_X0_FROM_BP" "SUB_X0_24" "DEREF_X0" "SET_X2_FROM_X0" - "SET_X0_FROM_BP" "SUB_X0_32" "DEREF_X0" - "SET_X1_FROM_X0" "SET_X0_FROM_BP" "SUB_X0_16" "DEREF_X0" + "SET_X1_FROM_X0" + "SET_X0_FROM_BP" "SUB_X0_8" "DEREF_X0" "SET_X8_TO_SYS_EXECVE" "SYSCALL"); } diff --git a/test/common_aarch64/functions/exit.c b/test/common_aarch64/functions/exit.c index efc0a52..a66d45c 100644 --- a/test/common_aarch64/functions/exit.c +++ b/test/common_aarch64/functions/exit.c @@ -20,7 +20,7 @@ void exit(int value) { - asm("SET_X0_FROM_BP" "SUB_X0_16" "DEREF_X0" + asm("SET_X0_FROM_BP" "SUB_X0_8" "DEREF_X0" "SET_X8_TO_SYS_EXIT" "SYSCALL"); } diff --git a/test/common_aarch64/functions/file.c b/test/common_aarch64/functions/file.c index 4006d7b..4e6dd35 100644 --- a/test/common_aarch64/functions/file.c +++ b/test/common_aarch64/functions/file.c @@ -23,7 +23,7 @@ int fgetc(FILE* f) { - asm("SET_X0_FROM_BP" "SUB_X0_16" "DEREF_X0" + asm("SET_X0_FROM_BP" "SUB_X0_8" "DEREF_X0" "PUSH_X0" "SET_X1_FROM_SP" "SET_X2_TO_1" @@ -39,9 +39,9 @@ int fgetc(FILE* f) void fputc(char s, FILE* f) { - asm("SET_X0_FROM_BP" "SUB_X0_16" + asm("SET_X0_FROM_BP" "SUB_X0_8" "SET_X1_FROM_X0" - "SET_X0_FROM_BP" "SUB_X0_32" "DEREF_X0" + "SET_X0_FROM_BP" "SUB_X0_16" "DEREF_X0" "SET_X2_TO_1" "SET_X8_TO_SYS_WRITE" "SYSCALL"); @@ -61,11 +61,11 @@ void fputc(char s, FILE* f) FILE* open(char* name, int flag, int mode) { - asm("SET_X0_FROM_BP" "SUB_X0_48" "DEREF_X0" + asm("SET_X0_FROM_BP" "SUB_X0_24" "DEREF_X0" "SET_X3_FROM_X0" - "SET_X0_FROM_BP" "SUB_X0_32" "DEREF_X0" - "SET_X2_FROM_X0" "SET_X0_FROM_BP" "SUB_X0_16" "DEREF_X0" + "SET_X2_FROM_X0" + "SET_X0_FROM_BP" "SUB_X0_8" "DEREF_X0" "SET_X1_FROM_X0" "SET_X0_TO_FCNTL_H_AT_FDCWD" "SET_X8_TO_SYS_OPENAT" @@ -93,7 +93,7 @@ FILE* fopen(char* filename, char* mode) int close(int fd) { - asm("SET_X0_FROM_BP" "SUB_X0_16" "DEREF_X0" + asm("SET_X0_FROM_BP" "SUB_X0_8" "DEREF_X0" "SET_X8_TO_SYS_CLOSE" "SYSCALL"); } diff --git a/test/common_aarch64/functions/getcwd.c b/test/common_aarch64/functions/getcwd.c index b2a989b..ddc8003 100644 --- a/test/common_aarch64/functions/getcwd.c +++ b/test/common_aarch64/functions/getcwd.c @@ -22,9 +22,9 @@ int _getcwd(char* buf, size_t size) { - asm("SET_X0_FROM_BP" "SUB_X0_32" "DEREF_X0" + asm("SET_X0_FROM_BP" "SUB_X0_16" "DEREF_X0" "SET_X1_FROM_X0" - "SET_X0_FROM_BP" "SUB_X0_16" "DEREF_X0" + "SET_X0_FROM_BP" "SUB_X0_8" "DEREF_X0" "SET_X8_TO_SYS_GETCWD" "SYSCALL"); } diff --git a/test/common_aarch64/functions/malloc.c b/test/common_aarch64/functions/malloc.c index 1c06e6d..76c55ed 100644 --- a/test/common_aarch64/functions/malloc.c +++ b/test/common_aarch64/functions/malloc.c @@ -19,7 +19,7 @@ void* malloc(int size) { - asm("SET_X0_FROM_BP" "SUB_X0_16" "DEREF_X0" + asm("SET_X0_FROM_BP" "SUB_X0_8" "DEREF_X0" "SET_X1_FROM_X0" "SET_X0_TO_0" "SET_X8_TO_SYS_BRK" "SYSCALL" "PUSH_X0" diff --git a/test/common_aarch64/functions/putchar.c b/test/common_aarch64/functions/putchar.c index 1bba3f8..a45de8d 100644 --- a/test/common_aarch64/functions/putchar.c +++ b/test/common_aarch64/functions/putchar.c @@ -17,7 +17,7 @@ void putchar(int c) { - asm("SET_X0_FROM_BP" "SUB_X0_16" + asm("SET_X0_FROM_BP" "SUB_X0_8" "SET_X1_FROM_X0" "SET_X0_TO_1" "SET_X2_TO_1" diff --git a/test/common_aarch64/functions/stat.c b/test/common_aarch64/functions/stat.c index ae8a6d3..b3275b0 100644 --- a/test/common_aarch64/functions/stat.c +++ b/test/common_aarch64/functions/stat.c @@ -43,9 +43,9 @@ int chmod(char *pathname, int mode) { - asm("SET_X0_FROM_BP" "SUB_X0_32" "DEREF_X0" + asm("SET_X0_FROM_BP" "SUB_X0_16" "DEREF_X0" "SET_X2_FROM_X0" - "SET_X0_FROM_BP" "SUB_X0_16" "DEREF_X0" + "SET_X0_FROM_BP" "SUB_X0_8" "DEREF_X0" "SET_X1_FROM_X0" "SET_X0_TO_0" "SET_X3_FROM_X0" diff --git a/test/common_aarch64/functions/uname.c b/test/common_aarch64/functions/uname.c index 919b130..8a24421 100644 --- a/test/common_aarch64/functions/uname.c +++ b/test/common_aarch64/functions/uname.c @@ -27,7 +27,7 @@ struct utsname int uname(struct utsname* unameData) { - asm("SET_X0_FROM_BP" "SUB_X0_16" "DEREF_X0" + asm("SET_X0_FROM_BP" "SUB_X0_8" "DEREF_X0" "SET_X8_TO_SYS_UNAME" "SYSCALL"); } diff --git a/test/common_aarch64/libc-core.M1 b/test/common_aarch64/libc-core.M1 index 0e95854..012fc6c 100644 --- a/test/common_aarch64/libc-core.M1 +++ b/test/common_aarch64/libc-core.M1 @@ -15,6 +15,7 @@ ## along with M2-Planet. If not, see . :_start + INIT_SP LDR_X0_[SP] ADD_X1_SP_8 SET_BP_FROM_SP diff --git a/test/test.answers b/test/test.answers index 44c27e3..0846684 100644 --- a/test/test.answers +++ b/test/test.answers @@ -1,164 +1,164 @@ -3f35cb352bf0de4f69542a09c37913e0da6ed9422dc3a3bfd403fed6093d05d0 test/results/test00-aarch64-binary +4d8af4fe5f7a5c95e34e7fb9e5fea11b3a7903874640a40c4f2f2ec5caf1902f test/results/test00-aarch64-binary e4482d2133772d1d9a00d30a8f46fee405a20b2354414fc735cbed077be7b61b test/results/test00-amd64-binary 25b38a3f5ad81ed4618a3d60fe00e0eb1bf88366f4eb031c02a9f880440ae207 test/results/test00-armv7l-binary 0c93110e4cf2f8f69eb3a308162478e644ee63fd4881762161be5de50fbe9f06 test/results/test00-knight-native-binary 64879eebceb475f21e54cb1f2e872996ca80e8c1fbb8b5895fb5fb6bac0c4384 test/results/test00-knight-posix-binary c52562bd0aabb86ce8ca177f22f8d0455769b444df2d4d62894faab63b7151d8 test/results/test00-x86-binary -c3334a519c8d08046b35fd8960231bb90f0435139bbdff57cc64dd462d947818 test/results/test01-aarch64-binary +7f3189f1b5c7cc239c687cf7e5485e2ead162601a1dd6a6dc0853ab5f6200a87 test/results/test01-aarch64-binary 2c968b3736b6f2828982bad905018bfc4f159d7871e825f86a8f50b55b90b143 test/results/test01-amd64-binary c04bda3cf219832b37e945e416fff106b927703a23af0da2bbfa07fc812a0d92 test/results/test01-armv7l-binary bff3ae5a240cd319570ef0c81c499cea51c821bc1369456c23a4206e6072865e test/results/test01-knight-native-binary 486ee05ccea796a9cfa9bfb23189b8e014b7ce8d14fea03b27d679d410fe17dd test/results/test01-knight-posix-binary eae96857f2b6d8e8ba86ac06e72345ea572622b358b23978bb5f2db1baadf41c test/results/test01-x86-binary -5343c5646e162e5f4091db4a67ad6040cf25d24ed7db4ee70cb1ff0ed1b11f05 test/results/test02-aarch64-binary +5263cc17ed5e7e481f0a5080c98eabda3ba66d84c439a4ee5819963b0280a924 test/results/test02-aarch64-binary c742a827684287cb82b4a3526eb996eda941bf284e11aab431816a3ef1e0804c test/results/test02-amd64-binary ef25f00027ebb22cccb9a321e6c89c380090e365c6ad691617378a1d89009d89 test/results/test02-armv7l-binary 7631c0f224100786a4b002b4353da4ea56ecb0d6f3ac1a7bc5827b6e257d0748 test/results/test02-knight-native-binary e6493845b9e94a617649638252f23502f9212de583fd00cba6cc07fffd296e32 test/results/test02-knight-posix-binary 8ead336d2f3f72d5874230492e0472edec61d355905e8636e3dfb2731695037c test/results/test02-x86-binary -8690f1844e6312623b7adccba3b7bef2251ceb867bc06ece9dbc4667dfe45fbd test/results/test03-aarch64-binary +4b69ce72be338359f0cd886050e66eda7e2375c356de0e317d794cae3c1a76af test/results/test03-aarch64-binary c611b3cab0a736e7176dac21aa04555039b28362d0cfd3a5c56cf29ca3e48616 test/results/test03-amd64-binary a80264844e0d16e53c0853a5a59452343fd9504408f37ae02f7063bbd15f0220 test/results/test03-armv7l-binary f4affc4dd2112ecf8ec3c40ea5e575d579fc60ff9df8b244dddc1a495e9529d6 test/results/test03-knight-native-binary 96849d5a9294799a9648c24db21b2dab1555dd5ba69d172d77df800622347226 test/results/test03-knight-posix-binary 2313cb3f1a2b9eb6bf15f8d43418e15d6c16f7f1b5c22700fdfc2b38beb59192 test/results/test03-x86-binary -6ea7f177bff8e09e1fe9edaa85abd32013358aa36e8fb853e58da0398c5b4fe1 test/results/test04-aarch64-binary +6d6115a029cbcc86fa643377b2693c08d3c3b9158f767e04ccedc1b194940c8d test/results/test04-aarch64-binary b773d7ec7c550b71997ce451af7e1ee59fe6597b32adc455b271b7d173d5eae9 test/results/test04-amd64-binary fc9de9b27e154643e221f9d8281956809db5ee9f85a56d990f8a7de66d47f10a test/results/test04-armv7l-binary 343306548109a79f599b64f8ad63331cf6a4328eb5ddb2a1f19f6eebec6b254a test/results/test04-knight-native-binary df9ba08dfa69ac6cbb4483146dbbe079ef575d7de8318e2e52283151ebf24bd3 test/results/test04-knight-posix-binary b7ddb37063c541c6a315809c4438aa235d6702f54bb64f4ffc88dbe78617de81 test/results/test04-x86-binary -706283ab5dfefb4c60241baade0d9ed708834a1f839b641a89c99a1df13476a9 test/results/test05-aarch64-binary +3aff4a809c9b753e2864b5c3319ed9380856265deafd1e3e8d3aabaa6254285c test/results/test05-aarch64-binary c4e5e2ffc3a2c3d4116589fa1369d45e5af91cc69b5d342ef5552dfca992c64b test/results/test05-amd64-binary 748f6b9825bf9b72908dfee1ea674eaf1c3c63b0100a3e3195efefabe5048280 test/results/test05-armv7l-binary ac909d377dad4961c3df5bb780b1562015e79f8f866d07b4fefaa19f5521f32a test/results/test05-knight-native-binary 290a68de66c3a83ef5bd75aa1d3b9057d0d6740b310072d11f9daacb184e9100 test/results/test05-knight-posix-binary 90321c43b2384050e5f03e5af67d345b55dd8a43e96d1f3b7f29d3c5dae3f077 test/results/test05-x86-binary -612a3b7c5a4593d7d498683198bbe328d837a442c7cde7179bb098bc6841a74a test/results/test06-aarch64-binary +5b4198c7e7a52f38f5b626efd121a86f47d68fad80d00c6011271bb62af00cb8 test/results/test06-aarch64-binary 98fab6d12630465d4e3cb72102b541c818e75b034e1ca1823c26ad6dabc4a910 test/results/test06-amd64-binary bb913bdbfb77b855d416a6051e0d5646275fe6eed7a89cf3373be14d83bef1c5 test/results/test06-armv7l-binary 169d83f5dd34a1d764716342149f56db492b1f790ce323c5e93b4d577f772e7b test/results/test06-knight-native-binary b177d769ae44c3509d9a08d0ee631ec69654dc5d723408bf0decdc67c42aae27 test/results/test06-knight-posix-binary 663fc6eefe965f237b6bf5a211398c8ae1210f97ff39b59603677e92462c68c7 test/results/test06-x86-binary -3a294ea084925a16d4df22d17f1b7ae5599b1227c081a4b3238389010e760658 test/results/test07-aarch64-binary +d4089b614e0156cad2655247f536e775e48cb012b9db7435e452dd6f2b960d5f test/results/test07-aarch64-binary 58af02adcf5a1bfa21dae4992ed3fe0a1f708c67bb5bf1f842a51b3b8eeddf05 test/results/test07-amd64-binary 5ce09fce0c670056284cf18586151060dc56e2b3b87c816939b66d351e70ccf6 test/results/test07-armv7l-binary 525ba92027d697564cd7d7611aa32c33486e55e2e60ecf19d700bf2884571975 test/results/test07-knight-native-binary 9159c4ba8196b24ec78bc9ebfbc7066d510ddbf03461736e7795a48634134dc5 test/results/test07-knight-posix-binary a9a3e332d13ded5f80d7431f8717f26527b3722b33ea57760a9a5723dffc099c test/results/test07-x86-binary -0aaf0645c367876a711aa33266939f20fd03bc8c4fbf75d008c0e0709fa6a146 test/results/test08-aarch64-binary +095af0ebc63ff3843aa27d4eef40fff29a675e36bb3c6e00a1e24af2ae6c2a32 test/results/test08-aarch64-binary 3a9a7815ad19bbdd9ea6921ecae8521089df27ac08bc207df11a2a0080f5acbb test/results/test08-amd64-binary 28b9834ef90a721c6cba5ca818547d607d0e1a63c60ddd684b6aff885cd21fc2 test/results/test08-armv7l-binary 16c6a5a8f3723fd464d8bded94ceaeef96e95a83e38caa380bd2d5cc375415c4 test/results/test08-knight-native-binary b824859fd0e39f1417742a1b9a1cec18ade78afdd80ce2c64cb54cdf7683f53a test/results/test08-knight-posix-binary 3a099298d2235ad00518bb6e2f2f9e25d429c4fe576dfc9cf083e3e0053bdcc2 test/results/test08-x86-binary -d4094a55cba28c257f13e2405606dce7294a4cd161a5ab9b4d21253074d85c0a test/results/test09-aarch64-binary +915f2b6bb8a0f9cc78d1108b856072aaed1804d05f0ff1e00191673ff0ea2398 test/results/test09-aarch64-binary b1251d03f35474f9c5cec84d067d97295a47ae34dbd9f12e72a3630127cc1e07 test/results/test09-amd64-binary 4fd3351f92149ccfb103a2d09a28a90939fb828d56f14c1b39fa4507c32a8f1a test/results/test09-armv7l-binary e046d0be9ebb80c6053682f37af5ed18fece5afb089f67ecf98556700d7e85f0 test/results/test09-knight-native-binary 990e82bccca98e6393f72b659abc2eb6069f272202286ce2ca51e9d8a941f3cd test/results/test09-knight-posix-binary 9e4a0a6216bb4fde5dcefac91fd7c623e9e00b3e762946e5a47a1b50b4656103 test/results/test09-x86-binary -3d710d53b95d0f090ee0ef2ed55d51a91601cdc0547299527fe16863adabbd8c test/results/test10-aarch64-binary +280ab596580b8e1c771e690b9864a5a693c8bcf89f831de6d0897ca982e5ea6e test/results/test10-aarch64-binary a9cf4422e05075395ad75bbfe4b2659aec4541edd46d8c6b5064d3496b06a0b6 test/results/test10-amd64-binary a0ae067746e7a2b01d33950da1cf640e12c3a70a045ab331ea2025af59dec9af test/results/test10-armv7l-binary e01b615db5df31392bd1054c45141dcff936b11dfb1cad270edc0aa67653f5a1 test/results/test10-knight-native-binary c1b5a2a3cd46c5e95e5540e871c2a916e028684ca80f51c001ef489342e27625 test/results/test10-knight-posix-binary b3e13d54aab689137628fb9c4487bfd8288f9bd18bef8fe756577c8d2dce1f1f test/results/test10-x86-binary -3d13476cf2047280bedc98670b920c0c2a8fe1f429968ef48738e9b16f0fe161 test/results/test100-aarch64-binary -1ebb54cdb12212a9753822e04d45f2a51f7852a44fb27d54b3b1f2c762c11e63 test/results/test100-amd64-binary -9c3457a8702a9b56a1afa658aaaac68c808d8d17439fac4aaea3714d0c657562 test/results/test100-armv7l-binary -837642751f284dc694dbb9386ef781f656b6c0c2df0579d223eda09b7514836b test/results/test100-knight-posix-binary -3087ce4ef019b9f5475e4ee33d31b0013621296038c0c357f0238621a740b95d test/results/test100-x86-binary -d5ac894e7131976d45952e2d2b1792be2a0b1091fa1930fa8a3ba87248debc78 test/results/test11-aarch64-binary +0e91b69e168d74f2c8378aed9d776a0d8d44cc865b70588b87e4b8591522d303 test/results/test100-aarch64-binary +0b609603bd48afa670b5997a295aa12c2d545c44b902322ce1e92a908963c5f3 test/results/test100-amd64-binary +c5e746e26de28c734d06406e50ac362fed3b34adba260b91ca857db1a071a9e9 test/results/test100-armv7l-binary +aa0fade4804235b9279831a32542f38846928548e710cb7e5990925ccd5d92e2 test/results/test100-knight-posix-binary +71876f59e0bd01d29b70ff6f81ecb9c4d27ff457230cf04c5c19da8d8ec25678 test/results/test100-x86-binary +d0034c3d48652bf52dc716ba81088132794c3085df3d42bffc9dce30943d4a8c test/results/test11-aarch64-binary 34e6d535e30ef8826a4ad1a4d08b76cfa370c54595599ad3be784b64c9cd8ec5 test/results/test11-amd64-binary 893695e6f300a0fe055fad935a56abd549bba70d1d39c535a680f41bbb73f117 test/results/test11-armv7l-binary 7115c4a552eb4b2c1a868ac3dca43be7d040c8e89b7b66851d0522d298429af9 test/results/test11-knight-native-binary 63fd5fbf389d1b19031026df193ec55e98d923b8568007125b80bc246c094496 test/results/test11-knight-posix-binary 3fd11bad4a426ce1ff8fd9c6d7d2b943effae9f3f5740b7376e426e9b0555851 test/results/test11-x86-binary -d592bac6cb95d66475c01d619b57860a74d8904b121fa4da9b260f2edebf3384 test/results/test12-aarch64-binary +de41ca6df213581126ef624177d768c23dbc6eca77140d44c09a5e043ca1d407 test/results/test12-aarch64-binary dc88f6de5ae892774760843079eab57306bf0f6f683d4999bdec0d43e4e762b2 test/results/test12-amd64-binary 08b9c0110bd2fa0a6653b3064ad194e7dc2f333f57068845a0abab7f5a13499f test/results/test12-armv7l-binary 61d043a6b25c34d470b01e8b8458427c32350574ba9f69eeed01ad1cde444167 test/results/test12-knight-native-binary 313536f9209d29d4c3b40f6ada898f81c1fb3b650ca1a84754f90b1db3b9e001 test/results/test12-knight-posix-binary f98ab8e4bb35580e0dde96126d7a56aff66bda208d02c8d89390b40d6cff591c test/results/test12-x86-binary -8e00bb23decba7848202bde3e0362a08ea6515b5ec717a531f5eb12d2403761d test/results/test13-aarch64-binary +656109a17d7a76e7cd21fbdc4550ed23db5f04056f923ad5792d59a3a433b900 test/results/test13-aarch64-binary 5095e23b0d6680de3e28c1898b66c352761522f42313acb96f6f39bf0707f4bb test/results/test13-amd64-binary b72e3ad2a245af1ea94de50faec05d56dfe031e75dff4cdde75e1c92c3d617a6 test/results/test13-armv7l-binary 291900015203744afc992273d19517e5c1aa9babca7d6d04a2f31b502b163414 test/results/test13-knight-native-binary e50c97ba330823cb5cbe938bb9d1575340b083e60fc42db8edefcfd95851daa2 test/results/test13-knight-posix-binary 5051ffca2615144419f8ec1a5d4999486ae81e7781428f59e47e866af97cef92 test/results/test13-x86-binary -ca8c0ec6cdab8cda58e1d5c01a7f8335d47147d90ef6b4a221997925a9334108 test/results/test14-aarch64-binary +bc2465bbde70111a66ea62a4a305820e42fbe54805cc208f63272193a232bf6c test/results/test14-aarch64-binary bcc5f70b76fd7ff1a8ccbc1d13e41044b3a6f2b7158194fc0a669b0ba07d0969 test/results/test14-amd64-binary 2df8a834bfabc03f04214bc330870c075367f32dd40a31e9028927dafac1f091 test/results/test14-armv7l-binary 38c83f8d176c3cd70fcb82658b7376487402f550b2e32181dfcd5b942ae949a0 test/results/test14-knight-posix-binary a8218958b628066e2fda63d3933f1bf607c358d7bdfe84fc02596393698ea5f6 test/results/test14-x86-binary -1780e5ca32bc70bf568499571db219f16f1488e9dfeacdb48b998a15d2c520d0 test/results/test15-aarch64-binary +7e6d98d8f27d65462c5bcb4ef8734e36eebf41205b86eede3c849c9f95eefa64 test/results/test15-aarch64-binary 0526b33e314a881746bb108d0ec68a3f11b96d1b92b287816235f825210bff2a test/results/test15-amd64-binary 58d7d1ac0470fbbb7681cea0f377c22d54a9453dcc86d68e2f93fdb7e4f960cf test/results/test15-armv7l-binary 9f7c81e278248a3160d80a3f5ca0c39a5505ca9b45adc002e9b527db3e5f084a test/results/test15-knight-posix-binary f24c62fb54b9ab510ce1b3a36d119e3b5d2ed56e33564c83782d828eac6a6773 test/results/test15-x86-binary -5fbde5127c635f381f493ff232fd66e73b89f1221f51337f72eede1072e18ad5 test/results/test16-aarch64-binary +8fc4e2e70b61a662deb716fcde3b12a1293ffd3a8216bcd47c3fbc0b708f0e5d test/results/test16-aarch64-binary d8dbd22939091d04ccc969d848b4e4e2a6b5c9a8c91779923830fd6aa1a0f779 test/results/test16-amd64-binary cc0213dd7b1c368c1245c30a5c7fb520f8e1beded3acf136c48f2a015f29df0b test/results/test16-armv7l-binary 84f5472ce5711b9cad28fcd4c177eea673047c2561ea010ccb6bf5f50d89c713 test/results/test16-knight-posix-binary aeb94a4142633f20d7be4f8e74f0d5edc9050afb76f49cb504a1c264bf1ef96b test/results/test16-x86-binary -486b98f898acad34abfa2a1db34a855eed21fc926bb1d8eec8e6e1fb9b36ef1f test/results/test17-aarch64-binary +c2117c61b6713075f2b663135dd35a7de1420986ee9ee3b543ab93c8995c9e2d test/results/test17-aarch64-binary 826be2799b14be83652ee28ae18e45728987205346eaba5fbffd4c6894dbec33 test/results/test17-amd64-binary 1e630c50633011aa2e78f05be2bf71f90e288117008d53b7c673255e74c4cac2 test/results/test17-armv7l-binary 47e3fe786d27493a94c1f8aac0394e7726f85268cf0d7cfa02295f0d1629cb4a test/results/test17-knight-native-binary cf67b71d4010910ccf2264c52d7253b092afa88be14890f36927fe595d71cf7f test/results/test17-knight-posix-binary a29899250b4ee3c722045a8feedaec2e0f537b9a148f23d10d1979e135f14038 test/results/test17-x86-binary -7c0eb777792e68f33e1197d0decd031147d5aa8bcabcbff76d592271957a02f2 test/results/test18-aarch64-binary +c6bc8111e9a0c8e2acccacc9a63dd40c6da752fe49c0cb3258af5525b3edc88b test/results/test18-aarch64-binary b5835e920eef10e0e0772d51354f1a7d5c34534f7ec287570283a5e8d5c201f3 test/results/test18-amd64-binary b2b679f715351406abefa43531d9374b118d77abdb1c5edd38f65a7b586461f4 test/results/test18-armv7l-binary aee694dc1e2e98d69e21f6f4f95120989e8b928379f3b290fee60fd5e32882ef test/results/test18-knight-native-binary d69b92c0fa774dfcdbfdf836d753caed64f99f7a3d9b73187c3e2aea53b30085 test/results/test18-knight-posix-binary b70966d2d772c95c3a555dac582137a7a7dfdc97fc9edaced5107313233dd7f8 test/results/test18-x86-binary -6ca3d94cbbe4ed3ee4d534562c9b7a1d110e8d9fd723b819a35cce07291c089f test/results/test19-aarch64-binary +ab1a16fba5a5df8bd70339c6f78d9c18028bd1f98e9a462c41c5a456eb811dc1 test/results/test19-aarch64-binary b29dadde5f218707a5c574b0097e1d84091baae0df28d79645b517d7bc4dffda test/results/test19-amd64-binary 1d579a8ada5d3a2b3bc17dd9a4e5f0d65bd5e7fc173df47548afc8e09fbc30ce test/results/test19-armv7l-binary 364ed9dcff06fe54ea4d96c6b3b99a9456fd4dd95ea726f98fdf7cfb8eb3825b test/results/test19-knight-posix-binary 8b28cb3303fa119378294acb2592fe4eec2ac5346932596e3f8570dc50af6cf9 test/results/test19-x86-binary -c05fc115f549a77d1b6d846d1c6021b81ae6d12e3b55d7a3747e3c1ee2996b25 test/results/test20-aarch64-binary +e759aeb73d575fc23e7b71684be8547e6fbd93a2db42e4cf6c987215793e3dbc test/results/test20-aarch64-binary 15950e38bab2603bfcb369b9a4941abfc2e37b7cbbd2cf9b22ebfc9aab46d5ad test/results/test20-amd64-binary 80612ce05a2e43fceb34139577be98794505cd324ff5bc84ba004a21828b5f86 test/results/test20-armv7l-binary d9d40f64041a02b6a403fd3c07550cf53f9383e0ec7f7208c9c263d06ea3ce8f test/results/test20-knight-native-binary 6a59795dbb4397d0efaf1ad613d646ec435eec62db30eb758bcf2499d651520e test/results/test20-knight-posix-binary 0d1a43723d0482a21028164e33ff116d66302d6042a88eacf08436a351494530 test/results/test20-x86-binary -9ce139e36baf0ee64a55bf69a7140db547fb20f9a5a7372bbe7cc17ddad04979 test/results/test21-aarch64-binary +8e88e82b6955239bada4aaea4cc16ccc45a0ae70b0faddbb0b020c196751d6d6 test/results/test21-aarch64-binary 0fab8f708839019a8dcda693acf0542c585b00b464a700cdcb64dd0cdfb0b6a0 test/results/test21-amd64-binary 644b5a7f6f40828cebbca5e6537ce1aaaf9fa4f1451671a40e1cfd4516a30a2d test/results/test21-armv7l-binary 80d49242c8eec979b576c3455a57d46efa75014cf607fc777b59dc1943259a6e test/results/test21-knight-posix-binary 1fa52023ea0f9e18bc6fab2a62fc8383ff1a9d97a6f0e3da9698268bf7565b99 test/results/test21-x86-binary -afb0d2c45ca8190ece1df2b98ccc1abc2ee204f593c716cb684f20d6b4c709d9 test/results/test22-aarch64-binary +a5bbd78dfb6325ce1f89d0cdfc7fb5f7feb51682af6fccaa0df0f61d3bcfea14 test/results/test22-aarch64-binary 8b3fc360938fe30c6b1a8c1fd368cd990761c35d8d0a3b5499cdca23127f36cf test/results/test22-amd64-binary ef1c7437223311d13429b43f59aafe5b9cd3c01939b59a935aa1dd55f417ebcf test/results/test22-armv7l-binary 387ae179f593ad27a1ae96f9f20b7cf69bf201a74d2a69fc9b60faeeec9fa811 test/results/test22-knight-posix-binary 46f4645cf23a415fe96f73826595a2dc29661fd2365978f387c256e0469bf51c test/results/test22-x86-binary -d93dd366f0bbff6740e89b2d82a8a6d894ecffbea31f698231355e68bb999161 test/results/test23-aarch64-binary +758092d7ad9d18fc72cc4291c786f0fffd42f18e0987f6d5cdb18ff1506d8dac test/results/test23-aarch64-binary 13a8033841a8805b13621e305755d0885154615fe1d126a3db4969854cfb8b40 test/results/test23-amd64-binary 9ef467b01c5af7f5c966671c5249ff8cb88f62e6c48fcd824254e0616d8d915c test/results/test23-armv7l-binary 897a5bc96a007a6eaf4337b630fb05d576fd42d35682c96a1f3c319f85f2b1ba test/results/test23-knight-posix-binary f53e041af9ec8bc34f6b7accedafe0c3bc40e09edfee3ad18144e7bb04e274e6 test/results/test23-x86-binary -2a6d910a08d150ae6ef985716389c02b25fa41526002ff8e235bc72e71bc4f2b test/results/test24-aarch64-binary +e0fdfb0ca2fe269514e3d8e2f8eb35c35430d4231674fea9d42a3cfa613c3af1 test/results/test24-aarch64-binary ed1eb588d8b14a370729d1426f8c1b1cc9cbfeaffe80012558ab74dadd82fbf8 test/results/test24-amd64-binary 91f8415a8358a26aa99706d990a35761cd5e4f313a32ef45ab5bc49a47435249 test/results/test24-armv7l-binary 44b37b8d45d8c0a6e983168e5646ef652deab2fcd327cb255bc2a71289f471ff test/results/test24-knight-posix-binary 29216c9761435396912cb03a414ac74cde165a522cf19a7cccac212b06d3a597 test/results/test24-x86-binary -4daca656e721fbc7f0ce040b9ed7c86f6183122ed6ae8b83f2c359a43cdf6196 test/results/test25-aarch64-binary +69a48cdae667be5324ceca8548b8de065ddc09cad3d294e3f81131646da3754e test/results/test25-aarch64-binary 0506117d8b028c1e5e23ecd0493116278e94ec32a55ff314dee1a2f4e2b243a5 test/results/test25-amd64-binary 8af23bb361cce0d7031d78a3f1f88a51d6786df4cc2f5dc0bf09ff67947d30ea test/results/test25-armv7l-binary e1fca774a067de5edb7eb1165619573993d2a5e5647c05568a68f3a53a7990cd test/results/test25-x86-binary -19316443ba9fd25fa7079902aa4fc6261628cc0600f2b94dbf436e3848102370 test/results/test26-aarch64-binary +eb24eb355bde5356672db4358a6aa37fdfeff0ddf9da5a676ee8aab00423ce56 test/results/test26-aarch64-binary 60206125928d77a758cd73ec8e85f8592423ce678570ebbe7876b71dc38aaeaf test/results/test26-amd64-binary 649349e01a90ce93ba72ba1b9bb81a9bd9d79b580ddff366173c98835c10b976 test/results/test26-armv7l-binary 576511f1f6699e7798bcab2f36bf8eb86825fd13748770b17f46c3a691200b01 test/results/test26-x86-binary -cc06a78803cd458d5c76561410fe019ec24bf115475d3a7401685a2fba4240b6 test/results/test27-aarch64-binary +bfc228f7cb9356f861ab094446bd597cd1e33c9d34069b5e325300bc61a49560 test/results/test27-aarch64-binary e265ee574e7277f81dbecde7d0941f18704379898299c47b24e55cd6ca1b362a test/results/test27-amd64-binary 4d7a84b6f861807c629bf26bba759ce45c5f3f093b28bcd050dd93f449e2bf47 test/results/test27-armv7l-binary d83e0aae5b335f34a528bbb6c213bbef9d993abae335e0f909183bc6debfd37b test/results/test27-knight-posix-binary 9d0ea091b1ac5fa5a9882ce93c816f2047a6751dc6edb7fef808a545ce3261f2 test/results/test27-x86-binary -fd72ce6ebbf8263ef9fdff9ca7d789a55ba399ab222c2f5f93b138c61830376d test/results/test99-aarch64-binary +c287f7c662cd29bdeb7258300de83c6b0895e002a18c9f46dac31ecd5476b69c test/results/test99-aarch64-binary 717c42e1a1a91ef5b67ce298bc92a148418a5dec6761a358a52b22a01f16c928 test/results/test99-amd64-binary 4e759b212b087824f7b0f14c5147272c9984c4a4d00074b2fd771c3d004c9aec test/results/test99-armv7l-binary 45116095f72aa1a4bf09aeff9f9ddc11e0c7ca3b0c380be930ad8db762088770 test/results/test99-knight-native-binary diff --git a/test/test100/proof.answer b/test/test100/proof.answer index e721dba..1fd3a57 100644 --- a/test/test100/proof.answer +++ b/test/test100/proof.answer @@ -1 +1 @@ -788e2532f144dade67485f4fa167142f202158c62b0b1fe8d50ddb2a5224156a test/test100/proof +8db43aa7c23a6c479c21695d572ce6a20510669d69ba5a9a20557eb6e2e8d161 test/test100/proof