aarch64: load of function, constant, global and variable

This commit is contained in:
deesix 2020-02-01 21:23:49 +01:00
parent 02bac66940
commit b581244df0
3 changed files with 12 additions and 5 deletions

View File

@ -312,6 +312,7 @@ void constant_load(struct token_list* a)
else if(X86 == Architecture) emit_out("LOAD_IMMEDIATE_eax %");
else if(AMD64 == Architecture) emit_out("LOAD_IMMEDIATE_rax %");
else if(ARMV7L == Architecture) emit_out("!0 R0 LOAD32 R15 MEMORY\n~0 JUMP_ALWAYS\n%");
else if(AARCH64 == Architecture) emit_out("LOAD_W0_AHEAD\nSKIP_32_DATA\n%");
emit_out(a->arguments->s);
emit_out("\n");
}
@ -330,9 +331,11 @@ void variable_load(struct token_list* a)
else if(X86 == Architecture) emit_out("LOAD_BASE_ADDRESS_eax %");
else if(AMD64 == Architecture) emit_out("LOAD_BASE_ADDRESS_rax %");
else if(ARMV7L == Architecture) emit_out("!");
else if(AARCH64 == Architecture) emit_out("SET_X0_FROM_BP\nLOAD_W1_AHEAD\nSKIP_32_DATA\n%");
emit_out(numerate_number(a->depth));
if(ARMV7L == Architecture) emit_out(" R0 SUB BP ARITH_ALWAYS");
else if(AARCH64 == Architecture) emit_out("\nSUB_X0_X0_X1\n");
emit_out("\n");
if(TRUE == Address_of) return;
@ -342,6 +345,7 @@ void variable_load(struct token_list* a)
else if(X86 == Architecture) emit_out("LOAD_INTEGER\n");
else if(AMD64 == Architecture) emit_out("LOAD_INTEGER\n");
else if(ARMV7L == Architecture) emit_out("!0 R0 LOAD32 R0 MEMORY\n");
else if(AARCH64 == Architecture) emit_out("DEREF_X0\n");
}
void function_load(struct token_list* a)
@ -357,6 +361,7 @@ void function_load(struct token_list* a)
else if(X86 == Architecture) emit_out("LOAD_IMMEDIATE_eax &FUNCTION_");
else if(AMD64 == Architecture) emit_out("LOAD_IMMEDIATE_rax &FUNCTION_");
else if(ARMV7L == Architecture) emit_out("!0 R0 LOAD32 R15 MEMORY\n~0 JUMP_ALWAYS\n&FUNCTION_");
else if(AARCH64 == Architecture) emit_out("LOAD_W0_AHEAD\nSKIP_32_DATA\n&FUNCTION_");
emit_out(a->s);
emit_out("\n");
}
@ -368,6 +373,7 @@ void global_load(struct token_list* a)
else if(X86 == Architecture) emit_out("LOAD_IMMEDIATE_eax &GLOBAL_");
else if(AMD64 == Architecture) emit_out("LOAD_IMMEDIATE_rax &GLOBAL_");
else if(ARMV7L == Architecture) emit_out("!0 R0 LOAD32 R15 MEMORY\n~0 JUMP_ALWAYS\n&GLOBAL_");
else if(AARCH64 == Architecture) emit_out("LOAD_W0_AHEAD\nSKIP_32_DATA\n&GLOBAL_");
emit_out(a->s);
emit_out("\n");
@ -378,6 +384,7 @@ void global_load(struct token_list* a)
else if(X86 == Architecture) emit_out("LOAD_INTEGER\n");
else if(AMD64 == Architecture) emit_out("LOAD_INTEGER\n");
else if(ARMV7L == Architecture) emit_out("!0 R0 LOAD32 R0 MEMORY\n");
else if(AARCH64 == Architecture) emit_out("DEREF_X0\n");
}
}

View File

@ -53,10 +53,10 @@ a0ae067746e7a2b01d33950da1cf640e12c3a70a045ab331ea2025af59dec9af test/results/t
e01b615db5df31392bd1054c45141dcff936b11dfb1cad270edc0aa67653f5a1 test/results/test10-knight-native-binary
c1b5a2a3cd46c5e95e5540e871c2a916e028684ca80f51c001ef489342e27625 test/results/test10-knight-posix-binary
b3e13d54aab689137628fb9c4487bfd8288f9bd18bef8fe756577c8d2dce1f1f test/results/test10-x86-binary
0ac616a1780c1d8a850c1df79eab83bed3e329a64a753d7d434f141bd3f9eed9 test/results/test100-amd64-binary
5d96e204eec7ec48a8ffa6a908dbfe33c5e7bc6175be94b2e9ca8a0898088c99 test/results/test100-armv7l-binary
806620e23be9e276f458778c22286c6147fcfe68be2a2c98cfd155473887eb85 test/results/test100-knight-posix-binary
b6efd96491deafc39956d21a4d8d246ae9499bf85c2d523b3a9d48f2635391b6 test/results/test100-x86-binary
5c1eeade7c883561757bea18d020b92ac18ee11d22580512e89bdccc8f322c81 test/results/test100-amd64-binary
4d9097d3f11b0afcb39dfdadf65afe0b82820d7dcf7584391bbdf642bfeab624 test/results/test100-armv7l-binary
5c33800bacfa0dd5984782264c85edb34b42a3f902a267e2199b923990e834a1 test/results/test100-knight-posix-binary
44ccbb6a5e8c3e41ee4925f571649b8a2c8929e462a5fd856e417ec01d86adff test/results/test100-x86-binary
34e6d535e30ef8826a4ad1a4d08b76cfa370c54595599ad3be784b64c9cd8ec5 test/results/test11-amd64-binary
893695e6f300a0fe055fad935a56abd549bba70d1d39c535a680f41bbb73f117 test/results/test11-armv7l-binary
7115c4a552eb4b2c1a868ac3dca43be7d040c8e89b7b66851d0522d298429af9 test/results/test11-knight-native-binary

View File

@ -1 +1 @@
215e0b555c1dde37a4f2c16a03995475be055e97a019c71fc047d5e9fda81bd9 test/test100/proof
2db4350e7180243dcf427d3e91ace78e375851db9ffb43ea2f29f5f2eb812c81 test/test100/proof