Fix modulus behavior that is wrong.

Thank you janneke
This commit is contained in:
Jeremiah Orians 2021-01-01 16:39:27 -05:00
parent e451abd667
commit 358b6cfb96
No known key found for this signature in database
GPG Key ID: 6B3A3F198708F894
6 changed files with 27 additions and 27 deletions

2
cc.c
View File

@ -114,7 +114,7 @@ int main(int argc, char** argv)
}
else if(match(argv[i], "-V") || match(argv[i], "--version"))
{
file_print("M2-Planet v1.5.0\n", stderr);
file_print("M2-Planet v1.7.0\n", stderr);
exit(EXIT_SUCCESS);
}
else

View File

@ -855,7 +855,7 @@ void additive_expr_stub()
arithmetic_recursion(postfix_expr, "SUBTRACT_eax_from_ebx_into_ebx\nMOVE_ebx_to_eax\n", "SUBTRACT_eax_from_ebx_into_ebx\nMOVE_ebx_to_eax\n", "-", additive_expr_stub);
arithmetic_recursion(postfix_expr, "MULTIPLYS_eax_by_ebx_into_eax\n", "MULTIPLY_eax_by_ebx_into_eax\n", "*", additive_expr_stub);
arithmetic_recursion(postfix_expr, "XCHG_eax_ebx\nCDTQ\nDIVIDES_eax_by_ebx_into_eax\n", "XCHG_eax_ebx\nLOAD_IMMEDIATE_edx %0\nDIVIDE_eax_by_ebx_into_eax\n", "/", additive_expr_stub);
arithmetic_recursion(postfix_expr, "XCHG_eax_ebx\nCDTQ\nMODULUSS_eax_from_ebx_into_ebx\nMOVE_edx_to_eax\n", "XCHG_eax_ebx\nCDTQ\nMODULUS_eax_from_ebx_into_ebx\nMOVE_edx_to_eax\n", "%", additive_expr_stub);
arithmetic_recursion(postfix_expr, "XCHG_eax_ebx\nCDTQ\nMODULUSS_eax_from_ebx_into_ebx\nMOVE_edx_to_eax\n", "XCHG_eax_ebx\nLOAD_IMMEDIATE_edx %0\nMODULUS_eax_from_ebx_into_ebx\nMOVE_edx_to_eax\n", "%", additive_expr_stub);
arithmetic_recursion(postfix_expr, "COPY_eax_to_ecx\nCOPY_ebx_to_eax\nSAL_eax_cl\n", "COPY_eax_to_ecx\nCOPY_ebx_to_eax\nSHL_eax_cl\n", "<<", additive_expr_stub);
arithmetic_recursion(postfix_expr, "COPY_eax_to_ecx\nCOPY_ebx_to_eax\nSAR_eax_cl\n", "COPY_eax_to_ecx\nCOPY_ebx_to_eax\nSHR_eax_cl\n", ">>", additive_expr_stub);
}
@ -865,7 +865,7 @@ void additive_expr_stub()
arithmetic_recursion(postfix_expr, "SUBTRACT_rax_from_rbx_into_rbx\nMOVE_rbx_to_rax\n", "SUBTRACT_rax_from_rbx_into_rbx\nMOVE_rbx_to_rax\n", "-", additive_expr_stub);
arithmetic_recursion(postfix_expr, "MULTIPLYS_rax_by_rbx_into_rax\n", "MULTIPLY_rax_by_rbx_into_rax\n", "*", additive_expr_stub);
arithmetic_recursion(postfix_expr, "XCHG_rax_rbx\nCQTO\nDIVIDES_rax_by_rbx_into_rax\n", "XCHG_rax_rbx\nLOAD_IMMEDIATE_rdx %0\nDIVIDE_rax_by_rbx_into_rax\n", "/", additive_expr_stub);
arithmetic_recursion(postfix_expr, "XCHG_rax_rbx\nCQTO\nMODULUSS_rax_from_rbx_into_rbx\nMOVE_rdx_to_rax\n", "XCHG_rax_rbx\nCQTO\nMODULUS_rax_from_rbx_into_rbx\nMOVE_rdx_to_rax\n", "%", additive_expr_stub);
arithmetic_recursion(postfix_expr, "XCHG_rax_rbx\nCQTO\nMODULUSS_rax_from_rbx_into_rbx\nMOVE_rdx_to_rax\n", "XCHG_rax_rbx\nLOAD_IMMEDIATE_rdx %0\nMODULUS_rax_from_rbx_into_rbx\nMOVE_rdx_to_rax\n", "%", additive_expr_stub);
arithmetic_recursion(postfix_expr, "COPY_rax_to_rcx\nCOPY_rbx_to_rax\nSAL_rax_cl\n", "COPY_rax_to_rcx\nCOPY_rbx_to_rax\nSHL_rax_cl\n", "<<", additive_expr_stub);
arithmetic_recursion(postfix_expr, "COPY_rax_to_rcx\nCOPY_rbx_to_rax\nSAR_rax_cl\n", "COPY_rax_to_rcx\nCOPY_rbx_to_rax\nSHR_rax_cl\n", ">>", additive_expr_stub);
}

View File

@ -55,8 +55,8 @@ DEFINE LOAD_INTEGER_rdi 488B3F
DEFINE LOAD_INTEGER_rdx 488B12
DEFINE LOAD_INTEGER_rsi 488B36
DEFINE LOAD_RSP_IMMEDIATE_into_rax 488B8424
DEFINE MODULUS_rax_from_rbx_into_rbx 48F7FB
DEFINE MODULUSS_rax_from_rbx_into_rbx 48F7F3
DEFINE MODULUS_rax_from_rbx_into_rbx 48F7F3
DEFINE MODULUSS_rax_from_rbx_into_rbx 48F7FB
DEFINE MOVE_rbx_to_rax 4889D8
DEFINE MOVE_rdx_to_rax 4889D0
DEFINE MOVEZX 480FB6C0

View File

@ -58,8 +58,8 @@ DEFINE LOAD_INTEGER 8B00
DEFINE LOAD_INTEGER_ebx 8B1B
DEFINE LOAD_INTEGER_ecx 8B09
DEFINE LOAD_INTEGER_edx 8B12
DEFINE MODULUS_eax_from_ebx_into_ebx F7FB
DEFINE MODULUSS_eax_from_ebx_into_ebx F7F3
DEFINE MODULUS_eax_from_ebx_into_ebx F7F3
DEFINE MODULUSS_eax_from_ebx_into_ebx F7FB
DEFINE MOVEZBL 0FB6C0
DEFINE MOVE_ebx_to_eax 89D8
DEFINE MOVE_ecx_to_eax 89C8

View File

@ -104,16 +104,16 @@ bd70143ec9764bd5681c72e173b6baaca7a486c9330974ca82fb7e997249f572 test/results/t
9ebaeb010fa8f6a563133bed52c76758f444dce9e79509958d44abcecc73013a test/results/test0017-knight-posix-binary
43124b01045e81627d7f5fd4aedb22166fa5f51790b3e5497e0d796241ee7902 test/results/test0017-x86-binary
bdb95323821eea5b757445d1d4a8f79256a4b665c2a0666cbbb7931550ba4a6f test/results/test0018-aarch64-binary
147f22ad1c14bdab49c5cb095171aceb6c9e73a670cc80811575e617c4cb497d test/results/test0018-amd64-binary
0e5a7d447471d097c65182ac5512a0c58f90ff151d1b55870b7faa8897baa213 test/results/test0018-amd64-binary
2ad21d7b2536304f9effd97d8614036b0d453a10ba4da3c09b490d6447271a42 test/results/test0018-armv7l-binary
f31fbd190e6dceda05b33a71692926845127f4f73eab08a143a17b5f2611e6e3 test/results/test0018-knight-native-binary
f3b5326969cb68a0f8e4e3e138af24e70114510dda2ad5a7cc27e608e4aecc9a test/results/test0018-knight-posix-binary
ef7af7ff1109f2b99709664e0f7453da42336bf6c7b13aa3911315647dd59fb3 test/results/test0018-x86-binary
6fed48128eff90728f00e8f7000a66befd92e2d941e65f8b5df5dba709af1d2d test/results/test0018-x86-binary
19a5ae1de1a04ca9ac77c8271a7edb30bc8f0e75e1fbb3992127c56effaab3d4 test/results/test0019-aarch64-binary
d7a708d2a02f49ba61c52f0fa77f488e0f8d9333f2b0c7f3212d3e94fee1dd45 test/results/test0019-amd64-binary
354b3ae2e2265f8aff7ef43569dbca4312b0d389ef26b3530ad7efcb9c1d7013 test/results/test0019-amd64-binary
35f88e82c2ff88176074ec812f1fdde7cf83a8940bd1dc5cabf8db8bd6793004 test/results/test0019-armv7l-binary
1e11972b0addb19aa820bc912a4412e430cc87e67dcf8ddd1ab441f142dd1302 test/results/test0019-knight-posix-binary
18d99f572e164f1fb699bdea0dd8f33dfaa1a82b283dbf8a6f7553b6881aa143 test/results/test0019-x86-binary
9aee7ed4bec5e46b9bfc820f6d4392e5d9d7b8393abc5e98f7c2e987f366ebb0 test/results/test0019-x86-binary
6b31e8ee54270d38a1801f7614ae6247f59d44a2758f344b07a72794019290f4 test/results/test0020-aarch64-binary
6b2956b106dd16bb55d8d011b48e674ee3b70bbb0bb83efadca01d446666e21e test/results/test0020-amd64-binary
b29aca7f0b63659915fe431e290f821cf17071983613021aacb8985d376bb206 test/results/test0020-armv7l-binary
@ -126,10 +126,10 @@ a9c09864fd326b9b42bc5a32dc32d248dbfcfa87ccdd97cfd21ee95af39a3db9 test/results/t
0715ba9a1b0d6bb862fbd6ff11526455d2a7e85f4c38b7a021598701e3cf14f1 test/results/test0021-knight-posix-binary
fde9fb7fd3a1a19a8b1f4451cbdb98901adb6de468cd65bda2beb11408233b86 test/results/test0021-x86-binary
14b9a108bdee811c0e9ff3f1be1299767a0d8b49319efbfd9b5f269bf5a057ec test/results/test0022-aarch64-binary
1d47282bf5d8bc97bfa34ae1762e8cbb4d74001c8dbbbd0cb6e6ec285e003c1d test/results/test0022-amd64-binary
4233f5b48b96e98bd83d30e63ce22420d6fe82dbebe9ac261c28760515efdfe8 test/results/test0022-amd64-binary
2d63c3a5a2c5b5ae2ea2e93c430027b4b418e229a963c66b9a3bc34307a55eba test/results/test0022-armv7l-binary
a23a357cabc995330776fa01c7cf41978b100c36b0e3c76d1297db0e953c1bc3 test/results/test0022-knight-posix-binary
2f59be9ef800c4f84f1f39ac8765e3aae1b48de73cbd142ea2571da4670cfc6c test/results/test0022-x86-binary
7e9b280039396df0873d2a211c989da0619cf7ba4a8b2ab4169db125feae1e25 test/results/test0022-x86-binary
835928a11aae4288a665818f052f8149aca9ed5f420e0dfe7cf2cd33efdfc8d8 test/results/test0023-aarch64-binary
0c31258687156c27e6792d6bea30b36f79d2626784b928869cb827a28abf6e31 test/results/test0023-amd64-binary
d7b2ad248521de84f3b4d8194ab6b330f3e5fda0043368f57be0d30f9949172b test/results/test0023-armv7l-binary
@ -141,36 +141,36 @@ b86fc421e50fd551ab3d6296551b3ed03821f6f134906575d932516b26a40285 test/results/t
7de66384bcf268d71f780853690e90cd12daebbb9227d3f0af7f51238185c690 test/results/test0100-knight-posix-binary
a783829261dd45186da513e04bb727b6647e5712ccd11e8b19c33a286cbfc975 test/results/test0100-x86-binary
24199867cd2dea9b68c5df1499e220f08ac97eb09debd3b3621fb80ae588eb71 test/results/test0101-aarch64-binary
70ab6a4a4bd9d973ab058af976d99acfb2085be7343357c199281afbd85ac2f9 test/results/test0101-amd64-binary
cce24980c8557906660d6d404d6882e5a690c178afe9f097ba653facc254fdf5 test/results/test0101-amd64-binary
252237eaaa9940b65aaf82a3667e8c59ccb78222c58e0b66b9a1dff6ee2e72e8 test/results/test0101-armv7l-binary
d120df140cc77037e3d16d1aee7482d270f55660a594c19be91cddc66de687f7 test/results/test0101-knight-posix-binary
a3e1762201e06c0dc6f26162abb88777f8e948de0df39dc66b39bb5141c4b44f test/results/test0101-x86-binary
cc36cf1c0a0ba6fb9e6578763266b1d3ef6580df3b2b3dad2ac03f0c98145e8b test/results/test0101-x86-binary
bdd6707d00c4798e9ff9ccd8cc30c8d747972c902f2df566463cfb8e1a248c8e test/results/test0102-aarch64-binary
9f93061b9a70cde84865c36e49a6cb0b36b29c978d8db77b77a784887b3e89c9 test/results/test0102-amd64-binary
6c7947fab2ea85f5d5f566cc2e0393daba64c84c7b2779041bffe20c311a777b test/results/test0102-amd64-binary
9b3e49b90e387c5f66160558b0bcce3cb0ce077ab4b35848a1b0809118b0d1b4 test/results/test0102-armv7l-binary
bf72fdc0514c83b93bf15f383a20b04f8ffd8c8b6c59b79c2963311b0657c6e9 test/results/test0102-knight-posix-binary
0798274eba6646c6552207c4fa069483f961ef9b5dda8532bb6680461e3e91ee test/results/test0102-x86-binary
8d2cb0a0fb29b9852d18d1064d40a1af02b268fa81dc06ebcc58b00a7beae374 test/results/test0102-x86-binary
603fd4fe17f8ef9eac12116003941702849b720021da23dc32582ca41192a792 test/results/test0103-aarch64-binary
f2114b5217c12952a85d580ad5914dd679888d93d176ee132ace9e8773916b3b test/results/test0103-amd64-binary
79cbb69a747b07d729db736bc177b52b344106387831a0210ff18fce92edf1cc test/results/test0103-armv7l-binary
e0e387777249ec8abb841271544a74361207a4c347d304f87a1e5c5d22353a7a test/results/test0103-knight-posix-binary
e96a60d11b7e8261100b4f1f87c85b1c2432b43e4520fb4909e7cdafcae69b7c test/results/test0103-x86-binary
6f790c101e6c6c257726ef453511e517b2380331712766f9c8dd0d432fee4012 test/results/test0104-aarch64-binary
c579a2dcf41b5ece5700c08e73d78dac9cf46652f3b4bea8063c621a316b8bae test/results/test0104-amd64-binary
bfd053ab2b0fa1a353ac5ff6bd2b044451404d04316bcf417698918b19d05e38 test/results/test0104-amd64-binary
846ab4a92ab210a1bed125420fc9d5a92f44d747e24d7364ba0b21e30aeb8a2b test/results/test0104-armv7l-binary
39d3040403bc89dca901377115617d0caa4fb4c4cbee121e3d287cd3f1e2ace7 test/results/test0104-x86-binary
43ac5afe65b840f42d6360be3a212ed0d785876ae8f8998906c62988ad156b7d test/results/test0104-x86-binary
b7de190073aa310fbf0b1ffdb6200715e058bb094d07c72975b9fbf24a947197 test/results/test0105-aarch64-binary
ae9d5a82037664a104999a2625d5a66bcf7530a28c2b2b0aea66e8b38c8f775a test/results/test0105-amd64-binary
0d90fa4a6d7d750bd64886f850569e4924c0887c9ef057a5cdf66c03319a4936 test/results/test0105-amd64-binary
7ae287efefe4abeb9db6730da8c4db9273475b9666371bc4ea6c58c7e0486b74 test/results/test0105-armv7l-binary
82ce98e1fd70b8e3c0cf962b475ff4a296114386c0284cf8b7b0b7a03cb58ae7 test/results/test0105-x86-binary
c279f96f7436019c5a3343c4835b4610edfabb6c6292babbf187d819f70e251d test/results/test0105-x86-binary
682b63f332ee299bf4afb91356004b96a223e309dc44a7efeb1cbcd9f21aeb4c test/results/test0106-aarch64-binary
503b06b04ca1c5452489e20ff6b5288e592d74f312515246e6d992d2cb0f36fc test/results/test0106-amd64-binary
a2a83f42119e646b389b98647cf6cf2aa9597185997c9453db746178c8c4c0bf test/results/test0106-armv7l-binary
698853b79efb30865a663c4863c050639eb21c7400008f7840830503928973d4 test/results/test0106-knight-native-binary
45c2ba61dc209d7ffa39de9ff0f0a7f8f3ea4d7e38598c72f982fcaf9a05c84a test/results/test0106-knight-posix-binary
944580ff4aae38aafac139faf6eed5bfe4ff68b01a7a3adfa346de8803101182 test/results/test0106-x86-binary
2cb8e7553065d3ad66f5e4c910e603ff8ecc6f52cda8a72c693371f8b04f607e test/results/test1000-aarch64-binary
f30e37be7a4bd42ec5b8cac23e816bf1a12aa56a4f5c385393f9cbda52e2fbe4 test/results/test1000-amd64-binary
1d291a1d5a0c1a589d10acc5c7e0dedb4ac2049cf2951e3dfb03e8f41623e728 test/results/test1000-armv7l-binary
4dcb78a5c5eb8f1b5f6eb40d5e1394fb6dfc5d87217e1b509b66492ccfdc89e1 test/results/test1000-knight-posix-binary
035dfb8b89c56f2348f8dbe6927e4995a4ab3cc7ae83c6a616ec7df6dc028181 test/results/test1000-x86-binary
958fffb06538d20e51adefdd84f07f782caa032e4a5932e74632b34d940f86a5 test/results/test1000-aarch64-binary
e54038ac37bda078caa0ac74d5676e889976e37990ffc83f210d4ea476b8fc69 test/results/test1000-amd64-binary
a6c6d02d38b847f4d3209b6c92a8947ec7eeadfb9e358db0148d2036fe8f002b test/results/test1000-armv7l-binary
2818e781dae33eff98852ecc60b2135cd6b02bb6c1664493b79aa0493f76faf0 test/results/test1000-knight-posix-binary
d132b51923e78da58abdf5db157e3a4497fc26b74355be669b5b2b0a838b7b7e test/results/test1000-x86-binary

View File

@ -1 +1 @@
a26f3f18d36867ccc4e52d2818833381bd68e219cad32a588d5a090d579d73a1 test/test1000/proof
6e53436ce495370f6c8b3a114f3505f9787607bb42654d8e492a7eb533f749e3 test/test1000/proof