summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/mb86235/mb86235drc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/mb86235/mb86235drc.cpp')
-rw-r--r--src/devices/cpu/mb86235/mb86235drc.cpp8
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)
{