aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cpu/ChangeLog11
-rw-r--r--cpu/xc16x.cpu196
2 files changed, 114 insertions, 93 deletions
diff --git a/cpu/ChangeLog b/cpu/ChangeLog
index 432540f..a627b44 100644
--- a/cpu/ChangeLog
+++ b/cpu/ChangeLog
@@ -1,3 +1,14 @@
+2009-11-14 Doug Evans <dje@sebabeach.org>
+
+ Must use VOID expression in VOID context.
+ * xc16x.cpu (mov4): Fix mode of `sequence'.
+ (mov9, mov10): Ditto.
+ (movbsrr, moveb1, jmprel, jmpseg, jmps): Fix mode of `if'.
+ (callr, callseg, calls, trap, rets, reti): Ditto.
+ (jb, jbc, jnb, jnbs): Fix mode of `if'. Comment out no-op `sll'.
+ (atomic, extr, extp, extp1, extpg1, extpr, extpr1): Fix mode of `cond'.
+ (exts, exts1, extsr, extsr1, prior): Ditto.
+
2009-10-23 Doug Evans <dje@sebabeach.org>
* m32c.opc (opc.h): cgen-types.h -> cgen/basic-modes.h.
diff --git a/cpu/xc16x.cpu b/cpu/xc16x.cpu
index efa687d..1d2057a 100644
--- a/cpu/xc16x.cpu
+++ b/cpu/xc16x.cpu
@@ -1476,7 +1476,7 @@
((PIPE OS) (IDOC MOVE))
(.str insn " [-$"op2 "],$"op1)
(+ opc1 opc2 op1 op2)
- (sequence HI ()
+ (sequence ()
(set op1 (sub op2 (const HI 2)))
(set HI (mem HI op2) op1)
)
@@ -1558,7 +1558,7 @@
((PIPE OS) (IDOC MOVE))
(.str insn " $"op1 ",[$"op2"+$hash$"uimm16"]")
(+ opc1 opc2 op1 op2 uimm16)
- (sequence mode ((mode tmp1))
+ (sequence ((mode tmp1))
(set mode tmp1 (add HI op2 uimm16))
(set mode op1 (mem HI tmp1))
)
@@ -1575,7 +1575,7 @@
((PIPE OS) (IDOC MOVE))
(.str insn " [$"op2"+$hash$"uimm16 "],$"op1)
(+ opc1 opc2 op1 op2 uimm16)
- (sequence mode ((mode tmp1))
+ (sequence ((mode tmp1))
(set mode tmp1 (add HI op1 uimm16))
(set mode (mem HI tmp1) op1)
)
@@ -1722,8 +1722,8 @@
"movbs $sr,$drb"
(+ OP1_13 OP2_0 drb sr)
(sequence ()
- (if QI (and QI drb (const 128))
- (set HI sr (or HI (const HI 65280) drb)))
+ (if (and QI drb (const 128))
+ (set HI sr (or HI (const HI 65280) drb)))
(set HI sr (and HI (const HI 255) drb))
)
()
@@ -1815,8 +1815,8 @@
(.str insn " $"op2 ",$"op1)
(+ opc1 opc2 op1 op2)
(sequence ()
- (if QI (and QI op1 (const 128))
- (set HI op2 (or HI (const HI 65280) op1)))
+ (if (and QI op1 (const 128))
+ (set HI op2 (or HI (const HI 65280) op1)))
(set HI op2 (and HI (const HI 255) op1))
)
()
@@ -1896,13 +1896,13 @@
(sequence ()
(if (eq cond (const 1))
(sequence ()
- (if QI (lt QI rel (const 0))
- (sequence ()
- ;; FIXME: (neg QI rel)
- ;; FIXME: (add QI rel (const 1))
- ;; FIXME: (mul QI rel (const 2))
- (set HI pc (sub HI pc rel))
- ))
+ (if (lt QI rel (const 0))
+ (sequence ()
+ ;; FIXME: (neg QI rel)
+ ;; FIXME: (add QI rel (const 1))
+ ;; FIXME: (mul QI rel (const 2))
+ (set HI pc (sub HI pc rel))
+ ))
(set HI pc (add HI pc (mul QI rel (const 2))))
)
)
@@ -1942,9 +1942,11 @@
"jmps $hash$segm$useg8,$hash$sof$usof16"
(+ OP1_15 OP2_10 seg usof16)
(sequence ()
- (if QI (eq BI sgtdisbit (const BI 0))
- (set QI (reg h-cr 10) useg8))
- (nop)
+ (if (eq BI sgtdisbit (const BI 0))
+ (set QI (reg h-cr 10) useg8))
+ ;; FIXME: previous indentation suggested this nop was the `else'
+ ;; clause of the previous `if'.
+ (nop)
(set HI pc usof16)
)
()
@@ -1956,9 +1958,11 @@
"jmps $seg,$caddr"
(+ OP1_15 OP2_10 seg caddr)
(sequence ()
- (if QI (eq BI sgtdisbit (const BI 0))
- (set QI (reg h-cr 10) seg))
- (nop)
+ (if (eq BI sgtdisbit (const BI 0))
+ (set QI (reg h-cr 10) seg))
+ ;; FIXME: previous indentation suggested this nop was the `else'
+ ;; clause of the previous `if'.
+ (nop)
(set HI pc caddr)
)
()
@@ -1974,14 +1978,14 @@
(sequence ((HI tmp1) (HI tmp2))
(set HI tmp1 genreg)
(set HI tmp2 (const 1))
- (sll HI tmp2 qlobit)
+ ;;(sll HI tmp2 qlobit) - FIXME: missing (set ...)
(set HI tmp2 (and tmp1 tmp2))
- (if (eq tmp2 (const 1))
+ (if (eq tmp2 (const 1)) ;; FIXME: (ne tmp2 0)?
(sequence ()
- (if QI (lt QI relhi (const 0))
- (set HI pc (add HI pc (mul QI relhi (const 2)))))
+ (if (lt QI relhi (const 0))
+ (set HI pc (add HI pc (mul QI relhi (const 2)))))
))
- (set HI pc (add HI pc (const 4)))
+ (set HI pc (add HI pc (const 4))) ;; FIXME: Is this right?
)
()
)
@@ -1995,20 +1999,21 @@
(sequence ((HI tmp1) (HI tmp2))
(set HI tmp1 genreg)
(set HI tmp2 (const 1))
- (sll HI tmp2 qlobit)
+ ;;(sll HI tmp2 qlobit) - FIXME: missing (set ...)
(set HI tmp2 (and tmp1 tmp2))
- (if (eq tmp2 (const 1))
+ (if (eq tmp2 (const 1)) ;; FIXME: (ne tmp2 0)?
(sequence ()
- (if QI (lt QI relhi (const 0))
- (set tmp2 (const 1))
- (set tmp1 genreg)
- ;; FIXME: (sll tmp2 qlobit)
- ;; FIXME: (inv tmp2)
- (set HI tmp1(and tmp1 tmp2))
- (set HI genreg tmp1)
- (set HI pc (add HI pc (mul QI relhi (const 2)))))
+ ;; FIXME: The `else' clause has several statements.
+ (if (lt QI relhi (const 0))
+ (set tmp2 (const 1))
+ (set tmp1 genreg)
+ ;; FIXME: (sll tmp2 qlobit)
+ ;; FIXME: (inv tmp2)
+ (set HI tmp1 (and tmp1 tmp2))
+ (set HI genreg tmp1)
+ (set HI pc (add HI pc (mul QI relhi (const 2)))))
))
- (set HI pc (add HI pc (const 4)))
+ (set HI pc (add HI pc (const 4))) ;; FIXME: Is this right?
)
()
)
@@ -2022,14 +2027,14 @@
(sequence ((HI tmp1) (HI tmp2))
(set HI tmp1 genreg)
(set HI tmp2 (const 1))
- (sll HI tmp2 qlobit)
+ ;;(sll HI tmp2 qlobit) - FIXME: missing (set ...)
(set HI tmp2 (and tmp1 tmp2))
- (if (eq tmp2 (const 0))
+ (if (eq tmp2 (const 0)) ;; FIXME: (ne tmp2 0)?
(sequence ()
- (if QI (lt QI relhi (const 0))
- (set HI pc (add HI pc (mul QI relhi (const 2)))))
+ (if (lt QI relhi (const 0))
+ (set HI pc (add HI pc (mul QI relhi (const 2)))))
))
- (set HI pc (add HI pc (const 4)))
+ (set HI pc (add HI pc (const 4))) ;; FIXME: Is this right?
)
()
)
@@ -2043,19 +2048,20 @@
(sequence ((HI tmp1) (HI tmp2))
(set HI tmp1 genreg)
(set HI tmp2 (const 1))
- (sll HI tmp2 qlobit)
+ ;;(sll HI tmp2 qlobit) - FIXME: missing (set ...)
(set HI tmp2 (and tmp1 tmp2))
(if (eq tmp2 (const 0))
(sequence ()
- (if QI (lt QI relhi (const 0))
- (set tmp2 (const 1))
- (set tmp1 reg8)
- ;; FIXME: (sll tmp2 qbit)
- (set BI tmp1(or tmp1 tmp2))
- (set HI reg8 tmp1)
- (set HI pc (add HI pc (mul QI relhi (const 2)))))
+ ;; FIXME: The `else' clause has several statements.
+ (if (lt QI relhi (const 0))
+ (set tmp2 (const 1))
+ (set tmp1 reg8)
+ ;; FIXME: (sll tmp2 qbit)
+ (set BI tmp1(or tmp1 tmp2))
+ (set HI reg8 tmp1)
+ (set HI pc (add HI pc (mul QI relhi (const 2)))))
))
- (set HI pc (add HI pc (const 4)))
+ (set HI pc (add HI pc (const 4))) ;; FIXME: Is this right?
)
()
)
@@ -2127,13 +2133,13 @@
(set (reg h-cr 9) (sub HI (reg h-cr 9) (const 2)))
(set HI (mem HI (reg h-cr 9)) pc)
(sequence ()
- (if QI (lt QI rel (const 0))
- (sequence ()
- ;; FIXME: (neg QI rel)
- ;; FIXME: (add QI rel (const 1))
- ;; FIXME: (mul QI rel (const 2))
- (set HI pc (sub HI pc rel))
- ))
+ (if (lt QI rel (const 0))
+ (sequence ()
+ ;; FIXME: (neg QI rel)
+ ;; FIXME: (add QI rel (const 1))
+ ;; FIXME: (mul QI rel (const 2))
+ (set HI pc (sub HI pc rel))
+ ))
(set HI pc (add HI pc (mul QI rel (const 2))))
)
)
@@ -2151,9 +2157,11 @@
(set HI (mem HI (reg h-cr 9)) (reg h-cr 10))
(set (reg h-cr 9) (sub HI (reg h-cr 9) (const 2)))
(set HI (mem HI (reg h-cr 9)) pc)
- (if QI (eq BI sgtdisbit (const BI 0))
- (set QI (reg h-cr 10) useg8))
- (nop)
+ (if (eq BI sgtdisbit (const BI 0))
+ (set QI (reg h-cr 10) useg8))
+ ;; FIXME: previous indentation suggested this nop was the `else'
+ ;; clause of the previous `if'.
+ (nop)
(set HI pc usof16)
)
()
@@ -2169,9 +2177,11 @@
(set HI (mem HI (reg h-cr 9)) (reg h-cr 10))
(set (reg h-cr 9) (sub HI (reg h-cr 9) (const 2)))
(set HI (mem HI (reg h-cr 9)) pc)
- (if QI (eq BI sgtdisbit (const BI 0))
- (set QI (reg h-cr 10) seg))
- (nop)
+ (if (eq BI sgtdisbit (const BI 0))
+ (set QI (reg h-cr 10) seg))
+ ;; FIXME: previous indentation suggested this nop was the `else'
+ ;; clause of the previous `if'.
+ (nop)
(set HI pc caddr)
)
()
@@ -2201,11 +2211,11 @@
(sequence ()
(set (reg h-cr 9) (sub HI (reg h-cr 9) (const 2)))
(set HI (mem HI (reg h-cr 9)) (reg h-cr 4))
- (if QI (eq BI sgtdisbit (const BI 0))
- (set (reg h-cr 9) (sub HI (reg h-cr 9) (const 2)))
- (set HI (mem HI (reg h-cr 9)) (reg h-cr 10) )
- )
- (nop)
+ (if (eq BI sgtdisbit (const BI 0))
+ (set (reg h-cr 9) (sub HI (reg h-cr 9) (const 2)))
+ (set HI (mem HI (reg h-cr 9)) (reg h-cr 10) )
+ )
+ (nop)
(set HI (reg h-cr 10) (reg h-cr 11))
(set (reg h-cr 9) (sub HI (reg h-cr 9) (const 2)))
(set HI (mem HI (reg h-cr 9)) pc)
@@ -2235,10 +2245,10 @@
(sequence ()
(set HI pc (mem HI (reg h-cr 9)))
(set (reg h-cr 9) (add HI (reg h-cr 9) (const 2)))
- (if QI (eq BI sgtdisbit (const BI 0))
- (set HI (reg h-cr 10) (mem HI (reg h-cr 9)))
- )
- (nop)
+ (if (eq BI sgtdisbit (const BI 0))
+ (set HI (reg h-cr 10) (mem HI (reg h-cr 9)))
+ )
+ (nop)
(set (reg h-cr 9) (add HI (reg h-cr 9) (const 2)))
)
()
@@ -2267,13 +2277,13 @@
(sequence ()
(set HI pc (mem HI (reg h-cr 9)))
(set (reg h-cr 9) (add HI (reg h-cr 9) (const 2)))
- (if QI (eq BI sgtdisbit (const BI 0))
- (sequence ()
- (set HI (reg h-cr 10) (mem HI (reg h-cr 9)))
- (set (reg h-cr 9) (add HI (reg h-cr 9) (const 2)))
- )
- )
- (nop)
+ (if (eq BI sgtdisbit (const BI 0))
+ (sequence ()
+ (set HI (reg h-cr 10) (mem HI (reg h-cr 9)))
+ (set (reg h-cr 9) (add HI (reg h-cr 9) (const 2)))
+ )
+ )
+ (nop)
(set HI (reg h-cr 4) (mem HI (reg h-cr 9)))
(set (reg h-cr 9) (add HI (reg h-cr 9) (const 2)))
)
@@ -2411,7 +2421,7 @@
(+ OP1_13 OP2_1 (f-op-lbit2 0) uimm2 (f-op-bit4 0))
(sequence ((HI count))
(set HI count uimm2)
- (cond HI
+ (cond
((ne HI count (const 0))
(sequence ()
(set HI pc (add HI pc (const 2)))
@@ -2431,7 +2441,7 @@
(+ OP1_13 OP2_1 (f-op-lbit2 2) uimm2 (f-op-bit4 0))
(sequence ((HI count))
(set HI count uimm2)
- (cond HI
+ (cond
((ne HI count (const 0))
(sequence ()
(set HI pc (add HI pc (const 2)))
@@ -2451,7 +2461,7 @@
(+ OP1_13 OP2_12 (f-op-lbit2 1) uimm2 sr)
(sequence ((HI count))
(set HI count uimm2)
- (cond HI
+ (cond
((ne HI count (const 0))
(sequence ()
(set HI pc (add HI pc (const 2)))
@@ -2471,7 +2481,7 @@
(+ OP1_13 OP2_7 (f-op-lbit2 1) uimm2 (f-op-bit4 0) pagenum (f-qlobit 0) (f-qlobit2 0))
(sequence ((HI count))
(set HI count uimm2)
- (cond HI
+ (cond
((ne HI count (const 0))
(sequence ()
(set HI pc (add HI pc (const 2)))
@@ -2490,7 +2500,7 @@
(+ OP1_13 OP2_7 (f-op-lbit2 1) uimm2 (f-op-bit4 0) upag16 )
(sequence ((HI count))
(set HI count uimm2)
- (cond HI
+ (cond
((ne HI count (const 0))
(sequence ()
(set HI pc (add HI pc (const 2)))
@@ -2510,7 +2520,7 @@
(+ OP1_13 OP2_12 (f-op-lbit2 3) uimm2 sr)
(sequence ((HI count))
(set HI count uimm2)
- (cond HI
+ (cond
((ne HI count (const 0))
(sequence ()
(set HI pc (add HI pc (const 2)))
@@ -2530,7 +2540,7 @@
(+ OP1_13 OP2_7 (f-op-lbit2 3) uimm2 (f-op-bit4 0) pagenum (f-qlobit 0) (f-qlobit2 0))
(sequence ((HI count))
(set HI count uimm2)
- (cond HI
+ (cond
((ne HI count (const 0))
(sequence ()
(set HI pc (add HI pc (const 2)))
@@ -2550,7 +2560,7 @@
(+ OP1_13 OP2_12 (f-op-lbit2 0) uimm2 sr)
(sequence ((HI count))
(set HI count uimm2)
- (cond HI
+ (cond
((ne HI count (const 0))
(sequence ()
(set HI pc (add HI pc (const 2)))
@@ -2570,7 +2580,7 @@
(+ OP1_13 OP2_7 (f-op-lbit2 0) uimm2 (f-op-bit4 0) seghi8 (f-op-bit8 0))
(sequence ((HI count))
(set HI count uimm2)
- (cond HI
+ (cond
((ne HI count (const 0))
(sequence ()
(set HI pc (add HI pc (const 2)))
@@ -2590,7 +2600,7 @@
(+ OP1_13 OP2_12 (f-op-lbit2 2) uimm2 sr)
(sequence ((HI count))
(set HI count uimm2)
- (cond HI
+ (cond
((ne HI count (const 0))
(sequence ()
(set HI pc (add HI pc (const 2)))
@@ -2610,7 +2620,7 @@
(+ OP1_13 OP2_7 (f-op-lbit2 2) uimm2 (f-op-bit4 0) seghi8 (f-op-bit8 0))
(sequence ((HI count))
(set HI count uimm2)
- (cond HI
+ (cond
((ne HI count (const 0))
(sequence ()
(set HI pc (add HI pc (const 2)))
@@ -2632,9 +2642,9 @@
(set HI count (const 0))
(set HI tmp1 sr)
(set HI tmp2 (and tmp1 (const 32768)))
- (cond HI
- ((ne HI tmp2 (const 1)) (ne HI sr (const 0))
- (sll HI tmp1 (const 1))
+ (cond
+ ((ne HI tmp2 (const 1)) ;;(ne HI sr (const 0)) - FIXME: and? or?
+ ;;(sll HI tmp1 (const 1)) - FIXME: missing (set ...)
(set HI tmp2 (and tmp1 (const 32768)))
(set HI count (add HI count (const 1)))
)