summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/h8/h8.lst
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/h8/h8.lst')
-rw-r--r--src/devices/cpu/h8/h8.lst21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/devices/cpu/h8/h8.lst b/src/devices/cpu/h8/h8.lst
index 3edcc8c35e6..e0a5385a4b2 100644
--- a/src/devices/cpu/h8/h8.lst
+++ b/src/devices/cpu/h8/h8.lst
@@ -577,8 +577,23 @@ macro jsr32 %opc %spreg
write16(TMP1, (CCR << 8) | CCR);
prefetch_done();
+01410400 ffffff00 0 orc imm8 exr s20
+ EXR |= IR[1];
+ update_irq_filter();
+ prefetch_noirq();
+
+01410500 ffffff00 0 xorc imm8 exr s20
+ EXR ^= IR[1] & ~EXR_NC;
+ update_irq_filter();
+ prefetch_noirq();
+
+01410600 ffffff00 0 andc imm8 exr s20
+ EXR &= IR[1] | EXR_NC;
+ update_irq_filter();
+ prefetch_noirq();
+
01410700 ffffff00 0 ldc imm8 exr s20
- EXR = IR[1];
+ EXR = IR[1] | EXR_NC;
update_irq_filter();
prefetch_noirq();
@@ -873,7 +888,7 @@ macro jsr32 %opc %spreg
prefetch_noirq();
0310 fff0 0 ldc r8l exr s20
- EXR = r8_r(IR[0]);
+ EXR = r8_r(IR[0]) | EXR_NC;
update_irq_filter();
prefetch_noirq();
@@ -1542,7 +1557,7 @@ macro jsr32 %opc %spreg
TMP1 = r32_r(7);
if(mode_advanced) {
if(exr_in_stack()) {
- EXR = read16(TMP1) >> 8;
+ EXR = (read16(TMP1) >> 8) | EXR_NC;
TMP1 += 2;
}
TMP2 = read16(TMP1);