MOVD F0, F1, F2 // ERROR "illegal MOV instruction"
MOV X10, X11, X12 // ERROR "illegal MOV instruction"
MOVW X10, X11, X12 // ERROR "illegal MOV instruction"
- SLLI $64, X5, X6 // ERROR "shift amount out of range 0 to 63"
- SRLI $64, X5, X6 // ERROR "shift amount out of range 0 to 63"
- SRAI $64, X5, X6 // ERROR "shift amount out of range 0 to 63"
- SLLI $-1, X5, X6 // ERROR "shift amount out of range 0 to 63"
- SRLI $-1, X5, X6 // ERROR "shift amount out of range 0 to 63"
- SRAI $-1, X5, X6 // ERROR "shift amount out of range 0 to 63"
- SLLIW $32, X5, X6 // ERROR "shift amount out of range 0 to 31"
- SRLIW $32, X5, X6 // ERROR "shift amount out of range 0 to 31"
- SRAIW $32, X5, X6 // ERROR "shift amount out of range 0 to 31"
- SLLIW $-1, X5, X6 // ERROR "shift amount out of range 0 to 31"
- SRLIW $-1, X5, X6 // ERROR "shift amount out of range 0 to 31"
- SRAIW $-1, X5, X6 // ERROR "shift amount out of range 0 to 31"
+ RORI $64, X5, X6 // ERROR "immediate out of range 0 to 63"
+ SLLI $64, X5, X6 // ERROR "immediate out of range 0 to 63"
+ SRLI $64, X5, X6 // ERROR "immediate out of range 0 to 63"
+ SRAI $64, X5, X6 // ERROR "immediate out of range 0 to 63"
+ RORI $-1, X5, X6 // ERROR "immediate out of range 0 to 63"
+ SLLI $-1, X5, X6 // ERROR "immediate out of range 0 to 63"
+ SRLI $-1, X5, X6 // ERROR "immediate out of range 0 to 63"
+ SRAI $-1, X5, X6 // ERROR "immediate out of range 0 to 63"
+ RORIW $32, X5, X6 // ERROR "immediate out of range 0 to 31"
+ SLLIW $32, X5, X6 // ERROR "immediate out of range 0 to 31"
+ SRLIW $32, X5, X6 // ERROR "immediate out of range 0 to 31"
+ SRAIW $32, X5, X6 // ERROR "immediate out of range 0 to 31"
+ RORIW $-1, X5, X6 // ERROR "immediate out of range 0 to 31"
+ SLLIW $-1, X5, X6 // ERROR "immediate out of range 0 to 31"
+ SRLIW $-1, X5, X6 // ERROR "immediate out of range 0 to 31"
+ SRAIW $-1, X5, X6 // ERROR "immediate out of range 0 to 31"
SD X5, 4294967296(X6) // ERROR "constant 4294967296 too large"
SRLI $1, X5, F1 // ERROR "expected integer register in rd position but got non-integer register F1"
SRLI $1, F1, X5 // ERROR "expected integer register in rs1 position but got non-integer register F1"
ins.as = AFSGNJND
ins.rs1 = uint32(p.From.Reg)
- case AROL, AROLW, AROR, ARORW, ARORI, ARORIW:
+ case AROL, AROLW, AROR, ARORW:
+ inss = instructionsForRotate(p, ins)
+
+ case ARORI:
+ if ins.imm < 0 || ins.imm > 63 {
+ p.Ctxt.Diag("%v: immediate out of range 0 to 63", p)
+ }
+ inss = instructionsForRotate(p, ins)
+
+ case ARORIW:
+ if ins.imm < 0 || ins.imm > 31 {
+ p.Ctxt.Diag("%v: immediate out of range 0 to 31", p)
+ }
inss = instructionsForRotate(p, ins)
case ASLLI, ASRLI, ASRAI:
if ins.imm < 0 || ins.imm > 63 {
- p.Ctxt.Diag("%v: shift amount out of range 0 to 63", p)
+ p.Ctxt.Diag("%v: immediate out of range 0 to 63", p)
}
case ASLLIW, ASRLIW, ASRAIW:
if ins.imm < 0 || ins.imm > 31 {
- p.Ctxt.Diag("%v: shift amount out of range 0 to 31", p)
+ p.Ctxt.Diag("%v: immediate out of range 0 to 31", p)
}
case ACLZ, ACLZW, ACTZ, ACTZW, ACPOP, ACPOPW, ASEXTB, ASEXTH, AZEXTH: