fix malloc to accept FreeBSD's behavior and fix failing binaries

This commit is contained in:
nimaje 2020-10-16 17:26:39 -04:00 committed by Jeremiah Orians
parent 028bdaf951
commit 52114585bf
No known key found for this signature in database
GPG Key ID: 5410E91C14959E87
9 changed files with 171 additions and 125 deletions

View File

@ -17,18 +17,31 @@
// CONSTANT NULL 0
void* malloc(int size)
int brk(void *addr)
{
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"
"ADD_X0_X1_X0"
"PUSH_X0"
"SYSCALL"
"POP_X1"
/* TODO: Compare obtained with requested, as error checking. */
"POP_X0"
/* TODO: Override to return error if detected by the compare. */
);
"SET_X8_TO_SYS_BRK"
"SYSCALL");
}
SCM _malloc_ptr;
SCM _brk_ptr;
void* malloc(int size)
{
if(NULL == _brk_ptr)
{
_brk_ptr = brk(0);
_malloc_ptr = _brk_ptr;
}
if(_brk_ptr < _malloc_ptr + size)
{
_brk_ptr = brk(_malloc_ptr + size);
if(-1 == _brk_ptr) return 0;
}
SCM old_malloc = _malloc_ptr;
_malloc_ptr = _malloc_ptr + size;
return old_malloc;
}

View File

@ -17,24 +17,34 @@
// CONSTANT NULL 0
void* malloc(int size)
int brk(void *addr)
{
asm("LOAD_RSP_IMMEDIATE_into_rax %8"
"PUSH_RAX"
"LOAD_IMMEDIATE_rax %12"
"LOAD_IMMEDIATE_rdi %0"
"SYSCALL"
"POP_RBX"
"ADD_rax_to_rbx"
"COPY_rbx_to_rdi"
"PUSH_RAX"
"PUSH_RBX"
"LOAD_IMMEDIATE_rax %12"
"SYSCALL"
"POP_RBX"
"CMP"
"POP_RAX"
"JUMP_EQ %FUNCTION_malloc_Done"
"LOAD_IMMEDIATE_rax %-1"
":FUNCTION_malloc_Done");
"SYSCALL");
}
SCM _malloc_ptr;
SCM _brk_ptr;
void* malloc(int size)
{
if(NULL == _brk_ptr)
{
_brk_ptr = brk(0);
_malloc_ptr = _brk_ptr;
}
if(_brk_ptr < _malloc_ptr + size)
{
_brk_ptr = brk(_malloc_ptr + size);
if(-1 == _brk_ptr) return 0;
}
SCM old_malloc = _malloc_ptr;
_malloc_ptr = _malloc_ptr + size;
return old_malloc;
}

View File

@ -17,19 +17,32 @@
// CONSTANT NULL 0
int brk(void *addr)
{
asm("!4 R0 SUB R12 ARITH_ALWAYS"
"!0 R0 LOAD32 R0 MEMORY"
"!45 R7 LOADI8_ALWAYS"
"SYSCALL_ALWAYS");
}
SCM _malloc_ptr;
SCM _brk_ptr;
void* malloc(int size)
{
asm("!45 R7 LOADI8_ALWAYS"
"!0 R0 LOADI8_ALWAYS"
"SYSCALL_ALWAYS"
"{R0} PUSH_ALWAYS"
"!4 R1 SUB R12 ARITH_ALWAYS"
"!0 R1 LOAD32 R1 MEMORY"
"'0' R0 R0 ADD R1 ARITH2_ALWAYS"
"{R0} PUSH_ALWAYS"
"SYSCALL_ALWAYS"
"{R1} POP_ALWAYS"
"'0' R0 CMP R1 AUX_ALWAYS"
"{R0} POP_ALWAYS"
"!-1 R0 LOADI8_NE");
if(NULL == _brk_ptr)
{
_brk_ptr = brk(0);
_malloc_ptr = _brk_ptr;
}
if(_brk_ptr < _malloc_ptr + size)
{
_brk_ptr = brk(_malloc_ptr + size);
if(-1 == _brk_ptr) return 0;
}
SCM old_malloc = _malloc_ptr;
_malloc_ptr = _malloc_ptr + size;
return old_malloc;
}

View File

@ -17,23 +17,33 @@
// CONSTANT NULL 0
void* malloc(int size)
int brk(void *addr)
{
asm("LOAD_ESP_IMMEDIATE_into_eax %4"
"PUSH_eax"
"LOAD_IMMEDIATE_eax %45"
"LOAD_IMMEDIATE_ebx %0"
"INT_80"
"POP_ebx"
"ADD_eax_to_ebx"
"PUSH_eax"
"PUSH_ebx"
"LOAD_IMMEDIATE_eax %45"
"INT_80"
"POP_ebx"
"CMP"
"POP_eax"
"JUMP_EQ8 !FUNCTION_malloc_Done"
"LOAD_IMMEDIATE_eax %-1"
":FUNCTION_malloc_Done");
"INT_80");
}
SCM _malloc_ptr;
SCM _brk_ptr;
void* malloc(int size)
{
if(NULL == _brk_ptr)
{
_brk_ptr = brk(0);
_malloc_ptr = _brk_ptr;
}
if(_brk_ptr < _malloc_ptr + size)
{
_brk_ptr = brk(_malloc_ptr + size);
if(-1 == _brk_ptr) return 0;
}
SCM old_malloc = _malloc_ptr;
_malloc_ptr = _malloc_ptr + size;
return old_malloc;
}

View File

@ -46,24 +46,24 @@ a7e4ed6b2d5c0e3e375f9141f6c4934c58b94fcbd2d860b23b1b53812fd3dc8e test/results/t
525ba92027d697564cd7d7611aa32c33486e55e2e60ecf19d700bf2884571975 test/results/test0007-knight-native-binary
9159c4ba8196b24ec78bc9ebfbc7066d510ddbf03461736e7795a48634134dc5 test/results/test0007-knight-posix-binary
b62cfbf5653df5e26fd184c012697aed4bba48d434b68ccedeedd1ad749ec92f test/results/test0007-x86-binary
9d823ceb5276a38158fd41b3e70d63c9dfffd53d7e7251ae3cab779c5e3fa14e test/results/test0008-aarch64-binary
4a98d7e944e106d5458378244728dfd6c0adb5d34371538bfa5a1c077539c981 test/results/test0008-amd64-binary
e70c195f333661580aff00c7ca898ccbfa256eb75a01cdf659194d12785c563e test/results/test0008-armv7l-binary
a7bb65722a9a5365721e32ac4ec3aa0f79ba170f0406aeb746f5b296185b0493 test/results/test0008-aarch64-binary
7a6509e9c4803e40993e681cb2b713deff663e98b2ec4814da35a3395d0c3faa test/results/test0008-amd64-binary
355b48c8475adc29581049dada08f7858fbece832b8888b335f7f9a14b1299a2 test/results/test0008-armv7l-binary
16c6a5a8f3723fd464d8bded94ceaeef96e95a83e38caa380bd2d5cc375415c4 test/results/test0008-knight-native-binary
b824859fd0e39f1417742a1b9a1cec18ade78afdd80ce2c64cb54cdf7683f53a test/results/test0008-knight-posix-binary
224a4552dbca742cda8c1d2120df469a57fd68281cadbc3665f4fb300efd6b5c test/results/test0008-x86-binary
0e73537c5c41d94395e6a626c7f0846935de5ff9ca25b004750b9798d539ae92 test/results/test0008-x86-binary
d595865be0821679a9885e897fa57ffe8d559a0750113930e6466985f907dd53 test/results/test0009-aarch64-binary
5de426db9e0cc0943563a5f2464010b1aa27d4b72677945dd237fc3311691906 test/results/test0009-amd64-binary
5f037d86c6e0c352579ce223157963090fe56a72bf65467508f36fd3dd5bd7b2 test/results/test0009-armv7l-binary
e046d0be9ebb80c6053682f37af5ed18fece5afb089f67ecf98556700d7e85f0 test/results/test0009-knight-native-binary
990e82bccca98e6393f72b659abc2eb6069f272202286ce2ca51e9d8a941f3cd test/results/test0009-knight-posix-binary
7e073eac439a8aa7e8ec109eddd7104830cd38b7fe410b91e8050ea6dc32e9c7 test/results/test0009-x86-binary
f472fe7d6d5ab5a4ba36b70b53acb84723a4be67dea95c8fe1fd9ec783ddac21 test/results/test0010-aarch64-binary
66a5f9d2d26616c8f785f5b9118b65d360090e372e50952639352e1eedb529b9 test/results/test0010-amd64-binary
9984936c10f242e4fec67468030723c733c6e85b0c997d613a4f225d173f0f16 test/results/test0010-armv7l-binary
f8e123ac44a5443bf335ec3e7e767649eb29e5b60b36588206c7f8fbc69ed0a5 test/results/test0010-aarch64-binary
2dde3ab1087deed424f1aa17999567854b9882ef704705f9b6044aaa6b851bca test/results/test0010-amd64-binary
0cdb664ad5e405b12d2be0d8976cf73bb0768da36950bc806b42da560ef96cc1 test/results/test0010-armv7l-binary
e01b615db5df31392bd1054c45141dcff936b11dfb1cad270edc0aa67653f5a1 test/results/test0010-knight-native-binary
c1b5a2a3cd46c5e95e5540e871c2a916e028684ca80f51c001ef489342e27625 test/results/test0010-knight-posix-binary
b6c1c279d1d008150708c848ee178d0312de91410e2894b93227e7d8a01f16d5 test/results/test0010-x86-binary
df9a8884564339e469d5dc1bea19880f3865ebcd324abd1187c17c172c4a9c15 test/results/test0010-x86-binary
1f3d14ae4684c90aa403ff0ba24ac4e1effe412c901f055f5abd2b16b5e17bf1 test/results/test0011-aarch64-binary
ed95fa4411d4601d4cc6b5d1fe6c33dac5eb80dcf18b50938c10a42fe83ae267 test/results/test0011-amd64-binary
a99f1a47d36c3b1a71e413a0d5a85d9a0b4710cff8c10e87caf6c2cf6bf4a0f1 test/results/test0011-armv7l-binary
@ -97,80 +97,80 @@ fe84418a5aa71ba024a3910d66ff0ea809c855a47383cd64a8dac00a329e32aa test/results/t
1eab12d44e214ddd3ca1d830edbd26415b78c75055845e540375068dd26fc876 test/results/test0016-armv7l-binary
602c12a1989ee26bbe437b8a40ce9b99b7be3936495de89a4823fa182f012c7a test/results/test0016-knight-posix-binary
71ed1297fedcd77634d5060ca673ee2d191089f109832178f669034d997c1df6 test/results/test0016-x86-binary
bd41467dd80c5a920033a926c6001b62be6832a10ea5840e81475c9121f3f101 test/results/test0017-aarch64-binary
f0db6e6b57d8c8fa4dbf222b7410bae790e61bd8199fb76fbd147df974988e6b test/results/test0017-amd64-binary
a1c4c340a5ff708d5a8a9e6e0f09c4896d9e935a0e20968e21e371be9d6644bc test/results/test0017-armv7l-binary
ca186d12b91ad4f89141c05345680fe83a161766ba4bb49ff0ea28bde77e89b1 test/results/test0017-aarch64-binary
bd70143ec9764bd5681c72e173b6baaca7a486c9330974ca82fb7e997249f572 test/results/test0017-amd64-binary
4618cba0ac8a2aa09c434388be9e2275cfb512c457a9f10e2ec64c06a3f4cf2c test/results/test0017-armv7l-binary
47e3fe786d27493a94c1f8aac0394e7726f85268cf0d7cfa02295f0d1629cb4a test/results/test0017-knight-native-binary
cf67b71d4010910ccf2264c52d7253b092afa88be14890f36927fe595d71cf7f test/results/test0017-knight-posix-binary
74245e1de21cf31d2ae254083f7990bef07b7fa226be78e11dfba5920712e3a5 test/results/test0017-x86-binary
3217100b59210f7d7993164e8af073cccdd216a990613fe3baceeef0b6957638 test/results/test0018-aarch64-binary
503d38441a122fff1c4838356c416888569fb136a88a427c4f89edebe232e543 test/results/test0018-amd64-binary
846911860e64e03a3712640c9f591e868d6de311ebf40303997d66ddf38a0f5a test/results/test0018-armv7l-binary
43124b01045e81627d7f5fd4aedb22166fa5f51790b3e5497e0d796241ee7902 test/results/test0017-x86-binary
c4709e97ccefd918c2c90bb6ca8b1843bcc2aeaa426c26d2745e79613a9c569b test/results/test0018-aarch64-binary
7c880e70934335682896ef3ab6e01f96482d59185b13302c94127126a0b25949 test/results/test0018-amd64-binary
2ad21d7b2536304f9effd97d8614036b0d453a10ba4da3c09b490d6447271a42 test/results/test0018-armv7l-binary
aee694dc1e2e98d69e21f6f4f95120989e8b928379f3b290fee60fd5e32882ef test/results/test0018-knight-native-binary
f355d006d47d663a97c55ebf7f1eae8cafc87b76a6952524bff85b6768f530fc test/results/test0018-knight-posix-binary
23218cc0780f3d404eea19d76959ce71bac6686d2451c72d109988fa17ab0def test/results/test0018-x86-binary
d655e8c32ea03bb75cda5a80c552a9c89f0a1b3b200527a2c5a5ef0a70a604d8 test/results/test0019-aarch64-binary
0e6927648903177d70039c5986822d9b04f8cf73e9f6215235de24f732756468 test/results/test0019-amd64-binary
7f051e05ea5bf50949d1c863b63d4f0fa4856c76ad8e90b19e3a9a6f0fc22ee4 test/results/test0019-armv7l-binary
b547b060881bbbd564d18575b5a96b4f5837ece88ea1f7a20bc5fb1b736361e4 test/results/test0018-x86-binary
aa5f25dabed4c10890da894346025897cf432d727414264a6130f5d85a54e6a0 test/results/test0019-aarch64-binary
b5d23f9cb31ecef662b3f599413c08b3a07d69d1e5fc1b2b9316b757eacef282 test/results/test0019-amd64-binary
3fb11401be187c022e63b6912bddedcedc975ef0a6cf08e978fdb48411589f48 test/results/test0019-armv7l-binary
1368524fad579144cf693b528a19448f8dad7fb51ffa6e64bd046fc628eceba5 test/results/test0019-knight-posix-binary
fff3b2acfae54b4ae8a91b3d431e08d689bd9e2bdd2be0e2c05c680058c12219 test/results/test0019-x86-binary
3f5bb790e48eff23f39a4db41f947bb9d09e7d862b2d42927e7f6e2151b4e5a6 test/results/test0020-aarch64-binary
204c7a3043d5337d4574118fddfe6546d2c06cda401a3119f0c1ae71fd3974d2 test/results/test0020-amd64-binary
e91694f206f3afd3fff2a65aa76ac2033be2a9d866e2b9ac32e23789b84fd45a test/results/test0020-armv7l-binary
33bf6f2f89c39abd283bb447a66b6cfb06588b7117cfeff6929dd8843045ed20 test/results/test0019-x86-binary
e4a810211a2b1f4bd3bb8c329c7f15e18a7a76df03a808a838e103a0f59f90c5 test/results/test0020-aarch64-binary
47e645d71c0a7d870f0a256793fecf32c9abf04928a285e066eea4b6bbefad1a test/results/test0020-amd64-binary
215b2d2b1e128b0e4610991d0792e030cb2ef365b1a3ffcd3d835a1db091c06e test/results/test0020-armv7l-binary
d9d40f64041a02b6a403fd3c07550cf53f9383e0ec7f7208c9c263d06ea3ce8f test/results/test0020-knight-native-binary
6a59795dbb4397d0efaf1ad613d646ec435eec62db30eb758bcf2499d651520e test/results/test0020-knight-posix-binary
13b8d00468bad9ba2b1d1745d8dbd0389ea79c207a23612ce90f1512b092510b test/results/test0020-x86-binary
ef771a820e43871cb2df82127a34985b72e30e7cf3ebdaa8a1bf8c5605ac1bd2 test/results/test0021-aarch64-binary
411d2b8decb020fac7e02476c7a8d25b9cb2af535fe8b5538b9fc5ec0ddc4249 test/results/test0021-amd64-binary
75ac9733348b2c026002379a84ac633e4c4218070dbb522136aeee5ef45980b4 test/results/test0021-armv7l-binary
1183247a4f714b9d1b0ec78b40f49631df3769ae95b0303fa9996208193c4ec9 test/results/test0020-x86-binary
2eb79b7426e2adfed90b910de000d6ccbd0cf7fa6f8fe46222a86474705141d5 test/results/test0021-aarch64-binary
db58e65fb5c977ffabfd0284fe3b215c34db5ecc4bf67b9dcd62e4bd8a45807b test/results/test0021-amd64-binary
b56c9a9e68931081e18f855017729b90e8dffb5d81ab900acba1fa824e9b2cc5 test/results/test0021-armv7l-binary
5653ff788de1c4e5ad8c49d3d5aa91e63509ef7a53bdb4b64bffe9814d1e9ade test/results/test0021-knight-posix-binary
c8f41375f560b230d7f6954222264dcf3fac152ac6b875eed5e54e029e911d25 test/results/test0021-x86-binary
6d2606605cdcce57ce3e03547726ef8adbcea668974ef7b5f554d9665fda06d9 test/results/test0022-aarch64-binary
e3122a6cdd0f611ac33d7440f05035a659cf8611db00249df499abf87c2ecce2 test/results/test0022-amd64-binary
92b3ff1034dd2dad48884a447db01195bab911d22350183bc4f8f0bf9f53c560 test/results/test0022-armv7l-binary
602b8f095b401ec654d358f526787b4a53541fe03b235d5971bc6bdfa8f13878 test/results/test0021-x86-binary
1c61f1e9becd4bd49cef7c7d57f2181a6ad792d600a94d5976c4223272c69fa0 test/results/test0022-aarch64-binary
6c9cd235477fdd070e8cf4aa6255100554b1a907249e0a41b61b44df16e03bca test/results/test0022-amd64-binary
bccd51a074ea646ef4c39410196e32366e952e788e82ad055c408142d26cbfbf test/results/test0022-armv7l-binary
825ab7d2bcb15bbf22cd51a9e9b31f97ad2274052fa397aef3d3ad6cba3331e6 test/results/test0022-knight-posix-binary
53c2c2e39a5f6b4cc94d408cbc59597b6e01845d0429221dd905f1c778463711 test/results/test0022-x86-binary
a70738aa2f1c56fdaacfa45e3fcce8deb105259fac3f6c9cf2804925138a3745 test/results/test0022-x86-binary
f0d50c97a4014a9a49a9cb6636234f289c321a6634d65503d12ec4a3a4693aba test/results/test0023-aarch64-binary
8cd6f04e55eb1d2c73315df8f4959d691c1243550c29671c2e8adc3cdbf1990d test/results/test0023-amd64-binary
afd5d479066402228964a3216235f091065b0922b76576a7c972e93f0fb88684 test/results/test0023-armv7l-binary
720334fcaf22a1e8ec13f722ab1b6da1882bedef7289e188157b29e6ab708716 test/results/test0023-knight-posix-binary
c487702062d19227e59c1f6280ef5f24d48f9c652801f4a1eaa0412ec9dda92d test/results/test0023-x86-binary
a79a93a0298911c50d85614e55fd87b7e7992d4929dd79094f3be023e35af9c0 test/results/test0100-aarch64-binary
2df45a17ac3b1425b5cfccfa56cfc69281bef19546f4e79190ea286ebcceaade test/results/test0100-amd64-binary
7d4b8956b630e6510d36c2183fbd9fb3be2b08187da72835a7f9cb8aecf296fd test/results/test0100-armv7l-binary
44a5d13146df48ea39ad3bdb7627d7e60c6974778c612bb16583b130506f9195 test/results/test0100-aarch64-binary
6a7bfc651df8c98e61c4aecd1b43e4bfd1dbf79c33bcb7fdb9bade398f2ad667 test/results/test0100-amd64-binary
da64739046a84214ee6ee3edbec864bfd1c702a22a063a39ee83abe09c008393 test/results/test0100-armv7l-binary
7b439e2b7297f165cebbd17477924a077d713ed2313609c77015f9321a2d5738 test/results/test0100-knight-posix-binary
4bf97c12ca503187db9d83794e4d36bc836f4773107ead84c381c06e4bae0769 test/results/test0100-x86-binary
ab8ddf1d287a45c799db7f69931b20278e0577ca3d57df7f4689a2c536704277 test/results/test0101-aarch64-binary
1807d7b151febe3a5b843cccc3ca1721aa2e8e5c9c329b770d918b0a2ccf0cd9 test/results/test0101-amd64-binary
b299fa16dbf8313d1840e5421e57c3eb8901cd0c6d25131612007f2e0b8f391c test/results/test0101-armv7l-binary
ee0fe808b0d79b8fcfdbf3e21fba95d96d6c89b56f43c9c579473784f88cca63 test/results/test0100-x86-binary
86dd73d63bd484400be8f0dacc1bf5b27a08851b58cab0e3a77209a123e5a17a test/results/test0101-aarch64-binary
68516969344407b95c6980ff12cb8268ed72110f5c7df2a9dcdccaba1a3e2507 test/results/test0101-amd64-binary
cda06143f1c4a80d7dac19e54d81539ffceae32664d77673309223053ec53497 test/results/test0101-armv7l-binary
206af573a171e1209e96ed74b0d036a29c5a12082dab5851d45ec2a3ef90fc7c test/results/test0101-knight-posix-binary
f4303ff15fa061562535d8f1458551346eb458a57a0fd1b23f86a76978c635cb test/results/test0101-x86-binary
8d76931535e235f7cd4aba6ba087383cd6488c476fcc5aaf895cd09b0967f957 test/results/test0102-aarch64-binary
b60746e954b1bece63f05308b5c5dd0904c79d306fe969edb1f817d4a7941b38 test/results/test0102-amd64-binary
ebbb9d79f5b7a979ab0a16a114c6b903890e0331aaa30283a78b4d4dda5753a2 test/results/test0102-armv7l-binary
309020afea8966630203c91562ae134808d8848a21e6f4c5d131bae8a6f769d6 test/results/test0101-x86-binary
7624de3657ba7f662c2d560128aeab979e36005c8af7dfaef2aef9114820599b test/results/test0102-aarch64-binary
ca70074a2816a15b28c9d09a6e350985fa0866f136b884e62bdd48fdab751142 test/results/test0102-amd64-binary
dccced73ffdc874d7d07f6c7920604f98182290779e540445af6e504863f0e94 test/results/test0102-armv7l-binary
2fd1859cf73d3785a39409a559818e2043f07dcc0e87c38d73a1ffb606946e57 test/results/test0102-knight-posix-binary
6a353b218837b865f360cdd1844a8e3f7a68fe103a7381d613a531ff5f87495b test/results/test0102-x86-binary
bb3803e8460a77d68c1856bad87fe0a151927fcc5c372b2326a063bc884af0c8 test/results/test0103-aarch64-binary
e5de377af6be8a0f224b5226ca0bc8128e8cd87508670fcd909855ec06ca923d test/results/test0103-amd64-binary
484aa9077aa90e3dd117422a59bf68208b0d649625403480c8977ca675a1c92b test/results/test0103-armv7l-binary
ae505ccf9cc5e1976c3a0f0e18ddd3a3752d15f36e4a58855323501b8edf2994 test/results/test0102-x86-binary
368f12e4e708439156a5d3f777efd2c09130dd0ea6d6959f9400e905fe3c23e1 test/results/test0103-aarch64-binary
f2114b5217c12952a85d580ad5914dd679888d93d176ee132ace9e8773916b3b test/results/test0103-amd64-binary
79cbb69a747b07d729db736bc177b52b344106387831a0210ff18fce92edf1cc test/results/test0103-armv7l-binary
aa0658748cb076122f6166bc1a5759ae7e8fda92f952e139bb848ef52c5f9e69 test/results/test0103-knight-posix-binary
7cffc33b1da179c6f4b0f1a43bcd643bcdbb311202758f2dfaf49a7e876ddc07 test/results/test0103-x86-binary
e21464d0c92935db57ecba7dcab6e72c73ff541b87ace887d457738cdb8a8eec test/results/test0104-aarch64-binary
fd4bac5231d557dfe78dc43d3d0dd4021e27e93719b2a0342343173fe68c6632 test/results/test0104-amd64-binary
14ac41c54ee97b1d2e4da87d25a9b0a23bcdef8b6c032c08b53b79fc0f7e9b0f test/results/test0104-armv7l-binary
8b4ba8275622b371da7f5d9cc064ea734fc760fce52959c0c63ab18237fffa58 test/results/test0104-x86-binary
65c8ccc0262c0a5afbcb5420fc315b242ebf9ce8a936f6eba9293d9e3844afec test/results/test0105-aarch64-binary
4b6cefd5775b5b8f79a43af9f07980ad697c48745d31c8a7ad29f0e90a3838c1 test/results/test0105-amd64-binary
4cb3b33262bac564a346d802e03a26f3eacc4bddb3d01bca31229c81debc8789 test/results/test0105-armv7l-binary
af3f1035fd54bfd612aa7693d46cfaa8803507485f7b5bccbd98482a259ec970 test/results/test0105-x86-binary
25217438aabd3f3aa0f5cdd492894184b0c96f161efd83c055210deb2c1ea3c7 test/results/test0106-aarch64-binary
197ff4b352049b9fd85f325da3c522686bd3d32f1db3b5c0f104914ac41f8be2 test/results/test0106-amd64-binary
2afdf68a25a84d437de820cfd52b139655b990e4a5b37135da8e9ddd670d4ee0 test/results/test0106-armv7l-binary
45116095f72aa1a4bf09aeff9f9ddc11e0c7ca3b0c380be930ad8db762088770 test/results/test0106-knight-native-binary
13c270bacaee1748dad55532fc0adfa713904ba1cafbd69f77a9d361bdc4acd7 test/results/test0106-knight-posix-binary
4efc731e0211fae0b7e32aa06ca8cc928987a948e8edaa791bb59332a2a128ac test/results/test0106-x86-binary
c978eef52daad4aa3ec63b08ddd7233c8a166c6655293949a17ed06329068582 test/results/test1000-aarch64-binary
56e38e69f999204084a86ff72198047b7a367ec101755ea7d2a95d8e76b8ddcc test/results/test1000-amd64-binary
3c65d1e5cc46e1fa9736c09b3ac403c9cc1ea8f79d506447e0e43641fc88383e test/results/test1000-armv7l-binary
87c3c6ac883900334d2caa6695cab42628d2cb554e2216a5d541ec349df458b0 test/results/test0103-x86-binary
1c111888781d8f2c559c67607e7364d46d97bd8595954606a318ebdece778781 test/results/test0104-aarch64-binary
78250cc06d1c12ba73dd75f14e127cac7e0595ac84173c4ebb5504281be7a70e test/results/test0104-amd64-binary
d95b5af43752ec3031ef0a9490723960cb5b373a4042e1b78a754fdb0d60df14 test/results/test0104-armv7l-binary
3f448ba0dddf5bc69c11b787f51cf929f53aa0e9fd2d4cc6885b70c2ec87ca35 test/results/test0104-x86-binary
b2d50750bbf78a780475c1c30c16d448504bcc92ad6f0ae094d8edf32aea59c2 test/results/test0105-aarch64-binary
96a7b2fc48cebbbe2b00875d9facab766e750ea2c1b2d89ccd00b3b143607a05 test/results/test0105-amd64-binary
04ac97e210a0d3b48c9a8ac4b0d6720325d787ab4dad2fdafc1d3bcfcd3da2ca test/results/test0105-armv7l-binary
107b2d27dd779d0d954cca657b2f909863448cbf2045dee1875e13facf10bc3d test/results/test0105-x86-binary
6ebfeb72ea3c0bb5a88bef45dbb3cbabd506c7063db7438d93126d2d8fa4a367 test/results/test0106-aarch64-binary
7eb6b7a08d993af23a0fa419a7cbb74c2aae192db2cde0f1c81ae076ba56ccb8 test/results/test0106-amd64-binary
8aae4a1a5d3bd94642cc95d65517cdf4bf15c637c4c9cb27e9c5743880bc9913 test/results/test0106-armv7l-binary
4f364313b48803b40f19f22953dd5614f13b797d4a449badc0811e8dfaa0ecb6 test/results/test0106-knight-native-binary
da0e33264fcaee00e4fb653012d3ff7940b9c73155f2876984f21b730c2ea3a2 test/results/test0106-knight-posix-binary
e1585d905c0629b717adb8b35e1d6fa61cbeca450b1678e1c099c2c4382ff4bf test/results/test0106-x86-binary
4a2dfa59d339cd19b4f55ce18072f75862f913d323ebd67be6c674c2b069a3dc test/results/test1000-aarch64-binary
85bd4d0eba8e09b67e1146c19b52829c69b29fa45da219299e2d8259dce71de4 test/results/test1000-amd64-binary
01532c380df654182916395aca98f7cb87a659884a1e3c28e667f782162fcd8a test/results/test1000-armv7l-binary
090b139722727e549ea425e2e648660f148cedb5f6fcfabd013e367ee7521c14 test/results/test1000-knight-posix-binary
486c009497a690a92c44ce375129efa3d105731355d52e9376a2ab5c42007234 test/results/test1000-x86-binary
3eb3a6d00cdd8c5967b54b1ce101d52496c153e7e531263d8d626c114dd0a2f9 test/results/test1000-x86-binary

View File

@ -287,7 +287,7 @@ void sym_get_value(char *s)
void be_start()
{
emit(16, "\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00");
emit(16, "\x7f\x45\x4c\x46\x01\x01\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00");
emit(16, "\x02\x00\x03\x00\x01\x00\x00\x00\x54\x80\x04\x08\x34\x00\x00\x00");
emit(16, "\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x20\x00\x01\x00\x00\x00");
emit(16, "\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x80\x04\x08");
@ -314,8 +314,8 @@ void be_start()
emit(10, "\x50\x31\xdb\xb8\x2d\x00\x00\x00\xcd\x80");
/* pop %ebx ; add %eax,%ebx ; push %eax ; push %ebx ; mov $45,%eax */
emit(10, "\x5b\x01\xc3\x50\x53\xb8\x2d\x00\x00\x00");
/* int $0x80 ; pop %ebx ; cmp %eax,%ebx ; pop %eax ; je . + 7 */
emit(8, "\xcd\x80\x5b\x39\xc3\x58\x74\x05");
/* int $0x80 ; pop %ebx ; cmp %eax,%ebx ; pop %eax ; jle . + 7 */
emit(8, "\xcd\x80\x5b\x39\xc3\x58\x7e\x05");
/* mov $-1,%eax ; ret */
emit(6, "\xb8\xff\xff\xff\xff\xc3");

View File

@ -1 +1 @@
3987b6a29775e015c11e35008ad0d0b3ee57f32655dc26f2360000b345139f54 test/test0106/cc1
5ab41b5e38ef0a29ad3fcd66b9e339d050b870d9160a83e9405d3f0444e72a33 test/test0106/cc1

View File

@ -1 +1 @@
3987b6a29775e015c11e35008ad0d0b3ee57f32655dc26f2360000b345139f54 test/test0106/cc2
5ab41b5e38ef0a29ad3fcd66b9e339d050b870d9160a83e9405d3f0444e72a33 test/test0106/cc2

View File

@ -1 +1 @@
15f5c4ccc437b217da2d0b1e26ff65379b656e8fde12f652da1d78606a9e54c5 test/test1000/proof
d5bd98e95153a8693722387edc2165f215b5c8d405b779c3f9d04b360cac4ed8 test/test1000/proof