Commit graph

57 commits

Author SHA1 Message Date
Fabian 75dbbbc55a Update rustfmt 2020-12-31 19:14:30 -06:00
Fabian 232d3763d9 Make maskmov* custom 2020-12-31 19:14:30 -06:00
Fabian 6eed301779 Don't use is_osize_32 in instructions 2020-12-31 19:14:30 -06:00
Fabian 8c8f42902b Move state out of instructions_0f.rs 2020-12-31 19:14:29 -06:00
Fabian 17d98256d6 c2rust cleanup: Remove temporary variable expanded from C macro
/let _-€kb___0
wwwd%/____0
vepdd
2020-12-31 19:14:29 -06:00
Fabian 653f56726b c2rust cleanup: Remove cast in comparison with constant 2020-12-31 19:14:29 -06:00
Fabian 80a69939a1 c2rust cleanup: Use bool 2020-12-31 19:14:29 -06:00
Fabian 034ecd5390 c2rust cleanup: Remove unnecessary type annotations on let bindings 2020-12-31 19:14:29 -06:00
Fabian 764879bad1 s/reg32s/reg32 2020-12-31 19:14:29 -06:00
Fabian 60adbf9b1f Fix: Side-effects in lsl/lar/arpl even when #ud is triggered 2020-12-31 19:14:29 -06:00
Fabian 5e73b6f21b Remove invalid assertion on sfence/mfence/lfence (low bits of modrm byte are ignored) 2020-12-31 19:14:29 -06:00
Fabian 78ef12be68 Custom implementations for several sse instructions
- mov dword/qword [mem], xmm
- mov xmm, dword/qword [mem]
- some arithmetic
2020-12-31 19:14:28 -06:00
Fabian 1f74ee534c Simplify cmpxchg using SAFE_READ_WRITE macro 2020-08-30 19:37:15 -05:00
Fabian 447307c27f Minor: Remove unnecessary parens 2020-08-30 19:37:15 -05:00
Fabian 7c4ed66c20 Cleanup: Rename trigger_gp_non_raising to trigger_gp 2020-08-30 19:37:15 -05:00
Fabian 47e91de601 Remove has_rand_int, always require get_rand_int to be available 2020-08-30 19:37:15 -05:00
Fabian 8d6baff91c Fix rustfmt 2020-08-30 19:29:54 -05:00
Fabian c08a99c591 c2rust cleanup: Fix boolean literals 2020-08-30 19:29:54 -05:00
Fabian cb1348fdc7 c2rust cleanup: Restore hex constants 2020-08-30 19:29:54 -05:00
Fabian 435608d9f0 c2rust cleanup: Remove unused mut 2020-08-30 19:29:54 -05:00
Fabian 05ca01c7de c2rust cleanup: Remove casts on numeric literals 2020-08-30 19:29:54 -05:00
Fabian d895985e83 c2rust cleanup: Turn while loops into for loops 2020-08-30 19:29:54 -05:00
Fabian 818cece40d Transition from fpu mode on mmx operations 2020-08-30 19:29:54 -05:00
Fabian 1de206da49 Minor: Print cr4 as hex 2020-08-30 19:29:54 -05:00
Fabian 585f720567 Fix sse shifts (shift operand is 64 bit) 2020-08-30 19:29:54 -05:00
Amaan Cheval 56ec3be5a4 cpu: Port update_cs_size to Rust
The JS version needs to stay too since it can be called by other JS-only functions.
2020-08-30 19:29:54 -05:00
Amaan Cheval 1712d25725 cpu: Port set_cr0 to Rust 2020-08-30 19:29:54 -05:00
Amaan Cheval b4922dc3b1 cpu: Port cpl_changed to Rust
We leave the JS version too, since it's used by several other JS functions
that we aren't porting yet.
2020-08-30 19:29:54 -05:00
Amaan Cheval 880aa5e2d1 cpu: Port lookup_segment_selector and switch_seg to Rust
We'll keep the JS versions too, since the Rust and JS versions are incompatible, but both are needed
in their own respect.
2020-08-30 19:29:54 -05:00
Fabian 3cb7f7a0b4 Clean up casts of physical and virtual addresses 2020-08-30 19:29:54 -05:00
Fabian 0a50a8474e c2rust cleanup: Remove unnecessary suffixes on numbers 2020-08-30 19:29:54 -05:00
Fabian b5ed5f7c5b c2rust cleanup: Remove -> () 2020-08-30 19:29:54 -05:00
Fabian cb80830881 c2rust cleanup: Enable mutable_transmutes warnings 2020-08-30 19:29:54 -05:00
Fabian 6b8bf885a2 c2rust cleanup: Enable unused_assignments and unused_variables warnings and fix them 2020-08-30 19:29:54 -05:00
Fabian 015232f466 c2rust cleanup: Remove .offset(0) 2020-08-30 19:29:54 -05:00
Fabian 44bc613af3 c2rust cleanup: Remove dbg_log_c 2020-08-30 19:29:54 -05:00
Fabian ef796d7f62 c2rust cleanup: Remove fresh variables 2020-08-30 19:29:54 -05:00
Fabian 3a00eedf21 c2rust cleanup: Re-enable some warnings 2020-08-30 19:29:54 -05:00
Fabian d08f5fd460 c2rust cleanup: Fix comments 2020-08-30 19:29:54 -05:00
Fabian 2b27510198 sse: Warn on unimplemented mxcsr features 2020-08-30 19:29:54 -05:00
Fabian 221e5489b4 sse: Clean up old cvt instruction 2020-08-30 19:29:54 -05:00
Fabian d63c956a89 sse: Implement 0F5A/0F5B/CVTT?[SPD][SDQ]2[SPD][SDQ] (#57) 2020-08-30 19:29:54 -05:00
Fabian 8ab707dbc2 sse: Implement 0FE6/CVTPD2DQ/CVTTPD2DQ/CVTDQ2PD (#57) 2020-08-30 19:29:54 -05:00
Fabian 3ea0089878 sse: Implement 0F2C/0F2D/CVTT[PS][SD]2[SP]I (#57) 2020-08-30 19:29:54 -05:00
Fabian 9665dbf994 sse: Implement 0F2E/0F2F/u?comis[sd] (#57) 2020-08-30 19:29:54 -05:00
Fabian 8dc066f73d sse: Expand sse3 instruction 2020-08-30 19:29:54 -05:00
Fabian cc507db69b sse: Implement 0FC6/shufp[sd] (#57) 2020-08-30 19:29:54 -05:00
Fabian 9e902eb1dc sse: Implement 0F52/rcpps (#57) 2020-08-30 19:29:54 -05:00
Fabian 3bb3e21962 mxcsr: Warn on 'Denormals Are Zero' 2020-08-30 19:29:54 -05:00
Fabian b51c6e7c78 imul_reg16: Do sign extension in function 2020-08-30 19:29:54 -05:00