diff options
author | Nick Clifton <nickc@redhat.com> | 2003-06-05 16:04:20 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2003-06-05 16:04:20 +0000 |
commit | 36c3ae2457c89d404e9bb81de084da39064ce7cc (patch) | |
tree | 8fc0752722e1a7e4458e19310a686ac2679a9621 | |
parent | e5379b03cf80d6b0bd9a8d7dd03e2220a61956a2 (diff) | |
download | binutils-36c3ae2457c89d404e9bb81de084da39064ce7cc.tar.gz binutils-36c3ae2457c89d404e9bb81de084da39064ce7cc.tar.bz2 binutils-36c3ae2457c89d404e9bb81de084da39064ce7cc.zip |
Add code to handle even-numbered only register operands
-rw-r--r-- | cpu/ChangeLog | 24 | ||||
-rw-r--r-- | cpu/frv.cpu | 461 | ||||
-rw-r--r-- | cpu/frv.opc | 29 | ||||
-rw-r--r-- | opcodes/ChangeLog | 12 | ||||
-rw-r--r-- | opcodes/frv-asm.c | 31 | ||||
-rw-r--r-- | opcodes/frv-desc.c | 86 | ||||
-rw-r--r-- | opcodes/frv-desc.h | 13 | ||||
-rw-r--r-- | opcodes/frv-dis.c | 9 | ||||
-rw-r--r-- | opcodes/frv-ibld.c | 54 | ||||
-rw-r--r-- | opcodes/frv-opc.c | 274 | ||||
-rw-r--r-- | opcodes/frv-opc.h | 7 | ||||
-rw-r--r-- | opcodes/po/opcodes.pot | 60 |
12 files changed, 695 insertions, 365 deletions
diff --git a/cpu/ChangeLog b/cpu/ChangeLog index 36bbc29a86b..b262a8e8f7f 100644 --- a/cpu/ChangeLog +++ b/cpu/ChangeLog @@ -1,3 +1,27 @@ +2003-06-05 Nick Clifton <nickc@redhat.com> + + * frv.cpu (FRintieven): New operand. An even-numbered only + version of the FRinti operand. + (FRintjeven): Likewise for FRintj. + (FRintkeven): Likewise for FRintk. + (mdcutssi, media-dual-word-rotate-r-r, mqsaths, + media-quad-arith-sat-semantics, media-quad-arith-sat, + conditional-media-quad-arith-sat, mdunpackh, + media-quad-multiply-semantics, media-quad-multiply, + conditional-media-quad-multiply, media-quad-complex-i, + media-quad-multiply-acc-semantics, media-quad-multiply-acc, + conditional-media-quad-multiply-acc, munpackh, + media-quad-multiply-cross-acc-semantics, mdpackh, + media-quad-multiply-cross-acc, mbtoh-semantics, + media-quad-cross-multiply-cross-acc-semantics, + media-quad-cross-multiply-cross-acc, mbtoh, mhtob-semantics, + media-quad-cross-multiply-acc-semantics, cmbtoh, + media-quad-cross-multiply-acc, media-quad-complex, mhtob, + media-expand-halfword-to-double-semantics, mexpdhd, cmexpdhd, + cmhtob): Use new operands. + * frv.opc (CGEN_VERBOSE_ASSEMBLER_ERRORS): Define. + (parse_even_register): New function. + 2003-06-03 Nick Clifton <nickc@redhat.com> * frv.cpu (media-dual-word-rotate-r-r): Use a signed 6-bit diff --git a/cpu/frv.cpu b/cpu/frv.cpu index 63677374747..95508507eef 100644 --- a/cpu/frv.cpu +++ b/cpu/frv.cpu @@ -2159,9 +2159,9 @@ (dnmop CPRdoublek "destination register" ((MACH frv)) h-cpr_double f-CPRk DI) ; floating point operands -(dnmop FRinti "source register 1" () h-fr_int f-FRi SI) -(dnmop FRintj "source register 2" () h-fr_int f-FRj SI) -(dnmop FRintk "target register" () h-fr_int f-FRk SI) +(dnmop FRinti "source register 1" () h-fr_int f-FRi SI) +(dnmop FRintj "source register 2" () h-fr_int f-FRj SI) +(dnmop FRintk "target register" () h-fr_int f-FRk SI) (dnmop FRi "source register 1" () h-fr f-FRi SF) (dnmop FRj "source register 2" () h-fr f-FRj SF) (dnmop FRk "destination register" () h-fr f-FRk SF) @@ -2210,6 +2210,36 @@ (dnop label24 "26 bit pc relative address" () h-iaddr f-label24) (define-operand + (name FRintieven) + (comment "(even) source register 1") + (attrs) + (type h-fr_int) + (index f-FRi) + (mode SI) + (handlers (parse "even_register")) +) + +(define-operand + (name FRintjeven) + (comment "(even) source register 2") + (attrs) + (type h-fr_int) + (index f-FRj) + (mode SI) + (handlers (parse "even_register")) +) + +(define-operand + (name FRintkeven) + (comment "(even) target register") + (attrs) + (type h-fr_int) + (index f-FRk) + (mode SI) + (handlers (parse "even_register")) +) + +(define-operand (name d12) (comment "12 bit signed immediate") (attrs) @@ -6594,18 +6624,19 @@ (dni mdcutssi "Media dual cut with signed saturation" ((UNIT FM0) (MACH fr400) (FR400-MAJOR M-2)) - "mdcutssi$pack $ACC40Si,$s6,$FRintk" - (+ pack FRintk OP_78 ACC40Si OPE1_0E s6) + "mdcutssi$pack $ACC40Si,$s6,$FRintkeven" + (+ pack FRintkeven OP_78 ACC40Si OPE1_0E s6) (if (register-unaligned ACC40Si 2) (c-call VOID "@cpu@_media_acc_not_aligned") - (if (register-unaligned FRintk 2) + (if (register-unaligned FRintkeven 2) (c-call VOID "@cpu@_media_register_not_aligned") (sequence () - (set FRintk (c-call SI "@cpu@_media_cut_ss" ACC40Si s6)) - (set (nextreg h-fr_int FRintk 1) + (set FRintkeven (c-call SI "@cpu@_media_cut_ss" ACC40Si s6)) + (set (nextreg h-fr_int FRintkeven 1) (c-call SI "@cpu@_media_cut_ss" (nextreg h-acc40S ACC40Si 1) s6))))) - ((fr400 (unit u-media-4-acc-dual))) + ((fr400 (unit u-media-4-acc-dual + (out FRintk FRintkeven)))) ) ; The (add (xxxx) (mul arg 0)) is a hack to get a reference to arg generated @@ -6660,17 +6691,19 @@ (dni name (comment) ((UNIT FM0) (MACH fr400) (FR400-MAJOR M-2)) - (.str name "$pack $FRinti,$s6,$FRintk") - (+ pack FRintk op FRinti ope s6) - (if (orif (register-unaligned FRinti 2) - (register-unaligned FRintk 2)) + (.str name "$pack $FRintieven,$s6,$FRintkeven") + (+ pack FRintkeven op FRintieven ope s6) + (if (orif (register-unaligned FRintieven 2) + (register-unaligned FRintkeven 2)) (c-call VOID "@cpu@_media_register_not_aligned") (sequence () - (set FRintk (operation FRinti (and s6 #x1f))) - (set (nextreg h-fr_int FRintk 1) - (operation (nextreg h-fr_int FRinti 1) + (set FRintkeven (operation FRintieven (and s6 #x1f))) + (set (nextreg h-fr_int FRintkeven 1) + (operation (nextreg h-fr_int FRintieven 1) (and s6 #x1f))))) - ((fr400 (unit u-media-3-quad))) + ((fr400 (unit u-media-3-quad + (in FRinti FRintieven) + (out FRintk FRintkeven)))) ) ) @@ -6738,22 +6771,25 @@ (dni mqsaths "Media quad saturation signed" ((UNIT FM01) (MACH fr400) (FR400-MAJOR M-1)) - "mqsaths$pack $FRinti,$FRintj,$FRintk" - (+ pack FRintk OP_78 FRinti OPE1_0F FRintj) - (if (orif (register-unaligned FRinti 2) - (orif (register-unaligned FRintj 2) - (register-unaligned FRintk 2))) + "mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven" + (+ pack FRintkeven OP_78 FRintieven OPE1_0F FRintjeven) + (if (orif (register-unaligned FRintieven 2) + (orif (register-unaligned FRintjeven 2) + (register-unaligned FRintkeven 2))) (c-call VOID "@cpu@_media_register_not_aligned") (sequence ((HI argihi) (HI argilo) (HI argjhi) (HI argjlo)) - ; hack to get FRintk referenced as a target for profiling - (set FRintk (c-raw-call SI "frv_ref_SI" FRintk)) - (extract-hilo FRinti 0 FRintj 0 argihi argilo argjhi argjlo) - (saturate argihi argjhi (inv argjhi) (halfword hi FRintk 0)) - (saturate argilo argjlo (inv argjlo) (halfword lo FRintk 0)) - (extract-hilo FRinti 1 FRintj 1 argihi argilo argjhi argjlo) - (saturate argihi argjhi (inv argjhi) (halfword hi FRintk 1)) - (saturate argilo argjlo (inv argjlo) (halfword lo FRintk 1)))) - ((fr400 (unit u-media-1-quad))) + ; hack to get FRintkeven referenced as a target for profiling + (set FRintkeven (c-raw-call SI "frv_ref_SI" FRintkeven)) + (extract-hilo FRintieven 0 FRintjeven 0 argihi argilo argjhi argjlo) + (saturate argihi argjhi (inv argjhi) (halfword hi FRintkeven 0)) + (saturate argilo argjlo (inv argjlo) (halfword lo FRintkeven 0)) + (extract-hilo FRintieven 1 FRintjeven 1 argihi argilo argjhi argjlo) + (saturate argihi argjhi (inv argjhi) (halfword hi FRintkeven 1)) + (saturate argilo argjlo (inv argjlo) (halfword lo FRintkeven 1)))) + ((fr400 (unit u-media-1-quad + (in FRinti FRintieven) + (in FRintj FRintjeven) + (out FRintk FRintkeven)))) ) (define-pmacro (saturate-unsigned arg max result) @@ -6894,29 +6930,29 @@ (conditional-media-dual-arith-sat cmsubhus sub UHI 65535 0 OP_71 OPE4_3 "Conditional Media dual sub unsigned with saturation") (define-pmacro (media-quad-arith-sat-semantics cond operation mode max min) - (if (orif (register-unaligned FRinti 2) - (orif (register-unaligned FRintj 2) - (register-unaligned FRintk 2))) + (if (orif (register-unaligned FRintieven 2) + (orif (register-unaligned FRintjeven 2) + (register-unaligned FRintkeven 2))) (c-call VOID "@cpu@_media_register_not_aligned") (if cond (sequence ((mode argihi) (mode argilo) (mode argjhi) (mode argjlo)) - ; hack to get FRintk referenced as a target for profiling - (set FRintk (c-raw-call SI "frv_ref_SI" FRintk)) - (extract-hilo FRinti 0 FRintj 0 + ; hack to get FRintkeven referenced as a target for profiling + (set FRintkeven (c-raw-call SI "frv_ref_SI" FRintkeven)) + (extract-hilo FRintieven 0 FRintjeven 0 argihi argilo argjhi argjlo) (media-arith-sat-semantics operation argihi argjhi - (halfword hi FRintk 0) mode + (halfword hi FRintkeven 0) mode max min (msr-sie-fri-hi)) (media-arith-sat-semantics operation argilo argjlo - (halfword lo FRintk 0) mode + (halfword lo FRintkeven 0) mode max min (msr-sie-fri-lo)) - (extract-hilo FRinti 1 FRintj 1 + (extract-hilo FRintieven 1 FRintjeven 1 argihi argilo argjhi argjlo) (media-arith-sat-semantics operation argihi argjhi - (halfword hi FRintk 1) mode + (halfword hi FRintkeven 1) mode max min (msr-sie-fri-1-hi)) (media-arith-sat-semantics operation argilo argjlo - (halfword lo FRintk 1) mode + (halfword lo FRintkeven 1) mode max min (msr-sie-fri-1-lo))))) ) @@ -6924,11 +6960,17 @@ (dni name (comment) ((UNIT FM01) (FR500-MAJOR M-1) (FR400-MAJOR M-2)) - (.str name "$pack $FRinti,$FRintj,$FRintk") - (+ pack FRintk op FRinti ope FRintj) + (.str name "$pack $FRintieven,$FRintjeven,$FRintkeven") + (+ pack FRintkeven op FRintieven ope FRintjeven) (media-quad-arith-sat-semantics 1 operation mode max min) - ((fr400 (unit u-media-1-quad)) - (fr500 (unit u-media-quad-arith))) + ((fr400 (unit u-media-1-quad + (in FRinti FRintieven) + (in FRintj FRintjeven) + (out FRintk Frintkeven))) + (fr500 (unit u-media-quad-arith + (in FRinti FRintieven) + (in FRintj FRintjeven) + (out FRintk Frintkeven)))) ) ) @@ -6943,12 +6985,18 @@ (dni name (comment) ((UNIT FM01) (FR500-MAJOR M-1) (FR400-MAJOR M-2) CONDITIONAL) - (.str name "$pack $FRinti,$FRintj,$FRintk,$CCi,$cond") - (+ pack FRintk op FRinti CCi cond ope FRintj) + (.str name "$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond") + (+ pack FRintkeven op FRintieven CCi cond ope FRintjeven) (media-quad-arith-sat-semantics (eq CCi (or cond 2)) operation mode max min) - ((fr400 (unit u-media-1-quad)) - (fr500 (unit u-media-quad-arith))) + ((fr400 (unit u-media-1-quad + (in FRinti FRintieven) + (in FRintj FRintjeven) + (out FRintk Frintkeven))) + (fr500 (unit u-media-quad-arith + (in FRinti FRintieven) + (in FRintj FRintjeven) + (out FRintk Frintkeven)))) ) ) @@ -7131,18 +7179,18 @@ (define-pmacro (media-quad-multiply-semantics cond mode conv rhs1 rhs2) (if (register-unaligned ACC40Sk 4) (c-call VOID "@cpu@_media_acc_not_aligned") - (if (orif (register-unaligned FRinti 2) - (register-unaligned FRintj 2)) + (if (orif (register-unaligned FRintieven 2) + (register-unaligned FRintjeven 2)) (c-call VOID "@cpu@_media_register_not_aligned") (if cond (sequence ((mode argihi) (mode argilo) (mode argjhi) (mode argjlo)) - (extract-hilo FRinti 0 FRintj 0 + (extract-hilo FRintieven 0 FRintjeven 0 argihi argilo argjhi argjlo) (media-multiply-semantics conv argihi rhs1 ACC40Sk) (media-multiply-semantics conv argilo rhs2 (nextreg h-acc40S ACC40Sk 1)) - (extract-hilo FRinti 1 FRintj 1 + (extract-hilo FRintieven 1 FRintjeven 1 argihi argilo argjhi argjlo) (media-multiply-semantics conv argihi rhs1 (nextreg h-acc40S ACC40Sk 2)) @@ -7154,11 +7202,15 @@ (dni name (comment) ((UNIT FM01) (FR500-MAJOR M-4) (FR400-MAJOR M-2) PRESERVE-OVF) - (.str name "$pack $FRinti,$FRintj,$ACC40Sk") - (+ pack ACC40Sk op FRinti ope FRintj) + (.str name "$pack $FRintieven,$FRintjeven,$ACC40Sk") + (+ pack ACC40Sk op FRintieven ope FRintjeven) (media-quad-multiply-semantics 1 mode conv rhs1 rhs2) - ((fr400 (unit u-media-2-quad)) - (fr500 (unit u-media-quad-mul))) + ((fr400 (unit u-media-2-quad + (in FRinti FRintieven) + (in FRintj FRintjeven))) + (fr500 (unit u-media-quad-mul + (in FRinti FRintieven) + (in FRintj FRintjeven)))) ) ) @@ -7174,11 +7226,15 @@ (comment) ((UNIT FM01) (FR500-MAJOR M-4) (FR400-MAJOR M-2) PRESERVE-OVF CONDITIONAL) - (.str name "$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond") - (+ pack ACC40Sk op FRinti CCi cond ope FRintj) + (.str name "$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond") + (+ pack ACC40Sk op FRintieven CCi cond ope FRintjeven) (media-quad-multiply-semantics (eq CCi (or cond 2)) mode conv rhs1 rhs2) - ((fr400 (unit u-media-2-quad)) - (fr500 (unit u-media-quad-mul))) + ((fr400 (unit u-media-2-quad + (in FRinti FRintieven) + (in FRintj FRintjeven))) + (fr500 (unit u-media-quad-mul + (in FRinti FRintieven) + (in FRintj FRintjeven)))) ) ) @@ -7269,13 +7325,13 @@ cond mode conv addop rhw res max min) (if (register-unaligned res 4) (c-call VOID "@cpu@_media_acc_not_aligned") - (if (orif (register-unaligned FRinti 2) - (register-unaligned FRintj 2)) + (if (orif (register-unaligned FRintieven 2) + (register-unaligned FRintjeven 2)) (c-call VOID "@cpu@_media_register_not_aligned") (if cond (sequence ((mode argihi) (mode argilo) (mode argjhi) (mode argjlo)) - (extract-hilo FRinti 0 FRintj 0 + (extract-hilo FRintieven 0 FRintjeven 0 argihi argilo argjhi argjlo) (media-multiply-acc-semantics conv argihi addop argjhi res @@ -7283,7 +7339,7 @@ (media-multiply-acc-semantics conv argilo addop argjlo (nextreg rhw res 1) max min (msr-sie-acci-1)) - (extract-hilo FRinti 1 FRintj 1 + (extract-hilo FRintieven 1 FRintjeven 1 argihi argilo argjhi argjlo) (media-multiply-acc-semantics conv argihi addop argjhi (nextreg rhw res 2) @@ -7299,11 +7355,15 @@ (dni name (comment) ((UNIT FM01) (FR500-MAJOR M-4) (FR400-MAJOR M-2)) - (.str name "$pack $FRinti,$FRintj,$" res) - (+ pack res op FRinti ope FRintj) + (.str name "$pack $FRintieven,$FRintjeven,$" res) + (+ pack res op FRintieven ope FRintjeven) (media-quad-multiply-acc-semantics 1 mode conv addop rhw res max min) - ((fr400 (unit u-media-2-quad)) - (fr500 (unit u-media-quad-mul))) + ((fr400 (unit u-media-2-quad + (in FRinti FRintieven) + (in FRintj FRintjeven))) + (fr500 (unit u-media-quad-mul + (in FRinti FRintieven) + (in FRintj FRintjeven)))) ) ) @@ -7322,12 +7382,16 @@ (dni name (comment) ((UNIT FM01) (FR500-MAJOR M-4) (FR400-MAJOR M-2) CONDITIONAL) - (.str name "$pack $FRinti,$FRintj,$" res ",$CCi,$cond") - (+ pack res op FRinti CCi cond ope FRintj) + (.str name "$pack $FRintieven,$FRintjeven,$" res ",$CCi,$cond") + (+ pack res op FRintieven CCi cond ope FRintjeven) (media-quad-multiply-acc-semantics (eq CCi (or cond 2)) mode conv addop rhw res max min) - ((fr400 (unit u-media-2-quad)) - (fr500 (unit u-media-quad-mul))) + ((fr400 (unit u-media-2-quad + (in FRinti FRintieven) + (in FRintj FRintjeven))) + (fr500 (unit u-media-quad-mul + (in FRinti FRintieven) + (in FRintj FRintjeven)))) ) ) @@ -7345,13 +7409,13 @@ cond mode conv addop rhw res max min) (if (register-unaligned res 4) (c-call VOID "@cpu@_media_acc_not_aligned") - (if (orif (register-unaligned FRinti 2) - (register-unaligned FRintj 2)) + (if (orif (register-unaligned FRintieven 2) + (register-unaligned FRintjeven 2)) (c-call VOID "@cpu@_media_register_not_aligned") (if cond (sequence ((mode argihi) (mode argilo) (mode argjhi) (mode argjlo)) - (extract-hilo FRinti 0 FRintj 0 + (extract-hilo FRintieven 0 FRintjeven 0 argihi argilo argjhi argjlo) (media-multiply-acc-semantics conv argihi addop argjhi (nextreg rhw res 2) @@ -7359,7 +7423,7 @@ (media-multiply-acc-semantics conv argilo addop argjlo (nextreg rhw res 3) max min (msr-sie-acci-3)) - (extract-hilo FRinti 1 FRintj 1 + (extract-hilo FRintieven 1 FRintjeven 1 argihi argilo argjhi argjlo) (media-multiply-acc-semantics conv argihi addop argjhi res @@ -7375,11 +7439,13 @@ (dni name (comment) ((UNIT FM0) (MACH fr400) (FR400-MAJOR M-2)) - (.str name "$pack $FRinti,$FRintj,$" res) - (+ pack res op FRinti ope FRintj) + (.str name "$pack $FRintieven,$FRintjeven,$" res) + (+ pack res op FRintieven ope FRintjeven) (media-quad-multiply-cross-acc-semantics 1 mode conv addop rhw res max min) - ((fr400 (unit u-media-2-quad))) + ((fr400 (unit u-media-2-quad + (in FRinti FRintieven) + (in FRintj FRintjeven)))) ) ) @@ -7392,13 +7458,13 @@ cond mode conv addop rhw res max min) (if (register-unaligned res 4) (c-call VOID "@cpu@_media_acc_not_aligned") - (if (orif (register-unaligned FRinti 2) - (register-unaligned FRintj 2)) + (if (orif (register-unaligned FRintieven 2) + (register-unaligned FRintjeven 2)) (c-call VOID "@cpu@_media_register_not_aligned") (if cond (sequence ((mode argihi) (mode argilo) (mode argjhi) (mode argjlo)) - (extract-hilo FRinti 0 FRintj 0 + (extract-hilo FRintieven 0 FRintjeven 0 argihi argilo argjhi argjlo) (media-multiply-acc-semantics conv argihi addop argjlo (nextreg rhw res 2) @@ -7406,7 +7472,7 @@ (media-multiply-acc-semantics conv argilo addop argjhi (nextreg rhw res 3) max min (msr-sie-acci-3)) - (extract-hilo FRinti 1 FRintj 1 + (extract-hilo FRintieven 1 FRintjeven 1 argihi argilo argjhi argjlo) (media-multiply-acc-semantics conv argihi addop argjlo res @@ -7422,11 +7488,13 @@ (dni name (comment) ((UNIT FM0) (MACH fr400) (FR400-MAJOR M-2)) - (.str name "$pack $FRinti,$FRintj,$" res) - (+ pack res op FRinti ope FRintj) + (.str name "$pack $FRintieven,$FRintjeven,$" res) + (+ pack res op FRintieven ope FRintjeven) (media-quad-cross-multiply-cross-acc-semantics 1 mode conv addop rhw res max min) - ((fr400 (unit u-media-2-quad))) + ((fr400 (unit u-media-2-quad + (in FRinti FRintieven) + (in FRintj FRintjeven)))) ) ) @@ -7439,13 +7507,13 @@ cond mode conv addop rhw res max min) (if (register-unaligned res 4) (c-call VOID "@cpu@_media_acc_not_aligned") - (if (orif (register-unaligned FRinti 2) - (register-unaligned FRintj 2)) + (if (orif (register-unaligned FRintieven 2) + (register-unaligned FRintjeven 2)) (c-call VOID "@cpu@_media_register_not_aligned") (if cond (sequence ((mode argihi) (mode argilo) (mode argjhi) (mode argjlo)) - (extract-hilo FRinti 0 FRintj 0 + (extract-hilo FRintieven 0 FRintjeven 0 argihi argilo argjhi argjlo) (media-multiply-acc-semantics conv argihi addop argjlo res @@ -7453,7 +7521,7 @@ (media-multiply-acc-semantics conv argilo addop argjhi (nextreg rhw res 1) max min (msr-sie-acci-1)) - (extract-hilo FRinti 1 FRintj 1 + (extract-hilo FRintieven 1 FRintjeven 1 argihi argilo argjhi argjlo) (media-multiply-acc-semantics conv argihi addop argjlo (nextreg rhw res 2) @@ -7469,11 +7537,13 @@ (dni name (comment) ((UNIT FM0) (MACH fr400) (FR400-MAJOR M-2)) - (.str name "$pack $FRinti,$FRintj,$" res) - (+ pack res op FRinti ope FRintj) + (.str name "$pack $FRintieven,$FRintjeven,$" res) + (+ pack res op FRintieven ope FRintjeven) (media-quad-cross-multiply-acc-semantics 1 mode conv addop rhw res max min) - ((fr400 (unit u-media-2-quad))) + ((fr400 (unit u-media-2-quad + (in FRinti FRintieven) + (in FRintj FRintjeven)))) ) ) @@ -7613,27 +7683,31 @@ (dni name (comment) ((UNIT FM01) (FR500-MAJOR M-4) (FR400-MAJOR M-2)) - (.str name "$pack $FRinti,$FRintj,$ACC40Sk") - (+ pack ACC40Sk op FRinti ope FRintj) + (.str name "$pack $FRintieven,$FRintjeven,$ACC40Sk") + (+ pack ACC40Sk op FRintieven ope FRintjeven) (if (register-unaligned ACC40Sk 2) (c-call VOID "@cpu@_media_acc_not_aligned") - (if (orif (register-unaligned FRinti 2) - (register-unaligned FRintj 2)) + (if (orif (register-unaligned FRintieven 2) + (register-unaligned FRintjeven 2)) (c-call VOID "@cpu@_media_register_not_aligned") (sequence ((mode argihi) (mode argilo) (mode argjhi) (mode argjlo)) - (extract-hilo FRinti 0 FRintj 0 + (extract-hilo FRintieven 0 FRintjeven 0 argihi argilo argjhi argjlo) (media-complex-semantics conv argihi rhs1 argilo rhs2 ACC40Sk max min (msr-sie-acci)) - (extract-hilo FRinti 1 FRintj 1 + (extract-hilo FRintieven 1 FRintjeven 1 argihi argilo argjhi argjlo) (media-complex-semantics conv argihi rhs1 argilo rhs2 (nextreg h-acc40S ACC40Sk 1) max min (msr-sie-acci-1))))) - ((fr400 (unit u-media-2-quad)) - (fr500 (unit u-media-quad-complex))) + ((fr400 (unit u-media-2-quad + (in FRinti FRintieven) + (in FRintj FRintjeven))) + (fr500 (unit u-media-quad-complex + (in FRinti FRintieven) + (in FRintj FRintjeven)))) ) ) @@ -7642,27 +7716,31 @@ (dni name (comment) ((UNIT FM01) (FR500-MAJOR M-4) (FR400-MAJOR M-2)) - (.str name "$pack $FRinti,$FRintj,$ACC40Sk") - (+ pack ACC40Sk op FRinti ope FRintj) + (.str name "$pack $FRintieven,$FRintjeven,$ACC40Sk") + (+ pack ACC40Sk op FRintieven ope FRintjeven) (if (register-unaligned ACC40Sk 2) (c-call VOID "@cpu@_media_acc_not_aligned") - (if (orif (register-unaligned FRinti 2) - (register-unaligned FRintj 2)) + (if (orif (register-unaligned FRintieven 2) + (register-unaligned FRintjeven 2)) (c-call VOID "@cpu@_media_register_not_aligned") (sequence ((mode argihi) (mode argilo) (mode argjhi) (mode argjlo)) - (extract-hilo FRinti 0 FRintj 0 + (extract-hilo FRintieven 0 FRintjeven 0 argihi argilo argjhi argjlo) (media-complex-semantics-i conv argihi rhs1 argilo rhs2 ACC40Sk max min (msr-sie-acci)) - (extract-hilo FRinti 1 FRintj 1 + (extract-hilo FRintieven 1 FRintjeven 1 argihi argilo argjhi argjlo) (media-complex-semantics-i conv argihi rhs1 argilo rhs2 (nextreg h-acc40S ACC40Sk 1) max min (msr-sie-acci-1))))) - ((fr400 (unit u-media-2-quad)) - (fr500 (unit u-media-quad-complex))) + ((fr400 (unit u-media-2-quad + (in FRinti FRintieven) + (in FRintj FRintjeven))) + (fr500 (unit u-media-quad-complex + (in FRinti FRintieven) + (in FRintj FRintjeven)))) ) ) @@ -7723,39 +7801,43 @@ ) (define-pmacro (media-expand-halfword-to-double-semantics cond) - (if (register-unaligned FRintk 2) + (if (register-unaligned FRintkeven 2) (c-call VOID "@cpu@_media_register_not_aligned") (if cond (sequence ((UHI tmp)) - ; a hack to get FRintk referenced for profiling - (set FRintk (c-raw-call SI "frv_ref_SI" FRintk)) + ; a hack to get FRintkeven referenced for profiling + (set FRintkeven (c-raw-call SI "frv_ref_SI" FRintkeven)) (if (and u6 1) (set tmp (halfword lo FRinti 0)) (set tmp (halfword hi FRinti 0))) - (set (halfword hi FRintk 0) tmp) - (set (halfword lo FRintk 0) tmp) - (set (halfword hi FRintk 1) tmp) - (set (halfword lo FRintk 1) tmp)))) + (set (halfword hi FRintkeven 0) tmp) + (set (halfword lo FRintkeven 0) tmp) + (set (halfword hi FRintkeven 1) tmp) + (set (halfword lo FRintkeven 1) tmp)))) ) (dni mexpdhd "Media expand halfword to double" ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-2)) - "mexpdhd$pack $FRinti,$u6,$FRintk" - (+ pack FRintk OP_7B FRinti OPE1_33 u6) + "mexpdhd$pack $FRinti,$u6,$FRintkeven" + (+ pack FRintkeven OP_7B FRinti OPE1_33 u6) (media-expand-halfword-to-double-semantics 1) - ((fr400 (unit u-media-dual-expand)) - (fr500 (unit u-media-dual-expand))) + ((fr400 (unit u-media-dual-expand + (out FRintk FRintkeven))) + (fr500 (unit u-media-dual-expand + (out FRintk FRintkeven)))) ) (dni cmexpdhd "Conditional media expand halfword to double" ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-2) CONDITIONAL) - "cmexpdhd$pack $FRinti,$u6,$FRintk,$CCi,$cond" - (+ pack FRintk OP_76 FRinti CCi cond OPE4_3 u6) + "cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond" + (+ pack FRintkeven OP_76 FRinti CCi cond OPE4_3 u6) (media-expand-halfword-to-double-semantics (eq CCi (or cond 2))) - ((fr400 (unit u-media-dual-expand)) - (fr500 (unit u-media-dual-expand))) + ((fr400 (unit u-media-dual-expand + (out FRintk FRintkeven))) + (fr500 (unit u-media-dual-expand + (out FRintk FRintkeven)))) ) (dni mpackh @@ -7771,21 +7853,27 @@ (dni mdpackh "Media dual pack" ((UNIT FM01) (FR500-MAJOR M-5) (FR400-MAJOR M-2)) - "mdpackh$pack $FRinti,$FRintj,$FRintk" - (+ pack FRintk OP_7B FRinti OPE1_36 FRintj) - (if (orif (register-unaligned FRinti 2) - (orif (register-unaligned FRintj 2) - (register-unaligned FRintk 2))) + "mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven" + (+ pack FRintkeven OP_7B FRintieven OPE1_36 FRintjeven) + (if (orif (register-unaligned FRintieven 2) + (orif (register-unaligned FRintjeven 2) + (register-unaligned FRintkeven 2))) (c-call VOID "@cpu@_media_register_not_aligned") (sequence () ; hack to get these referenced for profiling - (set FRinti (c-raw-call SI "frv_ref_SI" FRinti)) - (set FRintj (c-raw-call SI "frv_ref_SI" FRintj)) - (set FRintk (c-raw-call SI "frv_ref_SI" FRintk)) - (media-pack FRinti FRintj FRintk 0) - (media-pack FRinti FRintj FRintk 1))) - ((fr400 (unit u-media-3-quad)) - (fr500 (unit u-media-quad-arith))) + (set FRintieven (c-raw-call SI "frv_ref_SI" FRintieven)) + (set FRintjeven (c-raw-call SI "frv_ref_SI" FRintjeven)) + (set FRintkeven (c-raw-call SI "frv_ref_SI" FRintkeven)) + (media-pack FRintieven FRintjeven FRintkeven 0) + (media-pack FRintieven FRintjeven FRintkeven 1))) + ((fr400 (unit u-media-3-quad + (in FRinti FRintieven) + (in FRintj FRintjeven) + (out FRintk FRintkeven))) + (fr500 (unit u-media-quad-arith + (in FRinti FRintieven) + (in FRintj FRintjeven) + (out FRintk FRintkeven)))) ) (define-pmacro (media-unpack src soff targ toff) @@ -7799,110 +7887,121 @@ (dni munpackh "Media halfword unpack" ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-2)) - "munpackh$pack $FRinti,$FRintk" - (+ pack FRintk OP_7B FRinti OPE1_35 (FRj-null)) - (if (register-unaligned FRintk 2) + "munpackh$pack $FRinti,$FRintkeven" + (+ pack FRintkeven OP_7B FRinti OPE1_35 (FRj-null)) + (if (register-unaligned FRintkeven 2) (c-call VOID "@cpu@_media_register_not_aligned") (sequence () ; hack to get these referenced for profiling (set FRinti (c-raw-call SI "frv_ref_SI" FRinti)) - (set FRintk (c-raw-call SI "frv_ref_SI" FRintk)) - (media-unpack FRinti 0 FRintk 0))) - ((fr400 (unit u-media-dual-expand)) - (fr500 (unit u-media-dual-expand))) + (set FRintkeven (c-raw-call SI "frv_ref_SI" FRintkeven)) + (media-unpack FRinti 0 FRintkeven 0))) + ((fr400 (unit u-media-dual-expand + (out FRintk FRintkeven))) + (fr500 (unit u-media-dual-expand + (out FRintk FRintkeven)))) ) (dni mdunpackh "Media dual unpack" ((UNIT FM01) (FR500-MAJOR M-7) (MACH simple,tomcat,frv)) - "mdunpackh$pack $FRinti,$FRintk" - (+ pack FRintk OP_7B FRinti OPE1_37 (FRj-null)) - (if (orif (register-unaligned FRinti 2) (register-unaligned FRintk 4)) + "mdunpackh$pack $FRintieven,$FRintk" + (+ pack FRintk OP_7B FRintieven OPE1_37 (FRj-null)) + (if (orif (register-unaligned FRintieven 2) (register-unaligned FRintk 4)) (c-call VOID "@cpu@_media_register_not_aligned") (sequence () ; hack to get these referenced for profiling - (set FRinti (c-raw-call SI "frv_ref_SI" FRinti)) + (set FRintieven (c-raw-call SI "frv_ref_SI" FRintieven)) (set FRintk (c-raw-call SI "frv_ref_SI" FRintk)) - (media-unpack FRinti 0 FRintk 0) - (media-unpack FRinti 1 FRintk 2))) - ((fr500 (unit u-media-dual-unpack))) + (media-unpack FRintieven 0 FRintk 0) + (media-unpack FRintieven 1 FRintk 2))) + ((fr500 (unit u-media-dual-unpack + (in FRinti FRintieven)))) ) (define-pmacro (ubyte num arg offset) (reg (.sym h-fr_ num) (add (index-of arg) offset))) (define-pmacro (mbtoh-semantics cond) - (if (register-unaligned FRintk 2) + (if (register-unaligned FRintkeven 2) (c-call VOID "@cpu@_media_register_not_aligned") (if cond (sequence () - (set (halfword hi FRintk 0) (ubyte 3 FRintj 0)) - (set (halfword lo FRintk 0) (ubyte 2 FRintj 0)) - (set (halfword hi FRintk 1) (ubyte 1 FRintj 0)) - (set (halfword lo FRintk 1) (ubyte 0 FRintj 0))))) + (set (halfword hi FRintkeven 0) (ubyte 3 FRintj 0)) + (set (halfword lo FRintkeven 0) (ubyte 2 FRintj 0)) + (set (halfword hi FRintkeven 1) (ubyte 1 FRintj 0)) + (set (halfword lo FRintkeven 1) (ubyte 0 FRintj 0))))) ) (dni mbtoh "Media convert byte to halfword" ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-2)) - "mbtoh$pack $FRintj,$FRintk" - (+ pack FRintk OP_7B (FRi-null) OPE1_38 FRintj) + "mbtoh$pack $FRintj,$FRintkeven" + (+ pack FRintkeven OP_7B (FRi-null) OPE1_38 FRintj) (sequence () ; hack to get these referenced for profiling (set FRintj (c-raw-call SI "frv_ref_SI" FRintj)) - (set FRintk (c-raw-call SI "frv_ref_SI" FRintk)) + (set FRintkeven (c-raw-call SI "frv_ref_SI" FRintkeven)) (mbtoh-semantics 1)) - ((fr400 (unit u-media-dual-expand)) - (fr500 (unit u-media-dual-btoh))) + ((fr400 (unit u-media-dual-expand + (in FRinti FRintieven))) + (fr500 (unit u-media-dual-btoh + (in FRinti FRintieven)))) ) (dni cmbtoh "Conditional media convert byte to halfword" ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-2) CONDITIONAL) - "cmbtoh$pack $FRintj,$FRintk,$CCi,$cond" - (+ pack FRintk OP_77 (FRi-null) CCi cond OPE4_0 FRintj) + "cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond" + (+ pack FRintkeven OP_77 (FRi-null) CCi cond OPE4_0 FRintj) (mbtoh-semantics (eq CCi (or cond 2))) - ((fr400 (unit u-media-dual-expand)) - (fr500 (unit u-media-dual-btoh))) + ((fr400 (unit u-media-dual-expand + (out FRintk FRintkeven))) + (fr500 (unit u-media-dual-btoh + (out FRintk FRintkeven)))) ) (define-pmacro (mhtob-semantics cond) - (if (register-unaligned FRintj 2) + (if (register-unaligned FRintjeven 2) (c-call VOID "@cpu@_media_register_not_aligned") (if cond (sequence () - (set (ubyte 3 FRintk 0) (halfword hi FRintj 0)) - (set (ubyte 2 FRintk 0) (halfword lo FRintj 0)) - (set (ubyte 1 FRintk 0) (halfword hi FRintj 1)) - (set (ubyte 0 FRintk 0) (halfword lo FRintj 1))))) + (set (ubyte 3 FRintk 0) (halfword hi FRintjeven 0)) + (set (ubyte 2 FRintk 0) (halfword lo FRintjeven 0)) + (set (ubyte 1 FRintk 0) (halfword hi FRintjeven 1)) + (set (ubyte 0 FRintk 0) (halfword lo FRintjeven 1))))) ) (dni mhtob "Media convert halfword to byte" ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-2)) - "mhtob$pack $FRintj,$FRintk" - (+ pack FRintk OP_7B (FRi-null) OPE1_39 FRintj) + "mhtob$pack $FRintjeven,$FRintk" + (+ pack FRintk OP_7B (FRi-null) OPE1_39 FRintjeven) (sequence () ; hack to get these referenced for profiling - (set FRintj (c-raw-call SI "frv_ref_SI" FRintj)) + (set FRintjeven (c-raw-call SI "frv_ref_SI" FRintjeven)) (set FRintk (c-raw-call SI "frv_ref_SI" FRintk)) (mhtob-semantics 1)) - ((fr400 (unit u-media-dual-htob)) - (fr500 (unit u-media-dual-htob))) + ((fr400 (unit u-media-dual-htob + (in FRintj FRintjeven))) + (fr500 (unit u-media-dual-htob + (in FRintj FRintjeven)))) ) (dni cmhtob "Conditional media convert halfword to byte" ((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-2) CONDITIONAL) - "cmhtob$pack $FRintj,$FRintk,$CCi,$cond" - (+ pack FRintk OP_77 (FRi-null) CCi cond OPE4_1 FRintj) + "cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond" + (+ pack FRintk OP_77 (FRi-null) CCi cond OPE4_1 FRintjeven) (sequence () ; hack to get these referenced for profiling - (set FRintj (c-raw-call SI "frv_ref_SI" FRintj)) + (set FRintjeven (c-raw-call SI "frv_ref_SI" FRintjeven)) (set FRintk (c-raw-call SI "frv_ref_SI" FRintk)) (mhtob-semantics (eq CCi (or cond 2)))) - ((fr400 (unit u-media-dual-htob)) - (fr500 (unit u-media-dual-htob))) + ((fr400 (unit u-media-dual-htob + (in FRintj FRintjeven))) + (fr500 (unit u-media-dual-htob + (in FRintj FRintjeven)))) ) (define-pmacro (mbtohe-semantics cond) diff --git a/cpu/frv.opc b/cpu/frv.opc index c708a60b2ed..fb9434e3460 100644 --- a/cpu/frv.opc +++ b/cpu/frv.opc @@ -40,11 +40,14 @@ /* -- opc.h */ -#undef CGEN_DIS_HASH_SIZE +#undef CGEN_DIS_HASH_SIZE #define CGEN_DIS_HASH_SIZE 128 -#undef CGEN_DIS_HASH +#undef CGEN_DIS_HASH #define CGEN_DIS_HASH(buffer, value) (((value) >> 18) & 127) +/* Allows reason codes to be output when assembler errors occur. */ +#define CGEN_VERBOSE_ASSEMBLER_ERRORS + /* Vliw support. */ #define FRV_VLIW_SIZE 4 /* fr500 has largest vliw size of 4. */ typedef CGEN_ATTR_VALUE_TYPE VLIW_COMBO[FRV_VLIW_SIZE]; @@ -601,6 +604,8 @@ static const char * parse_s12 PARAMS ((CGEN_CPU_DESC, const char **, int, long *)); static const char * parse_u12 PARAMS ((CGEN_CPU_DESC, const char **, int, long *)); +static const char * parse_even_register + PARAMS ((CGEN_CPU_DESC, const char **, CGEN_KEYWORD *, long *)); static const char * parse_ulo16 (cd, strp, opindex, valuep) @@ -883,6 +888,26 @@ parse_u12 (cd, strp, opindex, valuep) } } +static const char * +parse_even_register (cd, strP, tableP, valueP) + CGEN_CPU_DESC cd; + const char ** strP; + CGEN_KEYWORD * tableP; + long * valueP; +{ + const char * errmsg; + const char * saved_star_strP = * strP; + + errmsg = cgen_parse_keyword (cd, strP, tableP, valueP); + + if (errmsg == NULL && ((* valueP) & 1)) + { + errmsg = _("register number must be even"); + * strP = saved_star_strP; + } + + return errmsg; +} /* -- */ /* -- dis.c */ diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 5f866e40150..820027807a3 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,6 +1,18 @@ +2003-06-03 Nick Clifton <nickc@redhat.com> + + * frv-desc.c: Regenerate. + * frv-opc.c: Regenerate. + * frv-asm.c: Regenerate. + * frv-desc.h: Regenerate. + * frv-dis.c: Regenerate. + * frv-ibld.c: Regenerate. + * frv-opc.h: Regenerate. + * po/opcodes.pot: Regenerate. + 2003-06-03 Michael Snyder <msnyder@redhat.com> and Bernd Schmidt <bernds@redhat.com> and Alexandre Oliva <aoliva@redhat.com> + * disassemble.c (disassembler): Add support for h8300sx. * h8300-dis.c: Ditto. diff --git a/opcodes/frv-asm.c b/opcodes/frv-asm.c index 538ed2dc8f1..b4647b1ed4d 100644 --- a/opcodes/frv-asm.c +++ b/opcodes/frv-asm.c @@ -64,6 +64,8 @@ static const char * parse_s12 PARAMS ((CGEN_CPU_DESC, const char **, int, long *)); static const char * parse_u12 PARAMS ((CGEN_CPU_DESC, const char **, int, long *)); +static const char * parse_even_register + PARAMS ((CGEN_CPU_DESC, const char **, CGEN_KEYWORD *, long *)); static const char * parse_ulo16 (cd, strp, opindex, valuep) @@ -346,6 +348,26 @@ parse_u12 (cd, strp, opindex, valuep) } } +static const char * +parse_even_register (cd, strP, tableP, valueP) + CGEN_CPU_DESC cd; + const char ** strP; + CGEN_KEYWORD * tableP; + long * valueP; +{ + const char * errmsg; + const char * saved_star_strP = * strP; + + errmsg = cgen_parse_keyword (cd, strP, tableP, valueP); + + if (errmsg == NULL && ((* valueP) & 1)) + { + errmsg = _("register number must be even"); + * strP = saved_star_strP; + } + + return errmsg; +} /* -- */ const char * frv_cgen_parse_operand @@ -455,12 +477,21 @@ frv_cgen_parse_operand (cd, opindex, strp, fields) case FRV_OPERAND_FRINTI : errmsg = cgen_parse_keyword (cd, strp, & frv_cgen_opval_fr_names, & fields->f_FRi); break; + case FRV_OPERAND_FRINTIEVEN : + errmsg = parse_even_register (cd, strp, & frv_cgen_opval_fr_names, & fields->f_FRi); + break; case FRV_OPERAND_FRINTJ : errmsg = cgen_parse_keyword (cd, strp, & frv_cgen_opval_fr_names, & fields->f_FRj); break; + case FRV_OPERAND_FRINTJEVEN : + errmsg = parse_even_register (cd, strp, & frv_cgen_opval_fr_names, & fields->f_FRj); + break; case FRV_OPERAND_FRINTK : errmsg = cgen_parse_keyword (cd, strp, & frv_cgen_opval_fr_names, & fields->f_FRk); break; + case FRV_OPERAND_FRINTKEVEN : + errmsg = parse_even_register (cd, strp, & frv_cgen_opval_fr_names, & fields->f_FRk); + break; case FRV_OPERAND_FRJ : errmsg = cgen_parse_keyword (cd, strp, & frv_cgen_opval_fr_names, & fields->f_FRj); break; diff --git a/opcodes/frv-desc.c b/opcodes/frv-desc.c index 4ad4284e910..ffb0b27e3b9 100644 --- a/opcodes/frv-desc.c +++ b/opcodes/frv-desc.c @@ -2173,6 +2173,18 @@ const CGEN_OPERAND frv_cgen_operand_table[] = { "label24", FRV_OPERAND_LABEL24, HW_H_IADDR, 17, 24, { 2, { (const PTR) &FRV_F_LABEL24_MULTI_IFIELD[0] } }, { 0|A(PCREL_ADDR)|A(VIRTUAL), { (1<<MACH_BASE) } } }, +/* FRintieven: (even) source register 1 */ + { "FRintieven", FRV_OPERAND_FRINTIEVEN, HW_H_FR_INT, 17, 6, + { 0, { (const PTR) &frv_cgen_ifld_table[FRV_F_FRI] } }, + { 0, { (1<<MACH_BASE) } } }, +/* FRintjeven: (even) source register 2 */ + { "FRintjeven", FRV_OPERAND_FRINTJEVEN, HW_H_FR_INT, 5, 6, + { 0, { (const PTR) &frv_cgen_ifld_table[FRV_F_FRJ] } }, + { 0, { (1<<MACH_BASE) } } }, +/* FRintkeven: (even) target register */ + { "FRintkeven", FRV_OPERAND_FRINTKEVEN, HW_H_FR_INT, 30, 6, + { 0, { (const PTR) &frv_cgen_ifld_table[FRV_F_FRK] } }, + { 0, { (1<<MACH_BASE) } } }, /* d12: 12 bit signed immediate */ { "d12", FRV_OPERAND_D12, HW_H_SINT, 11, 12, { 0, { (const PTR) &frv_cgen_ifld_table[FRV_F_D12] } }, @@ -5472,7 +5484,7 @@ static const CGEN_IBASE frv_cgen_insn_table[MAX_INSNS] = FRV_INSN_MCUTSSI, "mcutssi", "mcutssi", 32, { 0, { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_1, FR500_MAJOR_M_2 } } }, -/* mdcutssi$pack $ACC40Si,$s6,$FRintk */ +/* mdcutssi$pack $ACC40Si,$s6,$FRintkeven */ { FRV_INSN_MDCUTSSI, "mdcutssi", "mdcutssi", 32, { 0, { (1<<MACH_FR400), UNIT_FM0, FR400_MAJOR_M_2, FR500_MAJOR_NONE } } @@ -5497,7 +5509,7 @@ static const CGEN_IBASE frv_cgen_insn_table[MAX_INSNS] = FRV_INSN_MSRAHI, "msrahi", "msrahi", 32, { 0, { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_1, FR500_MAJOR_M_2 } } }, -/* mdrotli$pack $FRinti,$s6,$FRintk */ +/* mdrotli$pack $FRintieven,$s6,$FRintkeven */ { FRV_INSN_MDROTLI, "mdrotli", "mdrotli", 32, { 0, { (1<<MACH_FR400), UNIT_FM0, FR400_MAJOR_M_2, FR500_MAJOR_NONE } } @@ -5517,7 +5529,7 @@ static const CGEN_IBASE frv_cgen_insn_table[MAX_INSNS] = FRV_INSN_MSATHS, "msaths", "msaths", 32, { 0, { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_1, FR500_MAJOR_M_1 } } }, -/* mqsaths$pack $FRinti,$FRintj,$FRintk */ +/* mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */ { FRV_INSN_MQSATHS, "mqsaths", "mqsaths", 32, { 0, { (1<<MACH_FR400), UNIT_FM01, FR400_MAJOR_M_1, FR500_MAJOR_NONE } } @@ -5582,42 +5594,42 @@ static const CGEN_IBASE frv_cgen_insn_table[MAX_INSNS] = FRV_INSN_CMSUBHUS, "cmsubhus", "cmsubhus", 32, { 0|A(CONDITIONAL), { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_1, FR500_MAJOR_M_1 } } }, -/* mqaddhss$pack $FRinti,$FRintj,$FRintk */ +/* mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */ { FRV_INSN_MQADDHSS, "mqaddhss", "mqaddhss", 32, { 0, { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_1 } } }, -/* mqaddhus$pack $FRinti,$FRintj,$FRintk */ +/* mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */ { FRV_INSN_MQADDHUS, "mqaddhus", "mqaddhus", 32, { 0, { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_1 } } }, -/* mqsubhss$pack $FRinti,$FRintj,$FRintk */ +/* mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */ { FRV_INSN_MQSUBHSS, "mqsubhss", "mqsubhss", 32, { 0, { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_1 } } }, -/* mqsubhus$pack $FRinti,$FRintj,$FRintk */ +/* mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */ { FRV_INSN_MQSUBHUS, "mqsubhus", "mqsubhus", 32, { 0, { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_1 } } }, -/* cmqaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */ +/* cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */ { FRV_INSN_CMQADDHSS, "cmqaddhss", "cmqaddhss", 32, { 0|A(CONDITIONAL), { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_1 } } }, -/* cmqaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */ +/* cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */ { FRV_INSN_CMQADDHUS, "cmqaddhus", "cmqaddhus", 32, { 0|A(CONDITIONAL), { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_1 } } }, -/* cmqsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */ +/* cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */ { FRV_INSN_CMQSUBHSS, "cmqsubhss", "cmqsubhss", 32, { 0|A(CONDITIONAL), { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_1 } } }, -/* cmqsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */ +/* cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */ { FRV_INSN_CMQSUBHUS, "cmqsubhus", "cmqsubhus", 32, { 0|A(CONDITIONAL), { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_1 } } @@ -5682,32 +5694,32 @@ static const CGEN_IBASE frv_cgen_insn_table[MAX_INSNS] = FRV_INSN_CMMULHU, "cmmulhu", "cmmulhu", 32, { 0|A(CONDITIONAL)|A(PRESERVE_OVF), { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_1, FR500_MAJOR_M_4 } } }, -/* mqmulhs$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */ { FRV_INSN_MQMULHS, "mqmulhs", "mqmulhs", 32, { 0|A(PRESERVE_OVF), { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_4 } } }, -/* mqmulhu$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */ { FRV_INSN_MQMULHU, "mqmulhu", "mqmulhu", 32, { 0|A(PRESERVE_OVF), { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_4 } } }, -/* mqmulxhs$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */ { FRV_INSN_MQMULXHS, "mqmulxhs", "mqmulxhs", 32, { 0|A(PRESERVE_OVF), { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_4 } } }, -/* mqmulxhu$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */ { FRV_INSN_MQMULXHU, "mqmulxhu", "mqmulxhu", 32, { 0|A(PRESERVE_OVF), { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_4 } } }, -/* cmqmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */ +/* cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */ { FRV_INSN_CMQMULHS, "cmqmulhs", "cmqmulhs", 32, { 0|A(CONDITIONAL)|A(PRESERVE_OVF), { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_4 } } }, -/* cmqmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */ +/* cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */ { FRV_INSN_CMQMULHU, "cmqmulhu", "cmqmulhu", 32, { 0|A(CONDITIONAL)|A(PRESERVE_OVF), { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_4 } } @@ -5742,37 +5754,37 @@ static const CGEN_IBASE frv_cgen_insn_table[MAX_INSNS] = FRV_INSN_CMMACHU, "cmmachu", "cmmachu", 32, { 0|A(CONDITIONAL), { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_1, FR500_MAJOR_M_4 } } }, -/* mqmachs$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */ { FRV_INSN_MQMACHS, "mqmachs", "mqmachs", 32, { 0, { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_4 } } }, -/* mqmachu$pack $FRinti,$FRintj,$ACC40Uk */ +/* mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */ { FRV_INSN_MQMACHU, "mqmachu", "mqmachu", 32, { 0, { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_4 } } }, -/* cmqmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */ +/* cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */ { FRV_INSN_CMQMACHS, "cmqmachs", "cmqmachs", 32, { 0|A(CONDITIONAL), { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_4 } } }, -/* cmqmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */ +/* cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */ { FRV_INSN_CMQMACHU, "cmqmachu", "cmqmachu", 32, { 0|A(CONDITIONAL), { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_4 } } }, -/* mqxmachs$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */ { FRV_INSN_MQXMACHS, "mqxmachs", "mqxmachs", 32, { 0, { (1<<MACH_FR400), UNIT_FM0, FR400_MAJOR_M_2, FR500_MAJOR_NONE } } }, -/* mqxmacxhs$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */ { FRV_INSN_MQXMACXHS, "mqxmacxhs", "mqxmacxhs", 32, { 0, { (1<<MACH_FR400), UNIT_FM0, FR400_MAJOR_M_2, FR500_MAJOR_NONE } } }, -/* mqmacxhs$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */ { FRV_INSN_MQMACXHS, "mqmacxhs", "mqmacxhs", 32, { 0, { (1<<MACH_FR400), UNIT_FM0, FR400_MAJOR_M_2, FR500_MAJOR_NONE } } @@ -5817,22 +5829,22 @@ static const CGEN_IBASE frv_cgen_insn_table[MAX_INSNS] = FRV_INSN_CMCPXIU, "cmcpxiu", "cmcpxiu", 32, { 0|A(CONDITIONAL), { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_1, FR500_MAJOR_M_4 } } }, -/* mqcpxrs$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */ { FRV_INSN_MQCPXRS, "mqcpxrs", "mqcpxrs", 32, { 0, { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_4 } } }, -/* mqcpxru$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */ { FRV_INSN_MQCPXRU, "mqcpxru", "mqcpxru", 32, { 0, { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_4 } } }, -/* mqcpxis$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */ { FRV_INSN_MQCPXIS, "mqcpxis", "mqcpxis", 32, { 0, { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_4 } } }, -/* mqcpxiu$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */ { FRV_INSN_MQCPXIU, "mqcpxiu", "mqcpxiu", 32, { 0, { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_4 } } @@ -5847,12 +5859,12 @@ static const CGEN_IBASE frv_cgen_insn_table[MAX_INSNS] = FRV_INSN_CMEXPDHW, "cmexpdhw", "cmexpdhw", 32, { 0|A(CONDITIONAL), { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_1, FR500_MAJOR_M_2 } } }, -/* mexpdhd$pack $FRinti,$u6,$FRintk */ +/* mexpdhd$pack $FRinti,$u6,$FRintkeven */ { FRV_INSN_MEXPDHD, "mexpdhd", "mexpdhd", 32, { 0, { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_2 } } }, -/* cmexpdhd$pack $FRinti,$u6,$FRintk,$CCi,$cond */ +/* cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */ { FRV_INSN_CMEXPDHD, "cmexpdhd", "cmexpdhd", 32, { 0|A(CONDITIONAL), { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_2 } } @@ -5862,37 +5874,37 @@ static const CGEN_IBASE frv_cgen_insn_table[MAX_INSNS] = FRV_INSN_MPACKH, "mpackh", "mpackh", 32, { 0, { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_1, FR500_MAJOR_M_2 } } }, -/* mdpackh$pack $FRinti,$FRintj,$FRintk */ +/* mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */ { FRV_INSN_MDPACKH, "mdpackh", "mdpackh", 32, { 0, { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_5 } } }, -/* munpackh$pack $FRinti,$FRintk */ +/* munpackh$pack $FRinti,$FRintkeven */ { FRV_INSN_MUNPACKH, "munpackh", "munpackh", 32, { 0, { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_2 } } }, -/* mdunpackh$pack $FRinti,$FRintk */ +/* mdunpackh$pack $FRintieven,$FRintk */ { FRV_INSN_MDUNPACKH, "mdunpackh", "mdunpackh", 32, { 0, { (1<<MACH_SIMPLE)|(1<<MACH_TOMCAT)|(1<<MACH_FRV), UNIT_FM01, FR400_MAJOR_NONE, FR500_MAJOR_M_7 } } }, -/* mbtoh$pack $FRintj,$FRintk */ +/* mbtoh$pack $FRintj,$FRintkeven */ { FRV_INSN_MBTOH, "mbtoh", "mbtoh", 32, { 0, { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_2 } } }, -/* cmbtoh$pack $FRintj,$FRintk,$CCi,$cond */ +/* cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */ { FRV_INSN_CMBTOH, "cmbtoh", "cmbtoh", 32, { 0|A(CONDITIONAL), { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_2 } } }, -/* mhtob$pack $FRintj,$FRintk */ +/* mhtob$pack $FRintjeven,$FRintk */ { FRV_INSN_MHTOB, "mhtob", "mhtob", 32, { 0, { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_2 } } }, -/* cmhtob$pack $FRintj,$FRintk,$CCi,$cond */ +/* cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */ { FRV_INSN_CMHTOB, "cmhtob", "cmhtob", 32, { 0|A(CONDITIONAL), { (1<<MACH_BASE), UNIT_FM01, FR400_MAJOR_M_2, FR500_MAJOR_M_2 } } diff --git a/opcodes/frv-desc.h b/opcodes/frv-desc.h index 53cad79079c..3ecf0913aa1 100644 --- a/opcodes/frv-desc.h +++ b/opcodes/frv-desc.h @@ -677,15 +677,16 @@ typedef enum cgen_operand_type { , FRV_OPERAND_U6, FRV_OPERAND_S5, FRV_OPERAND_COND, FRV_OPERAND_CCOND , FRV_OPERAND_HINT, FRV_OPERAND_HINT_TAKEN, FRV_OPERAND_HINT_NOT_TAKEN, FRV_OPERAND_LI , FRV_OPERAND_LOCK, FRV_OPERAND_DEBUG, FRV_OPERAND_A, FRV_OPERAND_AE - , FRV_OPERAND_LABEL16, FRV_OPERAND_LABEL24, FRV_OPERAND_D12, FRV_OPERAND_S12 - , FRV_OPERAND_U12, FRV_OPERAND_SPR, FRV_OPERAND_ULO16, FRV_OPERAND_SLO16 - , FRV_OPERAND_UHI16, FRV_OPERAND_PSR_ESR, FRV_OPERAND_PSR_S, FRV_OPERAND_PSR_PS - , FRV_OPERAND_PSR_ET, FRV_OPERAND_BPSR_BS, FRV_OPERAND_BPSR_BET, FRV_OPERAND_TBR_TBA - , FRV_OPERAND_TBR_TT, FRV_OPERAND_MAX + , FRV_OPERAND_LABEL16, FRV_OPERAND_LABEL24, FRV_OPERAND_FRINTIEVEN, FRV_OPERAND_FRINTJEVEN + , FRV_OPERAND_FRINTKEVEN, FRV_OPERAND_D12, FRV_OPERAND_S12, FRV_OPERAND_U12 + , FRV_OPERAND_SPR, FRV_OPERAND_ULO16, FRV_OPERAND_SLO16, FRV_OPERAND_UHI16 + , FRV_OPERAND_PSR_ESR, FRV_OPERAND_PSR_S, FRV_OPERAND_PSR_PS, FRV_OPERAND_PSR_ET + , FRV_OPERAND_BPSR_BS, FRV_OPERAND_BPSR_BET, FRV_OPERAND_TBR_TBA, FRV_OPERAND_TBR_TT + , FRV_OPERAND_MAX } CGEN_OPERAND_TYPE; /* Number of operands types. */ -#define MAX_OPERANDS 77 +#define MAX_OPERANDS 80 /* Maximum number of operands referenced by any insn. */ #define MAX_OPERAND_INSTANCES 8 diff --git a/opcodes/frv-dis.c b/opcodes/frv-dis.c index f71e1c5c83f..dfe053d5c15 100644 --- a/opcodes/frv-dis.c +++ b/opcodes/frv-dis.c @@ -230,12 +230,21 @@ frv_cgen_print_operand (cd, opindex, xinfo, fields, attrs, pc, length) case FRV_OPERAND_FRINTI : print_keyword (cd, info, & frv_cgen_opval_fr_names, fields->f_FRi, 0); break; + case FRV_OPERAND_FRINTIEVEN : + print_keyword (cd, info, & frv_cgen_opval_fr_names, fields->f_FRi, 0); + break; case FRV_OPERAND_FRINTJ : print_keyword (cd, info, & frv_cgen_opval_fr_names, fields->f_FRj, 0); break; + case FRV_OPERAND_FRINTJEVEN : + print_keyword (cd, info, & frv_cgen_opval_fr_names, fields->f_FRj, 0); + break; case FRV_OPERAND_FRINTK : print_keyword (cd, info, & frv_cgen_opval_fr_names, fields->f_FRk, 0); break; + case FRV_OPERAND_FRINTKEVEN : + print_keyword (cd, info, & frv_cgen_opval_fr_names, fields->f_FRk, 0); + break; case FRV_OPERAND_FRJ : print_keyword (cd, info, & frv_cgen_opval_fr_names, fields->f_FRj, 0); break; diff --git a/opcodes/frv-ibld.c b/opcodes/frv-ibld.c index 316b2cc1bdb..bac1837e1be 100644 --- a/opcodes/frv-ibld.c +++ b/opcodes/frv-ibld.c @@ -651,12 +651,21 @@ frv_cgen_insert_operand (cd, opindex, fields, buffer, pc) case FRV_OPERAND_FRINTI : errmsg = insert_normal (cd, fields->f_FRi, 0, 0, 17, 6, 32, total_length, buffer); break; + case FRV_OPERAND_FRINTIEVEN : + errmsg = insert_normal (cd, fields->f_FRi, 0, 0, 17, 6, 32, total_length, buffer); + break; case FRV_OPERAND_FRINTJ : errmsg = insert_normal (cd, fields->f_FRj, 0, 0, 5, 6, 32, total_length, buffer); break; + case FRV_OPERAND_FRINTJEVEN : + errmsg = insert_normal (cd, fields->f_FRj, 0, 0, 5, 6, 32, total_length, buffer); + break; case FRV_OPERAND_FRINTK : errmsg = insert_normal (cd, fields->f_FRk, 0, 0, 30, 6, 32, total_length, buffer); break; + case FRV_OPERAND_FRINTKEVEN : + errmsg = insert_normal (cd, fields->f_FRk, 0, 0, 30, 6, 32, total_length, buffer); + break; case FRV_OPERAND_FRJ : errmsg = insert_normal (cd, fields->f_FRj, 0, 0, 5, 6, 32, total_length, buffer); break; @@ -942,12 +951,21 @@ frv_cgen_extract_operand (cd, opindex, ex_info, insn_value, fields, pc) case FRV_OPERAND_FRINTI : length = extract_normal (cd, ex_info, insn_value, 0, 0, 17, 6, 32, total_length, pc, & fields->f_FRi); break; + case FRV_OPERAND_FRINTIEVEN : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 17, 6, 32, total_length, pc, & fields->f_FRi); + break; case FRV_OPERAND_FRINTJ : length = extract_normal (cd, ex_info, insn_value, 0, 0, 5, 6, 32, total_length, pc, & fields->f_FRj); break; + case FRV_OPERAND_FRINTJEVEN : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 5, 6, 32, total_length, pc, & fields->f_FRj); + break; case FRV_OPERAND_FRINTK : length = extract_normal (cd, ex_info, insn_value, 0, 0, 30, 6, 32, total_length, pc, & fields->f_FRk); break; + case FRV_OPERAND_FRINTKEVEN : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 30, 6, 32, total_length, pc, & fields->f_FRk); + break; case FRV_OPERAND_FRJ : length = extract_normal (cd, ex_info, insn_value, 0, 0, 5, 6, 32, total_length, pc, & fields->f_FRj); break; @@ -1216,12 +1234,21 @@ frv_cgen_get_int_operand (cd, opindex, fields) case FRV_OPERAND_FRINTI : value = fields->f_FRi; break; + case FRV_OPERAND_FRINTIEVEN : + value = fields->f_FRi; + break; case FRV_OPERAND_FRINTJ : value = fields->f_FRj; break; + case FRV_OPERAND_FRINTJEVEN : + value = fields->f_FRj; + break; case FRV_OPERAND_FRINTK : value = fields->f_FRk; break; + case FRV_OPERAND_FRINTKEVEN : + value = fields->f_FRk; + break; case FRV_OPERAND_FRJ : value = fields->f_FRj; break; @@ -1441,12 +1468,21 @@ frv_cgen_get_vma_operand (cd, opindex, fields) case FRV_OPERAND_FRINTI : value = fields->f_FRi; break; + case FRV_OPERAND_FRINTIEVEN : + value = fields->f_FRi; + break; case FRV_OPERAND_FRINTJ : value = fields->f_FRj; break; + case FRV_OPERAND_FRINTJEVEN : + value = fields->f_FRj; + break; case FRV_OPERAND_FRINTK : value = fields->f_FRk; break; + case FRV_OPERAND_FRINTKEVEN : + value = fields->f_FRk; + break; case FRV_OPERAND_FRJ : value = fields->f_FRj; break; @@ -1675,12 +1711,21 @@ frv_cgen_set_int_operand (cd, opindex, fields, value) case FRV_OPERAND_FRINTI : fields->f_FRi = value; break; + case FRV_OPERAND_FRINTIEVEN : + fields->f_FRi = value; + break; case FRV_OPERAND_FRINTJ : fields->f_FRj = value; break; + case FRV_OPERAND_FRINTJEVEN : + fields->f_FRj = value; + break; case FRV_OPERAND_FRINTK : fields->f_FRk = value; break; + case FRV_OPERAND_FRINTKEVEN : + fields->f_FRk = value; + break; case FRV_OPERAND_FRJ : fields->f_FRj = value; break; @@ -1897,12 +1942,21 @@ frv_cgen_set_vma_operand (cd, opindex, fields, value) case FRV_OPERAND_FRINTI : fields->f_FRi = value; break; + case FRV_OPERAND_FRINTIEVEN : + fields->f_FRi = value; + break; case FRV_OPERAND_FRINTJ : fields->f_FRj = value; break; + case FRV_OPERAND_FRINTJEVEN : + fields->f_FRj = value; + break; case FRV_OPERAND_FRINTK : fields->f_FRk = value; break; + case FRV_OPERAND_FRINTKEVEN : + fields->f_FRk = value; + break; case FRV_OPERAND_FRJ : fields->f_FRj = value; break; diff --git a/opcodes/frv-opc.c b/opcodes/frv-opc.c index 545056b6929..de27a43f5a0 100644 --- a/opcodes/frv-opc.c +++ b/opcodes/frv-opc.c @@ -1033,10 +1033,18 @@ static const CGEN_IFMT ifmt_mcuti = { 32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_ACC40SI) }, { F (F_OPE1) }, { F (F_S6) }, { 0 } } }; +static const CGEN_IFMT ifmt_mdcutssi = { + 32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_ACC40SI) }, { F (F_OPE1) }, { F (F_S6) }, { 0 } } +}; + static const CGEN_IFMT ifmt_mdrotli = { 32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_S6) }, { 0 } } }; +static const CGEN_IFMT ifmt_mqsaths = { + 32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } } +}; + static const CGEN_IFMT ifmt_mcmpsh = { 32, 32, 0x79fc0fc0, { { F (F_PACK) }, { F (F_COND_NULL) }, { F (F_FCCK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } } }; @@ -1045,6 +1053,10 @@ static const CGEN_IFMT ifmt_mabshs = { 32, 32, 0x1ffffc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI_NULL) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } } }; +static const CGEN_IFMT ifmt_cmqaddhss = { + 32, 32, 0x1fc00c0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } } +}; + static const CGEN_IFMT ifmt_maddaccs = { 32, 32, 0x1fc0fff, { { F (F_PACK) }, { F (F_ACC40SK) }, { F (F_OP) }, { F (F_ACC40SI) }, { F (F_OPE1) }, { F (F_ACCJ_NULL) }, { 0 } } }; @@ -1057,6 +1069,14 @@ static const CGEN_IFMT ifmt_cmmulhs = { 32, 32, 0x1fc00c0, { { F (F_PACK) }, { F (F_ACC40SK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } } }; +static const CGEN_IFMT ifmt_mqmulhs = { + 32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_ACC40SK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_cmqmulhs = { + 32, 32, 0x1fc00c0, { { F (F_PACK) }, { F (F_ACC40SK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } } +}; + static const CGEN_IFMT ifmt_mmachu = { 32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_ACC40UK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } } }; @@ -1065,18 +1085,54 @@ static const CGEN_IFMT ifmt_cmmachu = { 32, 32, 0x1fc00c0, { { F (F_PACK) }, { F (F_ACC40UK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } } }; +static const CGEN_IFMT ifmt_mqmachu = { + 32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_ACC40UK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_cmqmachu = { + 32, 32, 0x1fc00c0, { { F (F_PACK) }, { F (F_ACC40UK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } } +}; + static const CGEN_IFMT ifmt_cmexpdhw = { 32, 32, 0x1fc00c0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_U6) }, { 0 } } }; +static const CGEN_IFMT ifmt_mexpdhd = { + 32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_U6) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_cmexpdhd = { + 32, 32, 0x1fc00c0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_U6) }, { 0 } } +}; + static const CGEN_IFMT ifmt_munpackh = { 32, 32, 0x1fc0fff, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ_NULL) }, { 0 } } }; +static const CGEN_IFMT ifmt_mdunpackh = { + 32, 32, 0x1fc0fff, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ_NULL) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_mbtoh = { + 32, 32, 0x1ffffc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI_NULL) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } } +}; + static const CGEN_IFMT ifmt_cmbtoh = { 32, 32, 0x1fff0c0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI_NULL) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } } }; +static const CGEN_IFMT ifmt_mhtob = { + 32, 32, 0x1ffffc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI_NULL) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_cmhtob = { + 32, 32, 0x1fff0c0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI_NULL) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_cmbtohe = { + 32, 32, 0x1fff0c0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI_NULL) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } } +}; + static const CGEN_IFMT ifmt_mclracc = { 32, 32, 0x1fdffff, { { F (F_PACK) }, { F (F_ACC40SK) }, { F (F_OP) }, { F (F_A) }, { F (F_MISC_NULL_10) }, { F (F_OPE1) }, { F (F_FRJ_NULL) }, { 0 } } }; @@ -4982,11 +5038,11 @@ static const CGEN_OPCODE frv_cgen_insn_opcode_table[MAX_INSNS] = { { MNEM, OP (PACK), ' ', OP (ACC40SI), ',', OP (S6), ',', OP (FRINTK), 0 } }, & ifmt_mcuti, { 0x1ec0bc0 } }, -/* mdcutssi$pack $ACC40Si,$s6,$FRintk */ +/* mdcutssi$pack $ACC40Si,$s6,$FRintkeven */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (ACC40SI), ',', OP (S6), ',', OP (FRINTK), 0 } }, - & ifmt_mcuti, { 0x1e00380 } + { { MNEM, OP (PACK), ' ', OP (ACC40SI), ',', OP (S6), ',', OP (FRINTKEVEN), 0 } }, + & ifmt_mdcutssi, { 0x1e00380 } }, /* maveh$pack $FRinti,$FRintj,$FRintk */ { @@ -5012,10 +5068,10 @@ static const CGEN_OPCODE frv_cgen_insn_opcode_table[MAX_INSNS] = { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (U6), ',', OP (FRINTK), 0 } }, & ifmt_mrotli, { 0x1ec02c0 } }, -/* mdrotli$pack $FRinti,$s6,$FRintk */ +/* mdrotli$pack $FRintieven,$s6,$FRintkeven */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (S6), ',', OP (FRINTK), 0 } }, + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (S6), ',', OP (FRINTKEVEN), 0 } }, & ifmt_mdrotli, { 0x1e002c0 } }, /* mcplhi$pack $FRinti,$u6,$FRintk */ @@ -5036,11 +5092,11 @@ static const CGEN_OPCODE frv_cgen_insn_opcode_table[MAX_INSNS] = { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } }, & ifmt_mand, { 0x1ec0300 } }, -/* mqsaths$pack $FRinti,$FRintj,$FRintk */ +/* mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } }, - & ifmt_mand, { 0x1e003c0 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), 0 } }, + & ifmt_mqsaths, { 0x1e003c0 } }, /* msathu$pack $FRinti,$FRintj,$FRintk */ { @@ -5114,53 +5170,53 @@ static const CGEN_OPCODE frv_cgen_insn_opcode_table[MAX_INSNS] = { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } }, & ifmt_cmand, { 0x1c400c0 } }, -/* mqaddhss$pack $FRinti,$FRintj,$FRintk */ +/* mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } }, - & ifmt_mand, { 0x1ec0600 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), 0 } }, + & ifmt_mqsaths, { 0x1ec0600 } }, -/* mqaddhus$pack $FRinti,$FRintj,$FRintk */ +/* mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } }, - & ifmt_mand, { 0x1ec0640 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), 0 } }, + & ifmt_mqsaths, { 0x1ec0640 } }, -/* mqsubhss$pack $FRinti,$FRintj,$FRintk */ +/* mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } }, - & ifmt_mand, { 0x1ec0680 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), 0 } }, + & ifmt_mqsaths, { 0x1ec0680 } }, -/* mqsubhus$pack $FRinti,$FRintj,$FRintk */ +/* mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } }, - & ifmt_mand, { 0x1ec06c0 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), 0 } }, + & ifmt_mqsaths, { 0x1ec06c0 } }, -/* cmqaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */ +/* cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } }, - & ifmt_cmand, { 0x1cc0000 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), ',', OP (CCI), ',', OP (COND), 0 } }, + & ifmt_cmqaddhss, { 0x1cc0000 } }, -/* cmqaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */ +/* cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } }, - & ifmt_cmand, { 0x1cc0040 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), ',', OP (CCI), ',', OP (COND), 0 } }, + & ifmt_cmqaddhss, { 0x1cc0040 } }, -/* cmqsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */ +/* cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } }, - & ifmt_cmand, { 0x1cc0080 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), ',', OP (CCI), ',', OP (COND), 0 } }, + & ifmt_cmqaddhss, { 0x1cc0080 } }, -/* cmqsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */ +/* cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } }, - & ifmt_cmand, { 0x1cc00c0 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), ',', OP (CCI), ',', OP (COND), 0 } }, + & ifmt_cmqaddhss, { 0x1cc00c0 } }, /* maddaccs$pack $ACC40Si,$ACC40Sk */ { @@ -5234,41 +5290,41 @@ static const CGEN_OPCODE frv_cgen_insn_opcode_table[MAX_INSNS] = { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), ',', OP (CCI), ',', OP (COND), 0 } }, & ifmt_cmmulhs, { 0x1c80040 } }, -/* mqmulhs$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } }, - & ifmt_mmulhs, { 0x1ec0700 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } }, + & ifmt_mqmulhs, { 0x1ec0700 } }, -/* mqmulhu$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } }, - & ifmt_mmulhs, { 0x1ec0740 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } }, + & ifmt_mqmulhs, { 0x1ec0740 } }, -/* mqmulxhs$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } }, - & ifmt_mmulhs, { 0x1ec0a80 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } }, + & ifmt_mqmulhs, { 0x1ec0a80 } }, -/* mqmulxhu$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } }, - & ifmt_mmulhs, { 0x1ec0ac0 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } }, + & ifmt_mqmulhs, { 0x1ec0ac0 } }, -/* cmqmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */ +/* cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), ',', OP (CCI), ',', OP (COND), 0 } }, - & ifmt_cmmulhs, { 0x1d00000 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), ',', OP (CCI), ',', OP (COND), 0 } }, + & ifmt_cmqmulhs, { 0x1d00000 } }, -/* cmqmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */ +/* cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), ',', OP (CCI), ',', OP (COND), 0 } }, - & ifmt_cmmulhs, { 0x1d00040 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), ',', OP (CCI), ',', OP (COND), 0 } }, + & ifmt_cmqmulhs, { 0x1d00040 } }, /* mmachs$pack $FRinti,$FRintj,$ACC40Sk */ { @@ -5306,47 +5362,47 @@ static const CGEN_OPCODE frv_cgen_insn_opcode_table[MAX_INSNS] = { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40UK), ',', OP (CCI), ',', OP (COND), 0 } }, & ifmt_cmmachu, { 0x1c800c0 } }, -/* mqmachs$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } }, - & ifmt_mmulhs, { 0x1ec0780 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } }, + & ifmt_mqmulhs, { 0x1ec0780 } }, -/* mqmachu$pack $FRinti,$FRintj,$ACC40Uk */ +/* mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40UK), 0 } }, - & ifmt_mmachu, { 0x1ec07c0 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40UK), 0 } }, + & ifmt_mqmachu, { 0x1ec07c0 } }, -/* cmqmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */ +/* cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), ',', OP (CCI), ',', OP (COND), 0 } }, - & ifmt_cmmulhs, { 0x1d00080 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), ',', OP (CCI), ',', OP (COND), 0 } }, + & ifmt_cmqmulhs, { 0x1d00080 } }, -/* cmqmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */ +/* cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40UK), ',', OP (CCI), ',', OP (COND), 0 } }, - & ifmt_cmmachu, { 0x1d000c0 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40UK), ',', OP (CCI), ',', OP (COND), 0 } }, + & ifmt_cmqmachu, { 0x1d000c0 } }, -/* mqxmachs$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } }, - & ifmt_mmulhs, { 0x1e00000 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } }, + & ifmt_mqmulhs, { 0x1e00000 } }, -/* mqxmacxhs$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } }, - & ifmt_mmulhs, { 0x1e00040 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } }, + & ifmt_mqmulhs, { 0x1e00040 } }, -/* mqmacxhs$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } }, - & ifmt_mmulhs, { 0x1e00080 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } }, + & ifmt_mqmulhs, { 0x1e00080 } }, /* mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */ { @@ -5396,29 +5452,29 @@ static const CGEN_OPCODE frv_cgen_insn_opcode_table[MAX_INSNS] = { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), ',', OP (CCI), ',', OP (COND), 0 } }, & ifmt_cmmulhs, { 0x1d400c0 } }, -/* mqcpxrs$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } }, - & ifmt_mmulhs, { 0x1ec0900 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } }, + & ifmt_mqmulhs, { 0x1ec0900 } }, -/* mqcpxru$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } }, - & ifmt_mmulhs, { 0x1ec0940 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } }, + & ifmt_mqmulhs, { 0x1ec0940 } }, -/* mqcpxis$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } }, - & ifmt_mmulhs, { 0x1ec0980 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } }, + & ifmt_mqmulhs, { 0x1ec0980 } }, -/* mqcpxiu$pack $FRinti,$FRintj,$ACC40Sk */ +/* mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } }, - & ifmt_mmulhs, { 0x1ec09c0 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } }, + & ifmt_mqmulhs, { 0x1ec09c0 } }, /* mexpdhw$pack $FRinti,$u6,$FRintk */ { @@ -5432,17 +5488,17 @@ static const CGEN_OPCODE frv_cgen_insn_opcode_table[MAX_INSNS] = { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (U6), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } }, & ifmt_cmexpdhw, { 0x1d80080 } }, -/* mexpdhd$pack $FRinti,$u6,$FRintk */ +/* mexpdhd$pack $FRinti,$u6,$FRintkeven */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (U6), ',', OP (FRINTK), 0 } }, - & ifmt_mrotli, { 0x1ec0cc0 } + { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (U6), ',', OP (FRINTKEVEN), 0 } }, + & ifmt_mexpdhd, { 0x1ec0cc0 } }, -/* cmexpdhd$pack $FRinti,$u6,$FRintk,$CCi,$cond */ +/* cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (U6), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } }, - & ifmt_cmexpdhw, { 0x1d800c0 } + { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (U6), ',', OP (FRINTKEVEN), ',', OP (CCI), ',', OP (COND), 0 } }, + & ifmt_cmexpdhd, { 0x1d800c0 } }, /* mpackh$pack $FRinti,$FRintj,$FRintk */ { @@ -5450,47 +5506,47 @@ static const CGEN_OPCODE frv_cgen_insn_opcode_table[MAX_INSNS] = { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } }, & ifmt_mand, { 0x1ec0d00 } }, -/* mdpackh$pack $FRinti,$FRintj,$FRintk */ +/* mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } }, - & ifmt_mand, { 0x1ec0d80 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), 0 } }, + & ifmt_mqsaths, { 0x1ec0d80 } }, -/* munpackh$pack $FRinti,$FRintk */ +/* munpackh$pack $FRinti,$FRintkeven */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTK), 0 } }, + { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTKEVEN), 0 } }, & ifmt_munpackh, { 0x1ec0d40 } }, -/* mdunpackh$pack $FRinti,$FRintk */ +/* mdunpackh$pack $FRintieven,$FRintk */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTK), 0 } }, - & ifmt_munpackh, { 0x1ec0dc0 } + { { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTK), 0 } }, + & ifmt_mdunpackh, { 0x1ec0dc0 } }, -/* mbtoh$pack $FRintj,$FRintk */ +/* mbtoh$pack $FRintj,$FRintkeven */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTJ), ',', OP (FRINTK), 0 } }, - & ifmt_mabshs, { 0x1ec0e00 } + { { MNEM, OP (PACK), ' ', OP (FRINTJ), ',', OP (FRINTKEVEN), 0 } }, + & ifmt_mbtoh, { 0x1ec0e00 } }, -/* cmbtoh$pack $FRintj,$FRintk,$CCi,$cond */ +/* cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTJ), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } }, + { { MNEM, OP (PACK), ' ', OP (FRINTJ), ',', OP (FRINTKEVEN), ',', OP (CCI), ',', OP (COND), 0 } }, & ifmt_cmbtoh, { 0x1dc0000 } }, -/* mhtob$pack $FRintj,$FRintk */ +/* mhtob$pack $FRintjeven,$FRintk */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTJ), ',', OP (FRINTK), 0 } }, - & ifmt_mabshs, { 0x1ec0e40 } + { { MNEM, OP (PACK), ' ', OP (FRINTJEVEN), ',', OP (FRINTK), 0 } }, + & ifmt_mhtob, { 0x1ec0e40 } }, -/* cmhtob$pack $FRintj,$FRintk,$CCi,$cond */ +/* cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */ { { 0, 0, 0, 0 }, - { { MNEM, OP (PACK), ' ', OP (FRINTJ), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } }, - & ifmt_cmbtoh, { 0x1dc0040 } + { { MNEM, OP (PACK), ' ', OP (FRINTJEVEN), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } }, + & ifmt_cmhtob, { 0x1dc0040 } }, /* mbtohe$pack $FRintj,$FRintk */ { @@ -5502,7 +5558,7 @@ static const CGEN_OPCODE frv_cgen_insn_opcode_table[MAX_INSNS] = { { 0, 0, 0, 0 }, { { MNEM, OP (PACK), ' ', OP (FRINTJ), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } }, - & ifmt_cmbtoh, { 0x1dc0080 } + & ifmt_cmbtohe, { 0x1dc0080 } }, /* mclracc$pack $ACC40Sk,$A */ { diff --git a/opcodes/frv-opc.h b/opcodes/frv-opc.h index 018a64378d7..5d23cf91043 100644 --- a/opcodes/frv-opc.h +++ b/opcodes/frv-opc.h @@ -27,11 +27,14 @@ with this program; if not, write to the Free Software Foundation, Inc., /* -- opc.h */ -#undef CGEN_DIS_HASH_SIZE +#undef CGEN_DIS_HASH_SIZE #define CGEN_DIS_HASH_SIZE 128 -#undef CGEN_DIS_HASH +#undef CGEN_DIS_HASH #define CGEN_DIS_HASH(buffer, value) (((value) >> 18) & 127) +/* Allows reason codes to be output when assembler errors occur. */ +#define CGEN_VERBOSE_ASSEMBLER_ERRORS + /* Vliw support. */ #define FRV_VLIW_SIZE 4 /* fr500 has largest vliw size of 4. */ typedef CGEN_ATTR_VALUE_TYPE VLIW_COMBO[FRV_VLIW_SIZE]; diff --git a/opcodes/po/opcodes.pot b/opcodes/po/opcodes.pot index 41bc747b895..ee61ca633f8 100644 --- a/opcodes/po/opcodes.pot +++ b/opcodes/po/opcodes.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2003-06-03 14:31+0100\n" +"POT-Creation-Date: 2003-06-05 11:34+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -87,69 +87,69 @@ msgstr "" msgid "Address 0x%x is out of bounds.\n" msgstr "" -#: fr30-asm.c:323 frv-asm.c:595 ip2k-asm.c:574 iq2000-asm.c:460 m32r-asm.c:325 +#: fr30-asm.c:323 frv-asm.c:626 ip2k-asm.c:574 iq2000-asm.c:460 m32r-asm.c:325 #: openrisc-asm.c:244 xstormy16-asm.c:284 #, c-format msgid "Unrecognized field %d while parsing.\n" msgstr "" -#: fr30-asm.c:373 frv-asm.c:645 ip2k-asm.c:624 iq2000-asm.c:513 m32r-asm.c:375 +#: fr30-asm.c:373 frv-asm.c:676 ip2k-asm.c:624 iq2000-asm.c:510 m32r-asm.c:375 #: openrisc-asm.c:294 xstormy16-asm.c:334 msgid "missing mnemonic in syntax string" msgstr "" #. We couldn't parse it. -#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 frv-asm.c:781 -#: frv-asm.c:785 frv-asm.c:872 frv-asm.c:974 ip2k-asm.c:760 ip2k-asm.c:764 -#: ip2k-asm.c:851 ip2k-asm.c:953 iq2000-asm.c:649 iq2000-asm.c:653 -#: iq2000-asm.c:740 iq2000-asm.c:842 m32r-asm.c:511 m32r-asm.c:515 +#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 frv-asm.c:812 +#: frv-asm.c:816 frv-asm.c:903 frv-asm.c:1005 ip2k-asm.c:760 ip2k-asm.c:764 +#: ip2k-asm.c:851 ip2k-asm.c:953 iq2000-asm.c:646 iq2000-asm.c:650 +#: iq2000-asm.c:737 iq2000-asm.c:839 m32r-asm.c:511 m32r-asm.c:515 #: m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:430 openrisc-asm.c:434 #: openrisc-asm.c:521 openrisc-asm.c:623 xstormy16-asm.c:470 #: xstormy16-asm.c:474 xstormy16-asm.c:561 xstormy16-asm.c:663 msgid "unrecognized instruction" msgstr "" -#: fr30-asm.c:556 frv-asm.c:828 ip2k-asm.c:807 iq2000-asm.c:696 m32r-asm.c:558 +#: fr30-asm.c:556 frv-asm.c:859 ip2k-asm.c:807 iq2000-asm.c:693 m32r-asm.c:558 #: openrisc-asm.c:477 xstormy16-asm.c:517 #, c-format msgid "syntax error (expected char `%c', found `%c')" msgstr "" -#: fr30-asm.c:566 frv-asm.c:838 ip2k-asm.c:817 iq2000-asm.c:706 m32r-asm.c:568 +#: fr30-asm.c:566 frv-asm.c:869 ip2k-asm.c:817 iq2000-asm.c:703 m32r-asm.c:568 #: openrisc-asm.c:487 xstormy16-asm.c:527 #, c-format msgid "syntax error (expected char `%c', found end of instruction)" msgstr "" -#: fr30-asm.c:594 frv-asm.c:866 ip2k-asm.c:845 iq2000-asm.c:734 m32r-asm.c:596 +#: fr30-asm.c:594 frv-asm.c:897 ip2k-asm.c:845 iq2000-asm.c:731 m32r-asm.c:596 #: openrisc-asm.c:515 xstormy16-asm.c:555 msgid "junk at end of line" msgstr "" -#: fr30-asm.c:701 frv-asm.c:973 ip2k-asm.c:952 iq2000-asm.c:841 m32r-asm.c:703 -#: openrisc-asm.c:622 xstormy16-asm.c:662 +#: fr30-asm.c:701 frv-asm.c:1004 ip2k-asm.c:952 iq2000-asm.c:838 +#: m32r-asm.c:703 openrisc-asm.c:622 xstormy16-asm.c:662 msgid "unrecognized form of instruction" msgstr "" -#: fr30-asm.c:713 frv-asm.c:985 ip2k-asm.c:964 iq2000-asm.c:853 m32r-asm.c:715 -#: openrisc-asm.c:634 xstormy16-asm.c:674 +#: fr30-asm.c:713 frv-asm.c:1016 ip2k-asm.c:964 iq2000-asm.c:850 +#: m32r-asm.c:715 openrisc-asm.c:634 xstormy16-asm.c:674 #, c-format msgid "bad instruction `%.50s...'" msgstr "" -#: fr30-asm.c:716 frv-asm.c:988 ip2k-asm.c:967 iq2000-asm.c:856 m32r-asm.c:718 -#: openrisc-asm.c:637 xstormy16-asm.c:677 +#: fr30-asm.c:716 frv-asm.c:1019 ip2k-asm.c:967 iq2000-asm.c:853 +#: m32r-asm.c:718 openrisc-asm.c:637 xstormy16-asm.c:677 #, c-format msgid "bad instruction `%.50s'" msgstr "" #. Default text to print if an instruction isn't recognized. -#: fr30-dis.c:41 frv-dis.c:41 ip2k-dis.c:41 iq2000-dis.c:39 m32r-dis.c:41 +#: fr30-dis.c:41 frv-dis.c:41 ip2k-dis.c:41 iq2000-dis.c:41 m32r-dis.c:41 #: mmix-dis.c:284 openrisc-dis.c:41 xstormy16-dis.c:41 msgid "*unknown*" msgstr "" -#: fr30-dis.c:320 frv-dis.c:362 ip2k-dis.c:329 iq2000-dis.c:190 m32r-dis.c:251 +#: fr30-dis.c:320 frv-dis.c:371 ip2k-dis.c:329 iq2000-dis.c:192 m32r-dis.c:251 #: openrisc-dis.c:138 xstormy16-dis.c:171 #, c-format msgid "Unrecognized field %d while printing insn.\n" @@ -167,50 +167,54 @@ msgstr "" msgid "operand out of range (%lu not between 0 and %lu)" msgstr "" -#: fr30-ibld.c:730 frv-ibld.c:820 ip2k-ibld.c:607 iq2000-ibld.c:713 +#: fr30-ibld.c:730 frv-ibld.c:829 ip2k-ibld.c:607 iq2000-ibld.c:713 #: m32r-ibld.c:659 openrisc-ibld.c:633 xstormy16-ibld.c:678 #, c-format msgid "Unrecognized field %d while building insn.\n" msgstr "" -#: fr30-ibld.c:937 frv-ibld.c:1103 ip2k-ibld.c:684 iq2000-ibld.c:890 +#: fr30-ibld.c:937 frv-ibld.c:1121 ip2k-ibld.c:684 iq2000-ibld.c:890 #: m32r-ibld.c:792 openrisc-ibld.c:735 xstormy16-ibld.c:826 #, c-format msgid "Unrecognized field %d while decoding insn.\n" msgstr "" -#: fr30-ibld.c:1086 frv-ibld.c:1348 ip2k-ibld.c:761 iq2000-ibld.c:1024 +#: fr30-ibld.c:1086 frv-ibld.c:1375 ip2k-ibld.c:761 iq2000-ibld.c:1024 #: m32r-ibld.c:902 openrisc-ibld.c:815 xstormy16-ibld.c:939 #, c-format msgid "Unrecognized field %d while getting int operand.\n" msgstr "" -#: fr30-ibld.c:1215 frv-ibld.c:1573 ip2k-ibld.c:818 iq2000-ibld.c:1138 +#: fr30-ibld.c:1215 frv-ibld.c:1609 ip2k-ibld.c:818 iq2000-ibld.c:1138 #: m32r-ibld.c:992 openrisc-ibld.c:875 xstormy16-ibld.c:1032 #, c-format msgid "Unrecognized field %d while getting vma operand.\n" msgstr "" -#: fr30-ibld.c:1349 frv-ibld.c:1807 ip2k-ibld.c:880 iq2000-ibld.c:1261 +#: fr30-ibld.c:1349 frv-ibld.c:1852 ip2k-ibld.c:880 iq2000-ibld.c:1261 #: m32r-ibld.c:1090 openrisc-ibld.c:944 xstormy16-ibld.c:1134 #, c-format msgid "Unrecognized field %d while setting int operand.\n" msgstr "" -#: fr30-ibld.c:1471 frv-ibld.c:2029 ip2k-ibld.c:930 iq2000-ibld.c:1372 +#: fr30-ibld.c:1471 frv-ibld.c:2083 ip2k-ibld.c:930 iq2000-ibld.c:1372 #: m32r-ibld.c:1176 openrisc-ibld.c:1001 xstormy16-ibld.c:1224 #, c-format msgid "Unrecognized field %d while setting vma operand.\n" msgstr "" -#: h8300-dis.c:407 +#: frv-asm.c:365 +msgid "register number must be even" +msgstr "" + +#: h8300-dis.c:377 #, c-format -msgid "Hmmmm %x" +msgid "Hmmmm 0x%x" msgstr "" -#: h8300-dis.c:418 +#: h8300-dis.c:760 #, c-format -msgid "Don't understand %x \n" +msgid "Don't understand 0x%x \n" msgstr "" #: h8500-dis.c:143 |