789 Commits

Author SHA1 Message Date
Theodore Dubois
4169c8ea24 Implement bsr and bsf 2018-05-26 13:28:37 -07:00
Theodore Dubois
cc3dde2968 Fix several emulation bugs 2018-05-26 11:58:32 -07:00
Theodore Dubois
09a27300ad Report segfaults that occur during modrm decoding 2018-05-26 11:58:32 -07:00
Theodore Dubois
b7167d5b3f Silence "program is not running" errors in gdb stop hook 2018-05-26 11:58:32 -07:00
Theodore Dubois
cb209cb233 Initialize interp_ph 2018-05-26 11:58:32 -07:00
Theodore Dubois
77ec43da79 Fix a few bugs 2018-05-26 11:58:32 -07:00
Theodore Dubois
3182a42c47 Implement pop form of ret 2018-05-25 17:52:55 -07:00
Theodore Dubois
fa00fa7ba4 Implement cmpxchg 2018-05-25 17:52:34 -07:00
Theodore Dubois
5b0ad80d37 Implement rotate instructions 2018-05-25 16:16:00 -07:00
Theodore Dubois
ab81122c62 Fix flags on imul and shifts 2018-05-25 15:19:55 -07:00
Theodore Dubois
25931324fe Implement jcxz 2018-05-25 14:56:37 -07:00
Theodore Dubois
65d65a813a Implement all forms of multiplication 2018-05-25 14:54:29 -07:00
Theodore Dubois
24ee6d0c7c Implement xchg 2018-05-25 14:29:57 -07:00
Theodore Dubois
8d05e5e8b6 Implement movsx 2018-05-25 14:26:52 -07:00
Theodore Dubois
ef287904a0 Implement two-argument form of imul 2018-05-25 14:18:22 -07:00
Theodore Dubois
d1a0ebbed5 Implement parity condition 2018-05-25 12:41:53 -07:00
Theodore Dubois
feeb59f922 Implement cpuid 2018-05-25 12:40:59 -07:00
Theodore Dubois
392da987a0 Implement cmov 2018-05-25 12:14:39 -07:00
Theodore Dubois
130e96692c Don't change flags if shift count is zero 2018-05-25 11:42:24 -07:00
Theodore Dubois
18bac9a18e Implement adc and sbb 2018-05-25 11:22:40 -07:00
Theodore Dubois
93788b4f79 Do nothing for a repeated string instruction if ecx is 0 2018-05-25 10:31:08 -07:00
Theodore Dubois
01d919db65 Restore the correct IP after a segfault 2018-05-24 18:12:36 -07:00
Theodore Dubois
f3a4e7b533 Implement idiv 2018-05-24 17:47:00 -07:00
Theodore Dubois
210f2c57ab Implement movs 2018-05-24 16:24:00 -07:00
Theodore Dubois
eb29befa90 Handle thread local storage 2018-05-24 16:10:53 -07:00
Theodore Dubois
da7309b6c3 Correct carry flag checking 2018-05-24 16:04:32 -07:00
Theodore Dubois
f62a273621 First draft of string instructions 2018-05-24 16:04:32 -07:00
Theodore Dubois
c1f6c4a386 Sort of implement shrd 2018-05-24 12:19:33 -07:00
Theodore Dubois
82fd6f2226 Implement 3-operand imul 2018-05-24 11:04:40 -07:00
Theodore Dubois
74c2675b84 Remove unused MUL2 and MUL3 macro definitions 2018-05-24 11:00:33 -07:00
Theodore Dubois
9ecd0b98e5 Implement binary not 2018-05-24 10:45:34 -07:00
Theodore Dubois
4795f8dff5 Implement sign bit condition 2018-05-24 10:42:47 -07:00
Theodore Dubois
4ced1ab640 Implement loading and storing gs 2018-05-24 10:41:40 -07:00
Theodore Dubois
b60fd3ef1b Implement rdtsc and sar 2018-05-24 10:12:46 -07:00
Theodore Dubois
635b237525 Handle modrm scale of 8 2018-05-24 03:18:53 -07:00
Theodore Dubois
cb707f2f41 Implement neg 2018-05-24 03:01:05 -07:00
Theodore Dubois
4eb829624b Implement indirect call 2018-05-24 02:32:18 -07:00
Theodore Dubois
f140ddc495 Bodge ptraceomatic into not being wrong 2018-05-24 02:29:05 -07:00
Theodore Dubois
4eb82dde66 Implement l and le conditions 2018-05-24 01:44:14 -07:00
Theodore Dubois
8ad416902e Don't fall through on op-size prefix 2018-05-24 01:31:36 -07:00
Theodore Dubois
8910c47abf Implement div 2018-05-24 01:31:10 -07:00
Theodore Dubois
adc103cf6f Implement bt with register bit index 2018-05-23 13:19:19 -07:00
Theodore Dubois
daaff9fe6a Fix SETN not existing on interpreter 2018-05-23 13:15:50 -07:00
Theodore Dubois
f63926e3fb Implement SHR 2018-05-23 10:45:19 -07:00
Theodore Dubois
78fec9aea2 Handle modrm bytes with no base register 2018-05-23 10:39:01 -07:00
Theodore Dubois
75da426477 Implement bt and setcc, remove gadget declarations 2018-05-23 10:24:17 -07:00
Theodore Dubois
690efbc4b2 Implement shl 2018-05-22 16:33:00 -07:00
Theodore Dubois
45e9e5f5b6 Have boolean operations clear CF and OF 2018-05-22 15:46:07 -07:00
Theodore Dubois
ae512c6b2d Implement jb 2018-05-22 15:42:22 -07:00
Theodore Dubois
ddaa96d444 Implement or 2018-05-22 15:40:33 -07:00