diff options
Diffstat (limited to 'src/devices/cpu/mb86235/mb86235drc.cpp')
-rw-r--r-- | src/devices/cpu/mb86235/mb86235drc.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/devices/cpu/mb86235/mb86235drc.cpp b/src/devices/cpu/mb86235/mb86235drc.cpp index 77953a640d8..468ac24ad8f 100644 --- a/src/devices/cpu/mb86235/mb86235drc.cpp +++ b/src/devices/cpu/mb86235/mb86235drc.cpp @@ -1529,7 +1529,7 @@ void mb86235_device::generate_control(drcuml_block &block, compiler_state &compi int ef1 = (op >> 16) & 0x3f; int ef2 = op & 0xffff; int cop = (op >> 22) & 0x1f; -// int rel12 = (op & 0x800) ? (0xfffff000 | (op & 0xfff)) : (op & 0xfff); +// int rel12 = util::sext<int>(op, 12); switch (cop) { @@ -1718,8 +1718,7 @@ void mb86235_device::generate_xfer2(drcuml_block &block, compiler_state &compile int ary = (opcode >> 4) & 7; int md = opcode & 0xf; - int disp14 = (opcode >> 7) & 0x3fff; - if (disp14 & 0x2000) disp14 |= 0xffffc000; + int disp14 = util::sext((opcode >> 7) & 0x3fff, 14); if (op == 0) // MOV2 { @@ -1811,8 +1810,7 @@ void mb86235_device::generate_xfer3(drcuml_block &block, compiler_state &compile int ary = (opcode >> 4) & 7; int md = opcode & 0xf; - int disp = (opcode >> 7) & 0xfff; - if (disp & 0x800) disp |= 0xfffff800; + int disp = util::sext<int>((opcode >> 7) & 0xfff, 12); switch (dr >> 5) { |