789 Commits

Author SHA1 Message Date
Theodore Dubois
e03f44b637 Replace softfloat with custom 80-bit float library 2018-08-12 18:58:32 -07:00
Theodore Dubois
91f56e8e15 Implement cvte 2018-08-12 18:57:15 -07:00
Theodore Dubois
a02fe95b33 Implement sahf 2018-08-12 18:56:26 -07:00
Theodore Dubois
9d7bf7025a Fix warning on latest meson 2018-08-12 18:54:08 -07:00
Theodore Dubois
943662c1a8 Add strace for nanosleep 2018-08-12 18:53:43 -07:00
Theodore Dubois
2e53637e5b Downgrade to softfloat 2, for improved hackability 2018-06-23 18:59:40 -07:00
Theodore Dubois
9cce538f49 Fix compile error when jit is disabled 2018-06-23 18:15:49 -07:00
Theodore Dubois
1cf549de34 Fix crashes and memory leaks 2018-06-23 15:02:56 -07:00
Theodore Dubois
601ed99dc3 Make sure different processes have different pids 2018-06-17 15:15:42 -07:00
Theodore Dubois
b22aec1352 Don't waste so much time copying the cpu struct around 2018-06-17 14:45:27 -07:00
Theodore Dubois
bfa4bc056e Make more types of block exits patchable 2018-06-17 14:45:09 -07:00
Theodore Dubois
e394c50110 Correctly handle crosspage writes 2018-06-17 14:43:48 -07:00
Theodore Dubois
39174168c3 Break out of readv/writev as soon as a buffer is incompletely read/written 2018-06-16 16:44:48 -07:00
Theodore Dubois
92e611f82b Return the fake sockets from socket pair, not the real ones 2018-06-16 16:00:46 -07:00
Theodore Dubois
b4e00f74a1 Don't segfault when calling a socket function on a bad fd 2018-06-16 16:00:34 -07:00
Theodore Dubois
fb2d8ca810 Handle calling ioctl on files that don't support ioctl in ptraceomatic 2018-06-16 15:59:50 -07:00
Theodore Dubois
fc185f9550 Handle socketpair and fstatat64 in ptraceomatic 2018-06-16 15:59:38 -07:00
Theodore Dubois
41f2b61aff Find a slightly better place for log_override 2018-06-16 15:58:52 -07:00
Theodore Dubois
2664661fb1 Return the destination fd from dup2 2018-06-16 15:58:26 -07:00
Theodore Dubois
2ec1966bab Correctly handle crosspage reads 2018-06-16 15:57:35 -07:00
Theodore Dubois
fc54f7bcfb Make jit_exit work no matter where the stack pointer is 2018-06-14 17:30:58 -07:00
Theodore Dubois
706661fe8f Clean up some code, and set up a stack frame for jitted code 2018-06-14 17:20:28 -07:00
Theodore Dubois
70d019edb3 Use the actual protection for file mappings 2018-06-14 07:35:29 -07:00
Theodore Dubois
dc440acf9d Implement pushf and popf 2018-06-14 07:34:43 -07:00
Theodore Dubois
1ed9a5436e Fill in opcode 0xd2: grp2 cl, modrm8 2018-06-14 07:32:46 -07:00
Theodore Dubois
5456011a08 Set Z/S/P flags in sh[lr]d 2018-06-12 16:35:38 -07:00
Theodore Dubois
92fa60bd7d Flush the tlb with ptraceomatic 2018-06-12 16:35:07 -07:00
Theodore Dubois
96d84180d9 Handle undefined flags for imul 2018-06-12 16:35:07 -07:00
Theodore Dubois
cbe8134588 Set flags for cmpxchg 2018-06-12 16:35:07 -07:00
Theodore Dubois
0b237545c5 Implement cmps 2018-06-12 16:33:28 -07:00
Theodore Dubois
b571afb52f Fix bswap ordering 2018-06-12 16:32:54 -07:00
Theodore Dubois
3f4fee556c Implement shld 2018-06-03 08:41:10 -07:00
Theodore Dubois
7cacc23b50 Implement lods 2018-06-03 08:36:28 -07:00
Theodore Dubois
509fb7a2df Implement bswap 2018-06-03 08:33:59 -07:00
Theodore Dubois
83c130030e Fix segfaults when using ptraceomatic 2018-06-03 08:12:29 -07:00
Theodore Dubois
c2522461b7 Implement scas 2018-06-03 08:07:35 -07:00
Theodore Dubois
c09571fad3 Implement setting the direction flag 2018-06-01 12:12:33 -07:00
Theodore Dubois
cd310198c6 Fix various blockchain bugs 2018-06-01 11:34:12 -07:00
Theodore Dubois
470146cc15 Improve performance with blockchain technology 2018-05-31 15:55:37 -07:00
Theodore Dubois
ef0007cd71 Get rid of RET_NEAR_IMM 2018-05-30 18:26:42 -07:00
Theodore Dubois
a092f01491 Assert blocks don't get too big 2018-05-30 17:38:29 -07:00
Theodore Dubois
31edab5849 Save and restore all the clobbered registers 2018-05-29 10:12:00 -07:00
Theodore Dubois
2cfccebb75 Fix a subtle bug in checking the zero flag 2018-05-28 19:36:33 -07:00
Theodore Dubois
a24e39462b Detect segfaults when decoding instructions 2018-05-28 19:36:07 -07:00
Theodore Dubois
e52feb0c39 Do some basic jit block invalidation 2018-05-28 18:50:02 -07:00
Theodore Dubois
2748b8ade6 Add test for modifying code that was just run 2018-05-27 12:13:46 -07:00
Theodore Dubois
75e8d35381 First draft of block caching 2018-05-26 19:15:05 -07:00
Theodore Dubois
bff119e216 Compile an entire block at a time 2018-05-26 18:33:47 -07:00
Theodore Dubois
723ecb1107 Make inc and dec sized 2018-05-26 14:39:18 -07:00
Theodore Dubois
26d2b0439a Set O and C for shrd 2018-05-26 14:39:09 -07:00