diff options
-rw-r--r-- | backend/src/backend/gen_register.hpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/backend/src/backend/gen_register.hpp b/backend/src/backend/gen_register.hpp index bbea7616..a8eb2e45 100644 --- a/backend/src/backend/gen_register.hpp +++ b/backend/src/backend/gen_register.hpp @@ -1267,6 +1267,11 @@ namespace gbe } else if (reg.type == GEN_TYPE_W) { const uint16_t uw = reg.value.ud & 0xffff; reg = GenRegister::immw(-(int16_t)uw); + } else if (reg.type == GEN_TYPE_HF_IMM) { + const uint16_t uw = reg.value.ud & 0xffff; + reg = GenRegister::immh(uw ^ 0x8000); + } else if (reg.type == GEN_TYPE_DF_IMM) { + reg.value.df = -reg.value.df; } else NOT_SUPPORTED; } |