diff options
author | Andreas Kling <kling@serenityos.org> | 2020-07-10 17:18:49 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2020-07-10 20:20:27 +0200 |
commit | 0cf7fd5268582eca705158f71541013ef340738d (patch) | |
tree | 3541d1fd69c521e8912d9d322611c75ebd6173a4 /DevTools/UserspaceEmulator/SoftCPU.h | |
parent | 9955819d92438a06465927b3b4eadb8fc1c383e1 (diff) | |
download | serenity-0cf7fd5268582eca705158f71541013ef340738d.zip |
UserspaceEmulator+LibX86: Implement all the forms of XOR
And they're all generic, which will make it easy to support more ops.
Diffstat (limited to 'DevTools/UserspaceEmulator/SoftCPU.h')
-rw-r--r-- | DevTools/UserspaceEmulator/SoftCPU.h | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/DevTools/UserspaceEmulator/SoftCPU.h b/DevTools/UserspaceEmulator/SoftCPU.h index 37da19fde6..a8d167000a 100644 --- a/DevTools/UserspaceEmulator/SoftCPU.h +++ b/DevTools/UserspaceEmulator/SoftCPU.h @@ -664,11 +664,33 @@ private: virtual void wrap_0xD3_32(const X86::Instruction&) override; template<typename Op> - void generic_RM32_reg32(Op, const X86::Instruction&); + void generic_AL_imm8(Op, const X86::Instruction&); + template<typename Op> + void generic_AX_imm16(Op, const X86::Instruction&); + template<typename Op> + void generic_EAX_imm32(Op, const X86::Instruction&); + template<typename Op> + void generic_RM16_imm16(Op, const X86::Instruction&); + template<typename Op> + void generic_RM16_imm8(Op, const X86::Instruction&); + template<typename Op> + void generic_RM16_reg16(Op, const X86::Instruction&); template<typename Op> void generic_RM32_imm32(Op, const X86::Instruction&); template<typename Op> void generic_RM32_imm8(Op, const X86::Instruction&); + template<typename Op> + void generic_RM32_reg32(Op, const X86::Instruction&); + template<typename Op> + void generic_RM8_imm8(Op, const X86::Instruction&); + template<typename Op> + void generic_RM8_reg8(Op, const X86::Instruction&); + template<typename Op> + void generic_reg16_RM16(Op, const X86::Instruction&); + template<typename Op> + void generic_reg32_RM32(Op, const X86::Instruction&); + template<typename Op> + void generic_reg8_RM8(Op, const X86::Instruction&); private: Emulator& m_emulator; |