73 Commits

Author SHA1 Message Date
Theodore Dubois
00ec13cb6e Implement log base 2 (fyl2x) 2018-10-30 14:41:39 -07:00
Theodore Dubois
c10fac176f Implement frndint 2018-10-29 17:13:05 -07:00
Theodore Dubois
67a94999a9 Implement atomic operations on x86 2018-10-28 20:39:14 -07:00
Theodore Dubois
ed5cf3b432 Add decoder support for atomics 2018-10-28 18:27:00 -07:00
Theodore Dubois
52bca8ece0 Attempt to fix the stack alignment once and for all 2018-10-28 15:12:15 -07:00
Theodore Dubois
e112675f74 Use the correct size for loads and stores in scas and cmps 2018-10-22 14:59:28 -07:00
Theodore Dubois
a6236c7545 Fix build for x86 darwin 2018-10-08 17:18:19 -07:00
Theodore Dubois
c4837720ff Implement fabs/fchs 2018-10-08 15:25:45 -07:00
Theodore Dubois
a0cc2e77e4 Implement overflow conditionals in jit 2018-10-07 20:53:58 -07:00
Theodore Dubois
6eaaed4451 Fix instruction pointer after segfault or illegal instruction 2018-10-07 20:46:18 -07:00
Theodore Dubois
0cfe10729b Improve jit log messages 2018-10-06 20:57:10 -07:00
Theodore Dubois
137ba5a0d8 Correctly report the segfault address 2018-10-06 20:56:43 -07:00
Theodore Dubois
a085694d0e Implement xadd in the JIT 2018-10-05 16:32:43 -07:00
Theodore Dubois
2ec1247dc0 Implement fidivr 2018-10-05 12:48:08 -07:00
Theodore Dubois
cf1578cddb Add a quick cache for jit blocks 2018-09-30 12:40:21 -07:00
Theodore Dubois
0cf553e968 Chain jcxz instructions 2018-09-30 12:40:05 -07:00
Theodore Dubois
1a9fa6712e Correctly test for errors from crosspage accesses 2018-09-30 12:09:30 -07:00
Theodore Dubois
6ad7596546 Fix stack alignment on linux 2018-09-30 11:56:02 -07:00
Theodore Dubois
986bcdaf72 Use correct size for helper reads and writes 2018-09-30 10:40:39 -07:00
Theodore Dubois
7ebc060632 Keep the stack 16 byte aligned on x86 2018-09-28 13:21:52 -07:00
Theodore Dubois
a55f83be34 Terminate blocks longer than a page with a gen_exit 2018-09-28 12:33:59 -07:00
Theodore Dubois
7282fa2639 Unfuck bsr for aarch64 2018-09-26 15:15:57 -07:00
Theodore Dubois
2dd5be2228 Use TRACELN instead of println like I meant to do all along 2018-09-25 18:16:41 -07:00
Theodore Dubois
c6a53be55f Log blocks as they're compiled 2018-09-25 17:10:50 -07:00
Theodore Dubois
5e7c17d703 Unfuck pushf and popf for aarch64 2018-09-25 15:52:35 -07:00
Theodore Dubois
e674d88fe7 Fix initializing of jit blocks
Correctly initialize end_addr and initialize linked lists after any realloc calls might have happened.
2018-09-25 14:43:01 -07:00
Theodore Dubois
fe4092ed0f Fix jit build for iOS 2018-09-20 14:43:19 -07:00
Theodore Dubois
006f5a1587 Fix jit build on linux 2018-09-18 20:22:50 -07:00
Theodore Dubois
f58063dddf Fix jit build on macOS 2018-09-18 19:44:29 -07:00
Theodore Dubois
83174880d8 Fix TLB thrashing with a new hash function 2018-09-18 15:15:32 -07:00
Theodore Dubois
93696f16db Use correct sized memory reads/writes in aarch64 math 2018-09-18 11:57:53 -07:00
Theodore Dubois
515a93010e Implement mul for aarch64 2018-09-18 11:57:44 -07:00
Theodore Dubois
304c4a6fea Correctly handle BT with memory 2018-09-16 08:51:11 -07:00
Theodore Dubois
76feac71a5 Correctly set CF for both adc and sbb 2018-09-16 08:50:47 -07:00
Theodore Dubois
34850a1f48 Correctly set OF for inc and dec 2018-09-11 09:41:39 -07:00
Theodore Dubois
3774d61725 Implement xchg for aarch4 2018-09-11 09:41:03 -07:00
Theodore Dubois
eaefba6fc0 Implement rol and ror for aarch64 2018-09-11 09:39:43 -07:00
Theodore Dubois
d01e1485ee Unfuck cmpxchg 2018-09-10 15:50:26 -07:00
Theodore Dubois
acc0155bd7 Implement unary imul 2018-09-10 15:50:25 -07:00
Theodore Dubois
1be828d925 Fix checking of flags when their value is not in res 2018-09-03 01:12:22 +00:00
Theodore Dubois
dae9776d91 Implement bsr/bsf 2018-09-03 01:12:05 +00:00
Theodore Dubois
12a4dccd29 Implement adc and sbc 2018-09-02 17:14:31 +00:00
Theodore Dubois
109ba1384b Fix test for sign-xor-overflow condition 2018-09-02 17:13:41 +00:00
Theodore Dubois
5d64d03f79 Implement idiv 2018-09-02 00:43:17 +00:00
Theodore Dubois
24b2572792 Implement register high byte operations 2018-09-02 00:43:01 +00:00
Theodore Dubois
1b6d4623c8 Implement sar 2018-09-02 00:42:44 +00:00
Theodore Dubois
33f02b0d06 Fix some bugs in string instructions 2018-09-01 23:47:46 +00:00
Theodore Dubois
9fe170e830 Implement shrd/shld for aarch64 2018-09-01 23:47:23 +00:00
Theodore Dubois
06529dae54 Implement multi-operand imul 2018-09-01 20:41:52 +00:00
Theodore Dubois
1255c1cae6 Implement neg and not 2018-08-31 00:28:12 +00:00