CMPWU R1, R2 // 1512
CMPWU R3, $4294967295 // c23fffffffff
+ TMHH R1, $65535 // a712ffff
+ TMHL R2, $1 // a7230001
+ TMLH R3, $0 // a7300000
+ TMLL R4, $32768 // a7418000
+
BNE 0(PC) // a7740000
BEQ 0(PC) // a7840000
BLT 0(PC) // a7440000
Optab{AFCMPO, C_FREG, C_NONE, C_NONE, C_FREG, 70, 0},
Optab{AFCMPO, C_FREG, C_REG, C_NONE, C_FREG, 70, 0},
+ // test under mask
+ Optab{ATMHH, C_REG, C_NONE, C_NONE, C_ANDCON, 91, 0},
+
// 32-bit access registers
Optab{AMOVW, C_AREG, C_NONE, C_NONE, C_REG, 68, 0},
Optab{AMOVWZ, C_AREG, C_NONE, C_NONE, C_REG, 68, 0},
opset(ACMPW, r)
case ACMPU:
opset(ACMPWU, r)
+ case ATMHH:
+ opset(ATMHL, r)
+ opset(ATMLH, r)
+ opset(ATMLL, r)
case ACEFBRA:
opset(ACDFBRA, r)
opset(ACEGBRA, r)
zRIE(_c, opcode, uint32(p.From.Reg), mask, uint32(v), 0, 0, 0, uint32(c.regoff(p.GetFrom3())), asm)
}
+ case 91: // test under mask (immediate)
+ var opcode uint32
+ switch p.As {
+ case ATMHH:
+ opcode = op_TMHH
+ case ATMHL:
+ opcode = op_TMHL
+ case ATMLH:
+ opcode = op_TMLH
+ case ATMLL:
+ opcode = op_TMLL
+ }
+ zRI(opcode, uint32(p.From.Reg), uint32(c.vregoff(&p.To)), asm)
+
case 93: // GOT lookup
v := c.vregoff(&p.To)
if v != 0 {
WFMDB V1, V1, V2
LGDR F3, R1
MOVD $sincosxlim<>+0(SB), R2
- WORD $0xA7110001 //tmll %r1,1
+ TMLL R1, $1
BEQ L6
FMOVD 0(R2), F0
WFCHDBS V0, V5, V0
WFMADB V2, V0, V3, V0
FMOVD 0(R2), F6
WFMADB V1, V4, V6, V4
- WORD $0xA7110002 //tmll %r1,2
+ TMLL R1, $2
WFMADB V2, V0, V4, V0
MOVD $sincosc0<>+0(SB), R1
FMOVD 0(R1), F2
FNEG F6, F4
WFMADB V2, V0, V3, V2
WFMDB V4, V1, V0
- WORD $0xA7110002 //tmll %r1,2
+ TMLL R1, $2
WFMSDB V0, V2, V6, V0
BNE L15
FMOVD F0, ret+8(FP)
FMOVD 0(R2), F5
WFMDB V2, V2, V6
MOVD $sincosxlim<>+0(SB), R2
- WORD $0xA7110001 //tmll %r1,1
+ TMLL R1, $1
BNE L25
FMOVD 0(R2), F0
WFCHDBS V0, V1, V0
WFMADB V6, V0, V3, V0
FMOVD 0(R2), F1
WFMADB V2, V4, V1, V4
- WORD $0xA7110002 //tmll %r1,2
+ TMLL R1, $2
WFMADB V6, V0, V4, V0
MOVD $sincosc0<>+0(SB), R1
FMOVD 0(R1), F4
FMADD F3, F2, F1
FMUL F0, F2
WFMADB V6, V4, V1, V6
- WORD $0xA7110002 //tmll %r1,2
+ TMLL R1, $2
FMADD F6, F2, F0
BNE L34
FMOVD F0, ret+8(FP)