summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortwinaphex2014-12-12 06:48:20 +0100
committertwinaphex2014-12-12 06:48:20 +0100
commit701e2bbf501229175d8ef210d3ed985db757567b (patch)
treefed3a4c97162de1d666b10306e592ac02dd9c30d
parent4a6d527b1c1af36676be85bb332f95c24d3ce458 (diff)
downloadpicogpsp-701e2bbf501229175d8ef210d3ed985db757567b.tar.gz
picogpsp-701e2bbf501229175d8ef210d3ed985db757567b.tar.bz2
picogpsp-701e2bbf501229175d8ef210d3ed985db757567b.zip
CPU interpreter - group THUMB cases 0x38 to 0x3F (SUB) together
-rw-r--r--cpu.c23
1 files changed, 1 insertions, 22 deletions
diff --git a/cpu.c b/cpu.c
index 1c3447d..9b1f3c2 100644
--- a/cpu.c
+++ b/cpu.c
@@ -3360,42 +3360,21 @@ thumb_loop:
case 0x38:
/* SUB r0, imm */
- thumb_sub(imm, 0, reg[0], imm);
- break;
-
case 0x39:
/* SUB r1, imm */
- thumb_sub(imm, 1, reg[1], imm);
- break;
-
case 0x3A:
/* SUB r2, imm */
- thumb_sub(imm, 2, reg[2], imm);
- break;
-
case 0x3B:
/* SUB r3, imm */
- thumb_sub(imm, 3, reg[3], imm);
- break;
-
case 0x3C:
/* SUB r4, imm */
- thumb_sub(imm, 4, reg[4], imm);
- break;
-
case 0x3D:
/* SUB r5, imm */
- thumb_sub(imm, 5, reg[5], imm);
- break;
-
case 0x3E:
/* SUB r6, imm */
- thumb_sub(imm, 6, reg[6], imm);
- break;
-
case 0x3F:
/* SUB r7, imm */
- thumb_sub(imm, 7, reg[7], imm);
+ thumb_sub(imm, thumb_opcode_val & 0x7, reg[thumb_opcode_val & 0x7], imm);
break;
case 0x40: