CMI was translated wrongly; corrected

This commit is contained in:
ceriel
1988-03-14 13:56:33 +00:00
parent 23be652f11
commit bf3cfae610
4 changed files with 45 additions and 17 deletions

View File

@@ -1804,15 +1804,16 @@ lar !defined($1) | | remove(all)
* group 12 : Compare instructions *
****************************************/
cmi $1==2 | source2 SCR_REG |
"sub %[1],%[2]"
setcc(%[2])
erase(%[2]) | %[2] | |
... | SCR_REG source2 |
"sub %[2],%[1]"
"neg %[1]"
setcc(%[1])
erase(%[1]) | %[1] | |
cmi $1==2 | source2 source2 |
allocate(REG = {CONST2,0})
"cmp %[1],%[2]"
"beq 2f"
"bgt 1f"
"inc %[a]"
"br 2f"
"1:\tdec %[a]\n2:"
setcc(%[a])
erase(%[a]) | %[a] | |
ldc cmi zlt highw(1)==0 && loww(1)==0 && $2==4 | source2 source2 |
| %[1] | zlt $3 |
ldc cmi zge highw(1)==0 && loww(1)==0 && $2==4 | source2 source2 |

View File

@@ -1632,11 +1632,16 @@ gen jsr pc,{label, "ilar~"}
****************************************/
pat cmi $1==2
with src2 REG
gen sub %1,%2 yields %2
with REG src2
gen sub %2,%1
neg %1 yields %1
with src2 src2
uses REG = {const2,0}
gen cmp %1,%2
beq {label,2f}
bgt {label,1f}
inc %a
br {label,2f}
1:
dec %a
2: yields %a
pat cmi $1==4
kills ALL