fix compatibility with ancient gas master github/master
authornotaz <notasas@gmail.com>
Sat, 7 Dec 2019 20:25:13 +0000 (22:25 +0200)
committernotaz <notasas@gmail.com>
Sat, 7 Dec 2019 20:25:13 +0000 (22:25 +0200)
OpArith.cpp
OpLogic.cpp

index 96c7e0d..09517b8 100644 (file)
@@ -425,7 +425,7 @@ int OpAbcd(int op)
     ot("  add r1,r1,r0\n");\r
     ot("  add r1,r1,r6\n");\r
     ot("  mov r12,r1\n");\r
     ot("  add r1,r1,r0\n");\r
     ot("  add r1,r1,r6\n");\r
     ot("  mov r12,r1\n");\r
-    ot("  addhi r12,#6 ;@ Decimal adjust units\n");\r
+    ot("  addhi r12,r12,#6 ;@ Decimal adjust units\n");\r
     ot("  tst r1,#0x80\n");\r
     ot("  orreq r10,r10,#0x10000000 ;@ Undefined V behavior\n");\r
     ot("  cmp r12,#0x9f\n");\r
     ot("  tst r1,#0x80\n");\r
     ot("  orreq r10,r10,#0x10000000 ;@ Undefined V behavior\n");\r
     ot("  cmp r12,#0x9f\n");\r
@@ -452,7 +452,7 @@ int OpAbcd(int op)
     ot("  cmp r1,r12\n");\r
     ot("  orrlt r10,r10,#0x20000000 ;@ C\n");\r
     ot("  cmp r1,#0xff\n");\r
     ot("  cmp r1,r12\n");\r
     ot("  orrlt r10,r10,#0x20000000 ;@ C\n");\r
     ot("  cmp r1,#0xff\n");\r
-    ot("  addhi r1,#0xa0\n");\r
+    ot("  addhi r1,r1,#0xa0\n");\r
     ot("  sub r12,r1,r12\n");\r
     ot("  movs r0,r12,lsl #24\n");\r
     ot("  bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II\n");\r
     ot("  sub r12,r1,r12\n");\r
     ot("  movs r0,r12,lsl #24\n");\r
     ot("  bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II\n");\r
index 012e35a..d40d814 100644 (file)
@@ -74,12 +74,12 @@ const char *TestCond(int m68k_cc, int invert)
       break;\r
     case 0x0e: // gt\r
       ot("  eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V\n");\r
       break;\r
     case 0x0e: // gt\r
       ot("  eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V\n");\r
-      ot("  orrs r0,r10,lsl #1\n");\r
+      ot("  orrs r0,r0,r10,lsl #1\n");\r
       cond="pl", icond="mi";\r
       break;\r
     case 0x0f: // le\r
       ot("  eor r0,r10,r10,lsl #3 ;@ le: Z || N != V\n");\r
       cond="pl", icond="mi";\r
       break;\r
     case 0x0f: // le\r
       ot("  eor r0,r10,r10,lsl #3 ;@ le: Z || N != V\n");\r
-      ot("  orrs r0,r10,lsl #1\n");\r
+      ot("  orrs r0,r0,r10,lsl #1\n");\r
       cond="mi", icond="pl";\r
       break;\r
     default:\r
       cond="mi", icond="pl";\r
       break;\r
     default:\r