| use crate::ir::{MemFlags, TrapCode}; |
| use crate::isa::s390x::inst::*; |
| use crate::isa::s390x::settings as s390x_settings; |
| use crate::settings; |
| use alloc::vec::Vec; |
| use smallvec::smallvec; |
| |
| #[cfg(test)] |
| fn simm20_zero() -> SImm20 { |
| SImm20::maybe_from_i64(0).unwrap() |
| } |
| |
| #[test] |
| fn test_s390x_binemit() { |
| let mut insns = Vec::<(Inst, &str, &str)>::new(); |
| |
| insns.push((Inst::Nop0, "", "nop-zero-len")); |
| insns.push((Inst::Nop2, "0707", "nop")); |
| |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::Add32, |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| rm: gpr(3), |
| }, |
| "B9F83012", |
| "ark %r1, %r2, %r3", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::Add64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| rm: gpr(6), |
| }, |
| "B9E86045", |
| "agrk %r4, %r5, %r6", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::AddLogical32, |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| rm: gpr(3), |
| }, |
| "B9FA3012", |
| "alrk %r1, %r2, %r3", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::AddLogical64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| rm: gpr(6), |
| }, |
| "B9EA6045", |
| "algrk %r4, %r5, %r6", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::Sub32, |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| rm: gpr(3), |
| }, |
| "B9F93012", |
| "srk %r1, %r2, %r3", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::Sub64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| rm: gpr(6), |
| }, |
| "B9E96045", |
| "sgrk %r4, %r5, %r6", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::SubLogical32, |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| rm: gpr(3), |
| }, |
| "B9FB3012", |
| "slrk %r1, %r2, %r3", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::SubLogical64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| rm: gpr(6), |
| }, |
| "B9EB6045", |
| "slgrk %r4, %r5, %r6", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::Mul32, |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| rm: gpr(3), |
| }, |
| "B9FD3012", |
| "msrkc %r1, %r2, %r3", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::Mul64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| rm: gpr(6), |
| }, |
| "B9ED6045", |
| "msgrkc %r4, %r5, %r6", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::And32, |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| rm: gpr(3), |
| }, |
| "B9F43012", |
| "nrk %r1, %r2, %r3", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::And64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| rm: gpr(6), |
| }, |
| "B9E46045", |
| "ngrk %r4, %r5, %r6", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::Orr32, |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| rm: gpr(3), |
| }, |
| "B9F63012", |
| "ork %r1, %r2, %r3", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::Orr64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| rm: gpr(6), |
| }, |
| "B9E66045", |
| "ogrk %r4, %r5, %r6", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::Xor32, |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| rm: gpr(3), |
| }, |
| "B9F73012", |
| "xrk %r1, %r2, %r3", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::Xor64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| rm: gpr(6), |
| }, |
| "B9E76045", |
| "xgrk %r4, %r5, %r6", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::NotAnd32, |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| rm: gpr(3), |
| }, |
| "B9743012", |
| "nnrk %r1, %r2, %r3", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::NotAnd64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| rm: gpr(6), |
| }, |
| "B9646045", |
| "nngrk %r4, %r5, %r6", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::NotOrr32, |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| rm: gpr(3), |
| }, |
| "B9763012", |
| "nork %r1, %r2, %r3", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::NotOrr64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| rm: gpr(6), |
| }, |
| "B9666045", |
| "nogrk %r4, %r5, %r6", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::NotXor32, |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| rm: gpr(3), |
| }, |
| "B9773012", |
| "nxrk %r1, %r2, %r3", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::NotXor64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| rm: gpr(6), |
| }, |
| "B9676045", |
| "nxgrk %r4, %r5, %r6", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::AndNot32, |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| rm: gpr(3), |
| }, |
| "B9F53012", |
| "ncrk %r1, %r2, %r3", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::AndNot64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| rm: gpr(6), |
| }, |
| "B9E56045", |
| "ncgrk %r4, %r5, %r6", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::OrrNot32, |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| rm: gpr(3), |
| }, |
| "B9753012", |
| "ocrk %r1, %r2, %r3", |
| )); |
| insns.push(( |
| Inst::AluRRR { |
| alu_op: ALUOp::OrrNot64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| rm: gpr(6), |
| }, |
| "B9656045", |
| "ocgrk %r4, %r5, %r6", |
| )); |
| |
| insns.push(( |
| Inst::AluRRSImm16 { |
| alu_op: ALUOp::Add32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| imm: -32768, |
| }, |
| "EC45800000D8", |
| "ahik %r4, %r5, -32768", |
| )); |
| insns.push(( |
| Inst::AluRRSImm16 { |
| alu_op: ALUOp::Add32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| imm: 32767, |
| }, |
| "EC457FFF00D8", |
| "ahik %r4, %r5, 32767", |
| )); |
| insns.push(( |
| Inst::AluRRSImm16 { |
| alu_op: ALUOp::Add64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| imm: -32768, |
| }, |
| "EC45800000D9", |
| "aghik %r4, %r5, -32768", |
| )); |
| insns.push(( |
| Inst::AluRRSImm16 { |
| alu_op: ALUOp::Add64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| imm: 32767, |
| }, |
| "EC457FFF00D9", |
| "aghik %r4, %r5, 32767", |
| )); |
| |
| insns.push(( |
| Inst::AluRR { |
| alu_op: ALUOp::Add32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| rm: gpr(2), |
| }, |
| "1A12", |
| "ar %r1, %r2", |
| )); |
| insns.push(( |
| Inst::AluRR { |
| alu_op: ALUOp::Add64, |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rm: gpr(5), |
| }, |
| "B9080045", |
| "agr %r4, %r5", |
| )); |
| insns.push(( |
| Inst::AluRR { |
| alu_op: ALUOp::Add64Ext32, |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rm: gpr(5), |
| }, |
| "B9180045", |
| "agfr %r4, %r5", |
| )); |
| insns.push(( |
| Inst::AluRR { |
| alu_op: ALUOp::AddLogical32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| rm: gpr(2), |
| }, |
| "1E12", |
| "alr %r1, %r2", |
| )); |
| insns.push(( |
| Inst::AluRR { |
| alu_op: ALUOp::AddLogical64, |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rm: gpr(5), |
| }, |
| "B90A0045", |
| "algr %r4, %r5", |
| )); |
| insns.push(( |
| Inst::AluRR { |
| alu_op: ALUOp::AddLogical64Ext32, |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rm: gpr(5), |
| }, |
| "B91A0045", |
| "algfr %r4, %r5", |
| )); |
| insns.push(( |
| Inst::AluRR { |
| alu_op: ALUOp::Sub32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| rm: gpr(2), |
| }, |
| "1B12", |
| "sr %r1, %r2", |
| )); |
| insns.push(( |
| Inst::AluRR { |
| alu_op: ALUOp::Sub64, |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rm: gpr(5), |
| }, |
| "B9090045", |
| "sgr %r4, %r5", |
| )); |
| insns.push(( |
| Inst::AluRR { |
| alu_op: ALUOp::Sub64Ext32, |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rm: gpr(5), |
| }, |
| "B9190045", |
| "sgfr %r4, %r5", |
| )); |
| insns.push(( |
| Inst::AluRR { |
| alu_op: ALUOp::SubLogical32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| rm: gpr(2), |
| }, |
| "1F12", |
| "slr %r1, %r2", |
| )); |
| insns.push(( |
| Inst::AluRR { |
| alu_op: ALUOp::SubLogical64, |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rm: gpr(5), |
| }, |
| "B90B0045", |
| "slgr %r4, %r5", |
| )); |
| insns.push(( |
| Inst::AluRR { |
| alu_op: ALUOp::SubLogical64Ext32, |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rm: gpr(5), |
| }, |
| "B91B0045", |
| "slgfr %r4, %r5", |
| )); |
| insns.push(( |
| Inst::AluRR { |
| alu_op: ALUOp::Mul32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| rm: gpr(2), |
| }, |
| "B2520012", |
| "msr %r1, %r2", |
| )); |
| insns.push(( |
| Inst::AluRR { |
| alu_op: ALUOp::Mul64, |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rm: gpr(5), |
| }, |
| "B90C0045", |
| "msgr %r4, %r5", |
| )); |
| insns.push(( |
| Inst::AluRR { |
| alu_op: ALUOp::Mul64Ext32, |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rm: gpr(5), |
| }, |
| "B91C0045", |
| "msgfr %r4, %r5", |
| )); |
| insns.push(( |
| Inst::AluRR { |
| alu_op: ALUOp::And32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| rm: gpr(2), |
| }, |
| "1412", |
| "nr %r1, %r2", |
| )); |
| insns.push(( |
| Inst::AluRR { |
| alu_op: ALUOp::And64, |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rm: gpr(5), |
| }, |
| "B9800045", |
| "ngr %r4, %r5", |
| )); |
| insns.push(( |
| Inst::AluRR { |
| alu_op: ALUOp::Orr32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| rm: gpr(2), |
| }, |
| "1612", |
| "or %r1, %r2", |
| )); |
| insns.push(( |
| Inst::AluRR { |
| alu_op: ALUOp::Orr64, |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rm: gpr(5), |
| }, |
| "B9810045", |
| "ogr %r4, %r5", |
| )); |
| insns.push(( |
| Inst::AluRR { |
| alu_op: ALUOp::Xor32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| rm: gpr(2), |
| }, |
| "1712", |
| "xr %r1, %r2", |
| )); |
| insns.push(( |
| Inst::AluRR { |
| alu_op: ALUOp::Xor64, |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rm: gpr(5), |
| }, |
| "B9820045", |
| "xgr %r4, %r5", |
| )); |
| |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Add32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "5A102000", |
| "a %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Add32Ext16, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "4A102000", |
| "ah %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Add32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: simm20_zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000005A", |
| "ay %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Add32Ext16, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: simm20_zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000007A", |
| "ahy %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Add64, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000008", |
| "ag %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Add64Ext16, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000038", |
| "agh %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Add64Ext32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000018", |
| "agf %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::AddLogical32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "5E102000", |
| "al %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::AddLogical32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: simm20_zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000005E", |
| "aly %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::AddLogical64, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000000A", |
| "alg %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::AddLogical64Ext32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000001A", |
| "algf %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Sub32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "5B102000", |
| "s %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Sub32Ext16, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "4B102000", |
| "sh %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Sub32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: simm20_zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000005B", |
| "sy %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Sub32Ext16, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: simm20_zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000007B", |
| "shy %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Sub64, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000009", |
| "sg %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Sub64Ext16, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000039", |
| "sgh %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Sub64Ext32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000019", |
| "sgf %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::SubLogical32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "5F102000", |
| "sl %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::SubLogical32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: simm20_zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000005F", |
| "sly %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::SubLogical64, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000000B", |
| "slg %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::SubLogical64Ext32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000001B", |
| "slgf %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Mul32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "71102000", |
| "ms %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Mul32Ext16, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "4C102000", |
| "mh %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Mul32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: simm20_zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000051", |
| "msy %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Mul32Ext16, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: simm20_zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000007C", |
| "mhy %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Mul64, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000000C", |
| "msg %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Mul64Ext16, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000003C", |
| "mgh %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Mul64Ext32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000001C", |
| "msgf %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::And32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "54102000", |
| "n %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::And32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: simm20_zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000054", |
| "ny %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::And64, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000080", |
| "ng %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Orr32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "56102000", |
| "o %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Orr32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: simm20_zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000056", |
| "oy %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Orr64, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000081", |
| "og %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Xor32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "57102000", |
| "x %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Xor32, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: simm20_zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000057", |
| "xy %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::AluRX { |
| alu_op: ALUOp::Xor64, |
| rd: writable_gpr(1), |
| ri: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000082", |
| "xg %r1, 0(%r2)", |
| )); |
| |
| insns.push(( |
| Inst::AluRSImm16 { |
| alu_op: ALUOp::Add32, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: -32768, |
| }, |
| "A77A8000", |
| "ahi %r7, -32768", |
| )); |
| insns.push(( |
| Inst::AluRSImm16 { |
| alu_op: ALUOp::Add32, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: 32767, |
| }, |
| "A77A7FFF", |
| "ahi %r7, 32767", |
| )); |
| insns.push(( |
| Inst::AluRSImm16 { |
| alu_op: ALUOp::Add64, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: -32768, |
| }, |
| "A77B8000", |
| "aghi %r7, -32768", |
| )); |
| insns.push(( |
| Inst::AluRSImm16 { |
| alu_op: ALUOp::Add64, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: 32767, |
| }, |
| "A77B7FFF", |
| "aghi %r7, 32767", |
| )); |
| insns.push(( |
| Inst::AluRSImm16 { |
| alu_op: ALUOp::Mul32, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: -32768, |
| }, |
| "A77C8000", |
| "mhi %r7, -32768", |
| )); |
| insns.push(( |
| Inst::AluRSImm16 { |
| alu_op: ALUOp::Mul32, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: 32767, |
| }, |
| "A77C7FFF", |
| "mhi %r7, 32767", |
| )); |
| insns.push(( |
| Inst::AluRSImm16 { |
| alu_op: ALUOp::Mul64, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: -32768, |
| }, |
| "A77D8000", |
| "mghi %r7, -32768", |
| )); |
| insns.push(( |
| Inst::AluRSImm16 { |
| alu_op: ALUOp::Mul64, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: 32767, |
| }, |
| "A77D7FFF", |
| "mghi %r7, 32767", |
| )); |
| |
| insns.push(( |
| Inst::AluRSImm32 { |
| alu_op: ALUOp::Add32, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: -2147483648, |
| }, |
| "C27980000000", |
| "afi %r7, -2147483648", |
| )); |
| insns.push(( |
| Inst::AluRSImm32 { |
| alu_op: ALUOp::Add32, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: 2147483647, |
| }, |
| "C2797FFFFFFF", |
| "afi %r7, 2147483647", |
| )); |
| insns.push(( |
| Inst::AluRSImm32 { |
| alu_op: ALUOp::Mul32, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: -2147483648, |
| }, |
| "C27180000000", |
| "msfi %r7, -2147483648", |
| )); |
| insns.push(( |
| Inst::AluRSImm32 { |
| alu_op: ALUOp::Mul32, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: 2147483647, |
| }, |
| "C2717FFFFFFF", |
| "msfi %r7, 2147483647", |
| )); |
| insns.push(( |
| Inst::AluRSImm32 { |
| alu_op: ALUOp::Add64, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: -2147483648, |
| }, |
| "C27880000000", |
| "agfi %r7, -2147483648", |
| )); |
| insns.push(( |
| Inst::AluRSImm32 { |
| alu_op: ALUOp::Add64, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: 2147483647, |
| }, |
| "C2787FFFFFFF", |
| "agfi %r7, 2147483647", |
| )); |
| insns.push(( |
| Inst::AluRSImm32 { |
| alu_op: ALUOp::Mul64, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: -2147483648, |
| }, |
| "C27080000000", |
| "msgfi %r7, -2147483648", |
| )); |
| insns.push(( |
| Inst::AluRSImm32 { |
| alu_op: ALUOp::Mul64, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: 2147483647, |
| }, |
| "C2707FFFFFFF", |
| "msgfi %r7, 2147483647", |
| )); |
| |
| insns.push(( |
| Inst::AluRUImm32 { |
| alu_op: ALUOp::AddLogical32, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: 0, |
| }, |
| "C27B00000000", |
| "alfi %r7, 0", |
| )); |
| insns.push(( |
| Inst::AluRUImm32 { |
| alu_op: ALUOp::AddLogical32, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: 4294967295, |
| }, |
| "C27BFFFFFFFF", |
| "alfi %r7, 4294967295", |
| )); |
| insns.push(( |
| Inst::AluRUImm32 { |
| alu_op: ALUOp::SubLogical32, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: 0, |
| }, |
| "C27500000000", |
| "slfi %r7, 0", |
| )); |
| insns.push(( |
| Inst::AluRUImm32 { |
| alu_op: ALUOp::SubLogical32, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: 4294967295, |
| }, |
| "C275FFFFFFFF", |
| "slfi %r7, 4294967295", |
| )); |
| insns.push(( |
| Inst::AluRUImm32 { |
| alu_op: ALUOp::AddLogical64, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: 0, |
| }, |
| "C27A00000000", |
| "algfi %r7, 0", |
| )); |
| insns.push(( |
| Inst::AluRUImm32 { |
| alu_op: ALUOp::AddLogical64, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: 4294967295, |
| }, |
| "C27AFFFFFFFF", |
| "algfi %r7, 4294967295", |
| )); |
| insns.push(( |
| Inst::AluRUImm32 { |
| alu_op: ALUOp::SubLogical64, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: 0, |
| }, |
| "C27400000000", |
| "slgfi %r7, 0", |
| )); |
| insns.push(( |
| Inst::AluRUImm32 { |
| alu_op: ALUOp::SubLogical64, |
| rd: writable_gpr(7), |
| ri: gpr(7), |
| imm: 4294967295, |
| }, |
| "C274FFFFFFFF", |
| "slgfi %r7, 4294967295", |
| )); |
| |
| insns.push(( |
| Inst::AluRUImm16Shifted { |
| alu_op: ALUOp::And32, |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm16Shifted::maybe_from_u64(0x0000_ffff).unwrap(), |
| }, |
| "A587FFFF", |
| "nill %r8, 65535", |
| )); |
| insns.push(( |
| Inst::AluRUImm16Shifted { |
| alu_op: ALUOp::And32, |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm16Shifted::maybe_from_u64(0xffff_0000).unwrap(), |
| }, |
| "A586FFFF", |
| "nilh %r8, 65535", |
| )); |
| insns.push(( |
| Inst::AluRUImm16Shifted { |
| alu_op: ALUOp::And64, |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm16Shifted::maybe_from_u64(0x0000_0000_0000_ffff).unwrap(), |
| }, |
| "A587FFFF", |
| "nill %r8, 65535", |
| )); |
| insns.push(( |
| Inst::AluRUImm16Shifted { |
| alu_op: ALUOp::And64, |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm16Shifted::maybe_from_u64(0x0000_0000_ffff_0000).unwrap(), |
| }, |
| "A586FFFF", |
| "nilh %r8, 65535", |
| )); |
| insns.push(( |
| Inst::AluRUImm16Shifted { |
| alu_op: ALUOp::And64, |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm16Shifted::maybe_from_u64(0x0000_ffff_0000_0000).unwrap(), |
| }, |
| "A585FFFF", |
| "nihl %r8, 65535", |
| )); |
| insns.push(( |
| Inst::AluRUImm16Shifted { |
| alu_op: ALUOp::And64, |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm16Shifted::maybe_from_u64(0xffff_0000_0000_0000).unwrap(), |
| }, |
| "A584FFFF", |
| "nihh %r8, 65535", |
| )); |
| insns.push(( |
| Inst::AluRUImm16Shifted { |
| alu_op: ALUOp::Orr32, |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm16Shifted::maybe_from_u64(0x0000_ffff).unwrap(), |
| }, |
| "A58BFFFF", |
| "oill %r8, 65535", |
| )); |
| insns.push(( |
| Inst::AluRUImm16Shifted { |
| alu_op: ALUOp::Orr32, |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm16Shifted::maybe_from_u64(0xffff_0000).unwrap(), |
| }, |
| "A58AFFFF", |
| "oilh %r8, 65535", |
| )); |
| insns.push(( |
| Inst::AluRUImm16Shifted { |
| alu_op: ALUOp::Orr64, |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm16Shifted::maybe_from_u64(0x0000_0000_0000_ffff).unwrap(), |
| }, |
| "A58BFFFF", |
| "oill %r8, 65535", |
| )); |
| insns.push(( |
| Inst::AluRUImm16Shifted { |
| alu_op: ALUOp::Orr64, |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm16Shifted::maybe_from_u64(0x0000_0000_ffff_0000).unwrap(), |
| }, |
| "A58AFFFF", |
| "oilh %r8, 65535", |
| )); |
| insns.push(( |
| Inst::AluRUImm16Shifted { |
| alu_op: ALUOp::Orr64, |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm16Shifted::maybe_from_u64(0x0000_ffff_0000_0000).unwrap(), |
| }, |
| "A589FFFF", |
| "oihl %r8, 65535", |
| )); |
| insns.push(( |
| Inst::AluRUImm16Shifted { |
| alu_op: ALUOp::Orr64, |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm16Shifted::maybe_from_u64(0xffff_0000_0000_0000).unwrap(), |
| }, |
| "A588FFFF", |
| "oihh %r8, 65535", |
| )); |
| |
| insns.push(( |
| Inst::AluRUImm32Shifted { |
| alu_op: ALUOp::And32, |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm32Shifted::maybe_from_u64(0xffff_ffff).unwrap(), |
| }, |
| "C08BFFFFFFFF", |
| "nilf %r8, 4294967295", |
| )); |
| insns.push(( |
| Inst::AluRUImm32Shifted { |
| alu_op: ALUOp::And64, |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm32Shifted::maybe_from_u64(0x0000_0000_ffff_ffff).unwrap(), |
| }, |
| "C08BFFFFFFFF", |
| "nilf %r8, 4294967295", |
| )); |
| insns.push(( |
| Inst::AluRUImm32Shifted { |
| alu_op: ALUOp::And64, |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm32Shifted::maybe_from_u64(0xffff_ffff_0000_0000).unwrap(), |
| }, |
| "C08AFFFFFFFF", |
| "nihf %r8, 4294967295", |
| )); |
| insns.push(( |
| Inst::AluRUImm32Shifted { |
| alu_op: ALUOp::Orr32, |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm32Shifted::maybe_from_u64(0xffff_ffff).unwrap(), |
| }, |
| "C08DFFFFFFFF", |
| "oilf %r8, 4294967295", |
| )); |
| insns.push(( |
| Inst::AluRUImm32Shifted { |
| alu_op: ALUOp::Orr64, |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm32Shifted::maybe_from_u64(0x0000_0000_ffff_ffff).unwrap(), |
| }, |
| "C08DFFFFFFFF", |
| "oilf %r8, 4294967295", |
| )); |
| insns.push(( |
| Inst::AluRUImm32Shifted { |
| alu_op: ALUOp::Orr64, |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm32Shifted::maybe_from_u64(0xffff_ffff_0000_0000).unwrap(), |
| }, |
| "C08CFFFFFFFF", |
| "oihf %r8, 4294967295", |
| )); |
| insns.push(( |
| Inst::AluRUImm32Shifted { |
| alu_op: ALUOp::Xor32, |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm32Shifted::maybe_from_u64(0xffff_ffff).unwrap(), |
| }, |
| "C087FFFFFFFF", |
| "xilf %r8, 4294967295", |
| )); |
| insns.push(( |
| Inst::AluRUImm32Shifted { |
| alu_op: ALUOp::Xor64, |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm32Shifted::maybe_from_u64(0x0000_0000_ffff_ffff).unwrap(), |
| }, |
| "C087FFFFFFFF", |
| "xilf %r8, 4294967295", |
| )); |
| insns.push(( |
| Inst::AluRUImm32Shifted { |
| alu_op: ALUOp::Xor64, |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm32Shifted::maybe_from_u64(0xffff_ffff_0000_0000).unwrap(), |
| }, |
| "C086FFFFFFFF", |
| "xihf %r8, 4294967295", |
| )); |
| |
| insns.push(( |
| Inst::UnaryRR { |
| op: UnaryOp::Abs32, |
| rd: writable_gpr(1), |
| rn: gpr(10), |
| }, |
| "101A", |
| "lpr %r1, %r10", |
| )); |
| insns.push(( |
| Inst::UnaryRR { |
| op: UnaryOp::Abs64, |
| rd: writable_gpr(1), |
| rn: gpr(10), |
| }, |
| "B900001A", |
| "lpgr %r1, %r10", |
| )); |
| insns.push(( |
| Inst::UnaryRR { |
| op: UnaryOp::Abs64Ext32, |
| rd: writable_gpr(1), |
| rn: gpr(10), |
| }, |
| "B910001A", |
| "lpgfr %r1, %r10", |
| )); |
| insns.push(( |
| Inst::UnaryRR { |
| op: UnaryOp::Neg32, |
| rd: writable_gpr(1), |
| rn: gpr(10), |
| }, |
| "131A", |
| "lcr %r1, %r10", |
| )); |
| insns.push(( |
| Inst::UnaryRR { |
| op: UnaryOp::Neg64, |
| rd: writable_gpr(1), |
| rn: gpr(10), |
| }, |
| "B903001A", |
| "lcgr %r1, %r10", |
| )); |
| insns.push(( |
| Inst::UnaryRR { |
| op: UnaryOp::Neg64Ext32, |
| rd: writable_gpr(1), |
| rn: gpr(10), |
| }, |
| "B913001A", |
| "lcgfr %r1, %r10", |
| )); |
| insns.push(( |
| Inst::UnaryRR { |
| op: UnaryOp::PopcntByte, |
| rd: writable_gpr(1), |
| rn: gpr(10), |
| }, |
| "B9E1001A", |
| "popcnt %r1, %r10", |
| )); |
| insns.push(( |
| Inst::UnaryRR { |
| op: UnaryOp::PopcntReg, |
| rd: writable_gpr(1), |
| rn: gpr(10), |
| }, |
| "B9E1801A", |
| "popcnt %r1, %r10, 8", |
| )); |
| insns.push(( |
| Inst::UnaryRR { |
| op: UnaryOp::BSwap32, |
| rd: writable_gpr(1), |
| rn: gpr(10), |
| }, |
| "B91F001A", |
| "lrvr %r1, %r10", |
| )); |
| insns.push(( |
| Inst::UnaryRR { |
| op: UnaryOp::BSwap64, |
| rd: writable_gpr(1), |
| rn: gpr(10), |
| }, |
| "B90F001A", |
| "lrvgr %r1, %r10", |
| )); |
| |
| insns.push(( |
| Inst::CmpRR { |
| op: CmpOp::CmpS32, |
| rn: gpr(5), |
| rm: gpr(6), |
| }, |
| "1956", |
| "cr %r5, %r6", |
| )); |
| insns.push(( |
| Inst::CmpRR { |
| op: CmpOp::CmpS64, |
| rn: gpr(5), |
| rm: gpr(6), |
| }, |
| "B9200056", |
| "cgr %r5, %r6", |
| )); |
| insns.push(( |
| Inst::CmpRR { |
| op: CmpOp::CmpS64Ext32, |
| rn: gpr(5), |
| rm: gpr(6), |
| }, |
| "B9300056", |
| "cgfr %r5, %r6", |
| )); |
| insns.push(( |
| Inst::CmpRR { |
| op: CmpOp::CmpL32, |
| rn: gpr(5), |
| rm: gpr(6), |
| }, |
| "1556", |
| "clr %r5, %r6", |
| )); |
| insns.push(( |
| Inst::CmpRR { |
| op: CmpOp::CmpL64, |
| rn: gpr(5), |
| rm: gpr(6), |
| }, |
| "B9210056", |
| "clgr %r5, %r6", |
| )); |
| insns.push(( |
| Inst::CmpRR { |
| op: CmpOp::CmpL64Ext32, |
| rn: gpr(5), |
| rm: gpr(6), |
| }, |
| "B9310056", |
| "clgfr %r5, %r6", |
| )); |
| |
| insns.push(( |
| Inst::CmpRX { |
| op: CmpOp::CmpS32, |
| rn: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "59102000", |
| "c %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::CmpRX { |
| op: CmpOp::CmpS32, |
| rn: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: simm20_zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000059", |
| "cy %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::CmpRX { |
| op: CmpOp::CmpS32, |
| rn: gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C61D00000003", |
| "crl %r1, label1", |
| )); |
| insns.push(( |
| Inst::CmpRX { |
| op: CmpOp::CmpS32Ext16, |
| rn: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "49102000", |
| "ch %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::CmpRX { |
| op: CmpOp::CmpS32Ext16, |
| rn: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: simm20_zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000079", |
| "chy %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::CmpRX { |
| op: CmpOp::CmpS32Ext16, |
| rn: gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C61500000003", |
| "chrl %r1, label1", |
| )); |
| insns.push(( |
| Inst::CmpRX { |
| op: CmpOp::CmpS64, |
| rn: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000020", |
| "cg %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::CmpRX { |
| op: CmpOp::CmpS64, |
| rn: gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C61800000003", |
| "cgrl %r1, label1", |
| )); |
| insns.push(( |
| Inst::CmpRX { |
| op: CmpOp::CmpS64Ext16, |
| rn: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000034", |
| "cgh %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::CmpRX { |
| op: CmpOp::CmpS64Ext16, |
| rn: gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C61400000003", |
| "cghrl %r1, label1", |
| )); |
| insns.push(( |
| Inst::CmpRX { |
| op: CmpOp::CmpS64Ext32, |
| rn: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000030", |
| "cgf %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::CmpRX { |
| op: CmpOp::CmpS64Ext32, |
| rn: gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C61C00000003", |
| "cgfrl %r1, label1", |
| )); |
| insns.push(( |
| Inst::CmpRX { |
| op: CmpOp::CmpL32, |
| rn: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "55102000", |
| "cl %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::CmpRX { |
| op: CmpOp::CmpL32, |
| rn: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: simm20_zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000055", |
| "cly %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::CmpRX { |
| op: CmpOp::CmpL32, |
| rn: gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C61F00000003", |
| "clrl %r1, label1", |
| )); |
| insns.push(( |
| Inst::CmpRX { |
| op: CmpOp::CmpL32Ext16, |
| rn: gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C61700000003", |
| "clhrl %r1, label1", |
| )); |
| insns.push(( |
| Inst::CmpRX { |
| op: CmpOp::CmpL64, |
| rn: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000021", |
| "clg %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::CmpRX { |
| op: CmpOp::CmpL64, |
| rn: gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C61A00000003", |
| "clgrl %r1, label1", |
| )); |
| insns.push(( |
| Inst::CmpRX { |
| op: CmpOp::CmpL64Ext16, |
| rn: gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C61600000003", |
| "clghrl %r1, label1", |
| )); |
| insns.push(( |
| Inst::CmpRX { |
| op: CmpOp::CmpL64Ext32, |
| rn: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000031", |
| "clgf %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::CmpRX { |
| op: CmpOp::CmpL64Ext32, |
| rn: gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C61E00000003", |
| "clgfrl %r1, label1", |
| )); |
| |
| insns.push(( |
| Inst::CmpRSImm16 { |
| op: CmpOp::CmpS32, |
| rn: gpr(7), |
| imm: -32768, |
| }, |
| "A77E8000", |
| "chi %r7, -32768", |
| )); |
| insns.push(( |
| Inst::CmpRSImm16 { |
| op: CmpOp::CmpS32, |
| rn: gpr(7), |
| imm: 32767, |
| }, |
| "A77E7FFF", |
| "chi %r7, 32767", |
| )); |
| insns.push(( |
| Inst::CmpRSImm16 { |
| op: CmpOp::CmpS64, |
| rn: gpr(7), |
| imm: -32768, |
| }, |
| "A77F8000", |
| "cghi %r7, -32768", |
| )); |
| insns.push(( |
| Inst::CmpRSImm16 { |
| op: CmpOp::CmpS64, |
| rn: gpr(7), |
| imm: 32767, |
| }, |
| "A77F7FFF", |
| "cghi %r7, 32767", |
| )); |
| insns.push(( |
| Inst::CmpRSImm32 { |
| op: CmpOp::CmpS32, |
| rn: gpr(7), |
| imm: -2147483648, |
| }, |
| "C27D80000000", |
| "cfi %r7, -2147483648", |
| )); |
| insns.push(( |
| Inst::CmpRSImm32 { |
| op: CmpOp::CmpS32, |
| rn: gpr(7), |
| imm: 2147483647, |
| }, |
| "C27D7FFFFFFF", |
| "cfi %r7, 2147483647", |
| )); |
| insns.push(( |
| Inst::CmpRSImm32 { |
| op: CmpOp::CmpS64, |
| rn: gpr(7), |
| imm: -2147483648, |
| }, |
| "C27C80000000", |
| "cgfi %r7, -2147483648", |
| )); |
| insns.push(( |
| Inst::CmpRSImm32 { |
| op: CmpOp::CmpS64, |
| rn: gpr(7), |
| imm: 2147483647, |
| }, |
| "C27C7FFFFFFF", |
| "cgfi %r7, 2147483647", |
| )); |
| insns.push(( |
| Inst::CmpRUImm32 { |
| op: CmpOp::CmpL32, |
| rn: gpr(7), |
| imm: 0, |
| }, |
| "C27F00000000", |
| "clfi %r7, 0", |
| )); |
| insns.push(( |
| Inst::CmpRUImm32 { |
| op: CmpOp::CmpL32, |
| rn: gpr(7), |
| imm: 4294967295, |
| }, |
| "C27FFFFFFFFF", |
| "clfi %r7, 4294967295", |
| )); |
| insns.push(( |
| Inst::CmpRUImm32 { |
| op: CmpOp::CmpL64, |
| rn: gpr(7), |
| imm: 0, |
| }, |
| "C27E00000000", |
| "clgfi %r7, 0", |
| )); |
| insns.push(( |
| Inst::CmpRUImm32 { |
| op: CmpOp::CmpL64, |
| rn: gpr(7), |
| imm: 4294967295, |
| }, |
| "C27EFFFFFFFF", |
| "clgfi %r7, 4294967295", |
| )); |
| |
| insns.push(( |
| Inst::CmpTrapRR { |
| op: CmpOp::CmpS32, |
| rn: gpr(5), |
| rm: gpr(6), |
| cond: Cond::from_mask(8), |
| trap_code: TrapCode::StackOverflow, |
| }, |
| "B9728056", |
| "crte %r5, %r6", |
| )); |
| insns.push(( |
| Inst::CmpTrapRR { |
| op: CmpOp::CmpS64, |
| rn: gpr(5), |
| rm: gpr(6), |
| cond: Cond::from_mask(8), |
| trap_code: TrapCode::StackOverflow, |
| }, |
| "B9608056", |
| "cgrte %r5, %r6", |
| )); |
| insns.push(( |
| Inst::CmpTrapRR { |
| op: CmpOp::CmpL32, |
| rn: gpr(5), |
| rm: gpr(6), |
| cond: Cond::from_mask(8), |
| trap_code: TrapCode::StackOverflow, |
| }, |
| "B9738056", |
| "clrte %r5, %r6", |
| )); |
| insns.push(( |
| Inst::CmpTrapRR { |
| op: CmpOp::CmpL64, |
| rn: gpr(5), |
| rm: gpr(6), |
| cond: Cond::from_mask(8), |
| trap_code: TrapCode::StackOverflow, |
| }, |
| "B9618056", |
| "clgrte %r5, %r6", |
| )); |
| insns.push(( |
| Inst::CmpTrapRSImm16 { |
| op: CmpOp::CmpS32, |
| rn: gpr(7), |
| imm: -32768, |
| cond: Cond::from_mask(8), |
| trap_code: TrapCode::StackOverflow, |
| }, |
| "EC7080008072", |
| "cite %r7, -32768", |
| )); |
| insns.push(( |
| Inst::CmpTrapRSImm16 { |
| op: CmpOp::CmpS32, |
| rn: gpr(7), |
| imm: 32767, |
| cond: Cond::from_mask(8), |
| trap_code: TrapCode::StackOverflow, |
| }, |
| "EC707FFF8072", |
| "cite %r7, 32767", |
| )); |
| insns.push(( |
| Inst::CmpTrapRSImm16 { |
| op: CmpOp::CmpS64, |
| rn: gpr(7), |
| imm: -32768, |
| cond: Cond::from_mask(8), |
| trap_code: TrapCode::StackOverflow, |
| }, |
| "EC7080008070", |
| "cgite %r7, -32768", |
| )); |
| insns.push(( |
| Inst::CmpTrapRSImm16 { |
| op: CmpOp::CmpS64, |
| rn: gpr(7), |
| imm: 32767, |
| cond: Cond::from_mask(8), |
| trap_code: TrapCode::StackOverflow, |
| }, |
| "EC707FFF8070", |
| "cgite %r7, 32767", |
| )); |
| insns.push(( |
| Inst::CmpTrapRUImm16 { |
| op: CmpOp::CmpL32, |
| rn: gpr(7), |
| imm: 0, |
| cond: Cond::from_mask(8), |
| trap_code: TrapCode::StackOverflow, |
| }, |
| "EC7000008073", |
| "clfite %r7, 0", |
| )); |
| insns.push(( |
| Inst::CmpTrapRUImm16 { |
| op: CmpOp::CmpL32, |
| rn: gpr(7), |
| imm: 65535, |
| cond: Cond::from_mask(8), |
| trap_code: TrapCode::StackOverflow, |
| }, |
| "EC70FFFF8073", |
| "clfite %r7, 65535", |
| )); |
| insns.push(( |
| Inst::CmpTrapRUImm16 { |
| op: CmpOp::CmpL64, |
| rn: gpr(7), |
| imm: 0, |
| cond: Cond::from_mask(8), |
| trap_code: TrapCode::StackOverflow, |
| }, |
| "EC7000008071", |
| "clgite %r7, 0", |
| )); |
| insns.push(( |
| Inst::CmpTrapRUImm16 { |
| op: CmpOp::CmpL64, |
| rn: gpr(7), |
| imm: 65535, |
| cond: Cond::from_mask(8), |
| trap_code: TrapCode::StackOverflow, |
| }, |
| "EC70FFFF8071", |
| "clgite %r7, 65535", |
| )); |
| |
| let w_regpair = WritableRegPair { |
| hi: writable_gpr(2), |
| lo: writable_gpr(3), |
| }; |
| let regpair = RegPair { |
| hi: gpr(2), |
| lo: gpr(3), |
| }; |
| |
| insns.push(( |
| Inst::SMulWide { |
| rd: w_regpair, |
| rn: gpr(5), |
| rm: gpr(6), |
| }, |
| "B9EC6025", |
| "mgrk %r2, %r5, %r6", |
| )); |
| insns.push(( |
| Inst::UMulWide { |
| rd: w_regpair, |
| ri: gpr(3), |
| rn: gpr(5), |
| }, |
| "B9860025", |
| "mlgr %r2, %r5", |
| )); |
| insns.push(( |
| Inst::SDivMod32 { |
| rd: w_regpair, |
| ri: gpr(3), |
| rn: gpr(5), |
| }, |
| "B91D0025", |
| "dsgfr %r2, %r5", |
| )); |
| insns.push(( |
| Inst::SDivMod64 { |
| rd: w_regpair, |
| ri: gpr(3), |
| rn: gpr(5), |
| }, |
| "B90D0025", |
| "dsgr %r2, %r5", |
| )); |
| insns.push(( |
| Inst::UDivMod32 { |
| rd: w_regpair, |
| ri: regpair, |
| rn: gpr(5), |
| }, |
| "B9970025", |
| "dlr %r2, %r5", |
| )); |
| insns.push(( |
| Inst::UDivMod64 { |
| rd: w_regpair, |
| ri: regpair, |
| rn: gpr(5), |
| }, |
| "B9870025", |
| "dlgr %r2, %r5", |
| )); |
| |
| insns.push(( |
| Inst::Flogr { |
| rd: w_regpair, |
| rn: gpr(5), |
| }, |
| "B9830025", |
| "flogr %r2, %r5", |
| )); |
| |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::RotL32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 0, |
| shift_reg: zero_reg(), |
| }, |
| "EB450000001D", |
| "rll %r4, %r5, 0", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::RotL32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 63, |
| shift_reg: zero_reg(), |
| }, |
| "EB45003F001D", |
| "rll %r4, %r5, 63", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::RotL32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 0, |
| shift_reg: gpr(6), |
| }, |
| "EB456000001D", |
| "rll %r4, %r5, 0(%r6)", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::RotL32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 63, |
| shift_reg: gpr(6), |
| }, |
| "EB45603F001D", |
| "rll %r4, %r5, 63(%r6)", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::RotL64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 0, |
| shift_reg: zero_reg(), |
| }, |
| "EB450000001C", |
| "rllg %r4, %r5, 0", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::RotL64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 63, |
| shift_reg: zero_reg(), |
| }, |
| "EB45003F001C", |
| "rllg %r4, %r5, 63", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::RotL64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 0, |
| shift_reg: gpr(6), |
| }, |
| "EB456000001C", |
| "rllg %r4, %r5, 0(%r6)", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::RotL64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 63, |
| shift_reg: gpr(6), |
| }, |
| "EB45603F001C", |
| "rllg %r4, %r5, 63(%r6)", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::LShL32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 0, |
| shift_reg: zero_reg(), |
| }, |
| "EB45000000DF", |
| "sllk %r4, %r5, 0", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::LShL32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 63, |
| shift_reg: zero_reg(), |
| }, |
| "EB45003F00DF", |
| "sllk %r4, %r5, 63", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::LShL32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 0, |
| shift_reg: gpr(6), |
| }, |
| "EB45600000DF", |
| "sllk %r4, %r5, 0(%r6)", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::LShL32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 63, |
| shift_reg: gpr(6), |
| }, |
| "EB45603F00DF", |
| "sllk %r4, %r5, 63(%r6)", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::LShL64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 0, |
| shift_reg: zero_reg(), |
| }, |
| "EB450000000D", |
| "sllg %r4, %r5, 0", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::LShL64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 63, |
| shift_reg: zero_reg(), |
| }, |
| "EB45003F000D", |
| "sllg %r4, %r5, 63", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::LShL64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 0, |
| shift_reg: gpr(6), |
| }, |
| "EB456000000D", |
| "sllg %r4, %r5, 0(%r6)", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::LShL64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 63, |
| shift_reg: gpr(6), |
| }, |
| "EB45603F000D", |
| "sllg %r4, %r5, 63(%r6)", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::LShR32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 0, |
| shift_reg: zero_reg(), |
| }, |
| "EB45000000DE", |
| "srlk %r4, %r5, 0", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::LShR32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 63, |
| shift_reg: zero_reg(), |
| }, |
| "EB45003F00DE", |
| "srlk %r4, %r5, 63", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::LShR32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 0, |
| shift_reg: gpr(6), |
| }, |
| "EB45600000DE", |
| "srlk %r4, %r5, 0(%r6)", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::LShR32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 63, |
| shift_reg: gpr(6), |
| }, |
| "EB45603F00DE", |
| "srlk %r4, %r5, 63(%r6)", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::LShR64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 0, |
| shift_reg: zero_reg(), |
| }, |
| "EB450000000C", |
| "srlg %r4, %r5, 0", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::LShR64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 63, |
| shift_reg: zero_reg(), |
| }, |
| "EB45003F000C", |
| "srlg %r4, %r5, 63", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::LShR64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 0, |
| shift_reg: gpr(6), |
| }, |
| "EB456000000C", |
| "srlg %r4, %r5, 0(%r6)", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::LShR64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 63, |
| shift_reg: gpr(6), |
| }, |
| "EB45603F000C", |
| "srlg %r4, %r5, 63(%r6)", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::AShR32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 0, |
| shift_reg: zero_reg(), |
| }, |
| "EB45000000DC", |
| "srak %r4, %r5, 0", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::AShR32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 63, |
| shift_reg: zero_reg(), |
| }, |
| "EB45003F00DC", |
| "srak %r4, %r5, 63", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::AShR32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 0, |
| shift_reg: gpr(6), |
| }, |
| "EB45600000DC", |
| "srak %r4, %r5, 0(%r6)", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::AShR32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 63, |
| shift_reg: gpr(6), |
| }, |
| "EB45603F00DC", |
| "srak %r4, %r5, 63(%r6)", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::AShR64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 0, |
| shift_reg: zero_reg(), |
| }, |
| "EB450000000A", |
| "srag %r4, %r5, 0", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::AShR64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 63, |
| shift_reg: zero_reg(), |
| }, |
| "EB45003F000A", |
| "srag %r4, %r5, 63", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::AShR64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 0, |
| shift_reg: gpr(6), |
| }, |
| "EB456000000A", |
| "srag %r4, %r5, 0(%r6)", |
| )); |
| insns.push(( |
| Inst::ShiftRR { |
| shift_op: ShiftOp::AShR64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| shift_imm: 63, |
| shift_reg: gpr(6), |
| }, |
| "EB45603F000A", |
| "srag %r4, %r5, 63(%r6)", |
| )); |
| |
| insns.push(( |
| Inst::RxSBG { |
| op: RxSBGOp::Insert, |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rn: gpr(5), |
| start_bit: 8, |
| end_bit: 32, |
| rotate_amt: -16, |
| }, |
| "EC4508203059", |
| "risbgn %r4, %r5, 8, 32, 48", |
| )); |
| insns.push(( |
| Inst::RxSBG { |
| op: RxSBGOp::And, |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rn: gpr(5), |
| start_bit: 8, |
| end_bit: 32, |
| rotate_amt: 63, |
| }, |
| "EC4508203F54", |
| "rnsbg %r4, %r5, 8, 32, 63", |
| )); |
| insns.push(( |
| Inst::RxSBG { |
| op: RxSBGOp::Or, |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rn: gpr(5), |
| start_bit: 8, |
| end_bit: 32, |
| rotate_amt: 63, |
| }, |
| "EC4508203F56", |
| "rosbg %r4, %r5, 8, 32, 63", |
| )); |
| insns.push(( |
| Inst::RxSBG { |
| op: RxSBGOp::Xor, |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rn: gpr(5), |
| start_bit: 8, |
| end_bit: 32, |
| rotate_amt: 63, |
| }, |
| "EC4508203F57", |
| "rxsbg %r4, %r5, 8, 32, 63", |
| )); |
| insns.push(( |
| Inst::RxSBGTest { |
| op: RxSBGOp::And, |
| rd: gpr(4), |
| rn: gpr(5), |
| start_bit: 8, |
| end_bit: 32, |
| rotate_amt: 63, |
| }, |
| "EC4588203F54", |
| "rnsbg %r4, %r5, 136, 32, 63", |
| )); |
| insns.push(( |
| Inst::RxSBGTest { |
| op: RxSBGOp::Or, |
| rd: gpr(4), |
| rn: gpr(5), |
| start_bit: 8, |
| end_bit: 32, |
| rotate_amt: 63, |
| }, |
| "EC4588203F56", |
| "rosbg %r4, %r5, 136, 32, 63", |
| )); |
| insns.push(( |
| Inst::RxSBGTest { |
| op: RxSBGOp::Xor, |
| rd: gpr(4), |
| rn: gpr(5), |
| start_bit: 8, |
| end_bit: 32, |
| rotate_amt: 63, |
| }, |
| "EC4588203F57", |
| "rxsbg %r4, %r5, 136, 32, 63", |
| )); |
| |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Add32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB45000080F8", |
| "laa %r4, %r5, -524288", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Add32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB450FFF7FF8", |
| "laa %r4, %r5, 524287", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Add32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB45600080F8", |
| "laa %r4, %r5, -524288(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Add32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB456FFF7FF8", |
| "laa %r4, %r5, 524287(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Add64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB45000080E8", |
| "laag %r4, %r5, -524288", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Add64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB450FFF7FE8", |
| "laag %r4, %r5, 524287", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Add64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB45600080E8", |
| "laag %r4, %r5, -524288(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Add64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB456FFF7FE8", |
| "laag %r4, %r5, 524287(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::AddLogical32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB45000080FA", |
| "laal %r4, %r5, -524288", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::AddLogical32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB450FFF7FFA", |
| "laal %r4, %r5, 524287", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::AddLogical32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB45600080FA", |
| "laal %r4, %r5, -524288(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::AddLogical32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB456FFF7FFA", |
| "laal %r4, %r5, 524287(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::AddLogical64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB45000080EA", |
| "laalg %r4, %r5, -524288", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::AddLogical64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB450FFF7FEA", |
| "laalg %r4, %r5, 524287", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::AddLogical64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB45600080EA", |
| "laalg %r4, %r5, -524288(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::AddLogical64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB456FFF7FEA", |
| "laalg %r4, %r5, 524287(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::And32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB45000080F4", |
| "lan %r4, %r5, -524288", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::And32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB450FFF7FF4", |
| "lan %r4, %r5, 524287", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::And32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB45600080F4", |
| "lan %r4, %r5, -524288(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::And32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB456FFF7FF4", |
| "lan %r4, %r5, 524287(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::And64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB45000080E4", |
| "lang %r4, %r5, -524288", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::And64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB450FFF7FE4", |
| "lang %r4, %r5, 524287", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::And64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB45600080E4", |
| "lang %r4, %r5, -524288(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::And64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB456FFF7FE4", |
| "lang %r4, %r5, 524287(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Orr32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB45000080F6", |
| "lao %r4, %r5, -524288", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Orr32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB450FFF7FF6", |
| "lao %r4, %r5, 524287", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Orr32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB45600080F6", |
| "lao %r4, %r5, -524288(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Orr32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB456FFF7FF6", |
| "lao %r4, %r5, 524287(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Orr64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB45000080E6", |
| "laog %r4, %r5, -524288", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Orr64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB450FFF7FE6", |
| "laog %r4, %r5, 524287", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Orr64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB45600080E6", |
| "laog %r4, %r5, -524288(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Orr64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB456FFF7FE6", |
| "laog %r4, %r5, 524287(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Xor32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB45000080F7", |
| "lax %r4, %r5, -524288", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Xor32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB450FFF7FF7", |
| "lax %r4, %r5, 524287", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Xor32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB45600080F7", |
| "lax %r4, %r5, -524288(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Xor32, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB456FFF7FF7", |
| "lax %r4, %r5, 524287(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Xor64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB45000080E7", |
| "laxg %r4, %r5, -524288", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Xor64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB450FFF7FE7", |
| "laxg %r4, %r5, 524287", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Xor64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB45600080E7", |
| "laxg %r4, %r5, -524288(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicRmw { |
| alu_op: ALUOp::Xor64, |
| rd: writable_gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB456FFF7FE7", |
| "laxg %r4, %r5, 524287(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicCas32 { |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD12 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(0).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "BA450000", |
| "cs %r4, %r5, 0", |
| )); |
| insns.push(( |
| Inst::AtomicCas32 { |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD12 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "BA450FFF", |
| "cs %r4, %r5, 4095", |
| )); |
| insns.push(( |
| Inst::AtomicCas32 { |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB4500008014", |
| "csy %r4, %r5, -524288", |
| )); |
| insns.push(( |
| Inst::AtomicCas32 { |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB450FFF7F14", |
| "csy %r4, %r5, 524287", |
| )); |
| insns.push(( |
| Inst::AtomicCas32 { |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD12 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(0).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "BA456000", |
| "cs %r4, %r5, 0(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicCas32 { |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD12 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "BA456FFF", |
| "cs %r4, %r5, 4095(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicCas32 { |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB4560008014", |
| "csy %r4, %r5, -524288(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicCas32 { |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB456FFF7F14", |
| "csy %r4, %r5, 524287(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicCas64 { |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB4500008030", |
| "csg %r4, %r5, -524288", |
| )); |
| insns.push(( |
| Inst::AtomicCas64 { |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB450FFF7F30", |
| "csg %r4, %r5, 524287", |
| )); |
| insns.push(( |
| Inst::AtomicCas64 { |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB4560008030", |
| "csg %r4, %r5, -524288(%r6)", |
| )); |
| insns.push(( |
| Inst::AtomicCas64 { |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD20 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB456FFF7F30", |
| "csg %r4, %r5, 524287(%r6)", |
| )); |
| insns.push((Inst::Fence, "07E0", "bcr 14, 0")); |
| |
| insns.push(( |
| Inst::Load32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "58102000", |
| "l %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::Load32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "58102FFF", |
| "l %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::Load32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020008058", |
| "ly %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::Load32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F58", |
| "ly %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::Load32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "58123000", |
| "l %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "58123FFF", |
| "l %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230008058", |
| "ly %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F58", |
| "ly %r1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load32ZExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000094", |
| "llc %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::Load32ZExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF0094", |
| "llc %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::Load32ZExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020008094", |
| "llc %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::Load32ZExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F94", |
| "llc %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::Load32ZExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230000094", |
| "llc %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load32ZExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF0094", |
| "llc %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load32ZExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230008094", |
| "llc %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load32ZExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F94", |
| "llc %r1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load32SExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000076", |
| "lb %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::Load32SExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF0076", |
| "lb %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::Load32SExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020008076", |
| "lb %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::Load32SExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F76", |
| "lb %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::Load32SExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230000076", |
| "lb %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load32SExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF0076", |
| "lb %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load32SExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230008076", |
| "lb %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load32SExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F76", |
| "lb %r1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load32ZExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000095", |
| "llh %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::Load32ZExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF0095", |
| "llh %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::Load32ZExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020008095", |
| "llh %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::Load32ZExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F95", |
| "llh %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::Load32ZExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230000095", |
| "llh %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load32ZExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF0095", |
| "llh %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load32ZExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230008095", |
| "llh %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load32ZExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F95", |
| "llh %r1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load32SExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "48102000", |
| "lh %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::Load32SExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "48102FFF", |
| "lh %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::Load32SExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020008078", |
| "lhy %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::Load32SExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F78", |
| "lhy %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::Load32SExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "48123000", |
| "lh %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load32SExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "48123FFF", |
| "lh %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load32SExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230008078", |
| "lhy %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load32SExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F78", |
| "lhy %r1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000004", |
| "lg %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF0004", |
| "lg %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020008004", |
| "lg %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F04", |
| "lg %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230000004", |
| "lg %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF0004", |
| "lg %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230008004", |
| "lg %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F04", |
| "lg %r1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000090", |
| "llgc %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF0090", |
| "llgc %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020008090", |
| "llgc %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F90", |
| "llgc %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230000090", |
| "llgc %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF0090", |
| "llgc %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230008090", |
| "llgc %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F90", |
| "llgc %r1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64SExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000077", |
| "lgb %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64SExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF0077", |
| "lgb %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64SExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020008077", |
| "lgb %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64SExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F77", |
| "lgb %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64SExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230000077", |
| "lgb %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64SExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF0077", |
| "lgb %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64SExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230008077", |
| "lgb %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64SExt8 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F77", |
| "lgb %r1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000091", |
| "llgh %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF0091", |
| "llgh %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020008091", |
| "llgh %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F91", |
| "llgh %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230000091", |
| "llgh %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF0091", |
| "llgh %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230008091", |
| "llgh %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F91", |
| "llgh %r1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64SExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000015", |
| "lgh %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64SExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF0015", |
| "lgh %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64SExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020008015", |
| "lgh %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64SExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F15", |
| "lgh %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64SExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230000015", |
| "lgh %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64SExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF0015", |
| "lgh %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64SExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230008015", |
| "lgh %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64SExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F15", |
| "lgh %r1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000016", |
| "llgf %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF0016", |
| "llgf %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020008016", |
| "llgf %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F16", |
| "llgf %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230000016", |
| "llgf %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF0016", |
| "llgf %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230008016", |
| "llgf %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64ZExt32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F16", |
| "llgf %r1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64SExt32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000014", |
| "lgf %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64SExt32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF0014", |
| "lgf %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64SExt32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020008014", |
| "lgf %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64SExt32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F14", |
| "lgf %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::Load64SExt32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230000014", |
| "lgf %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64SExt32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF0014", |
| "lgf %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64SExt32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230008014", |
| "lgf %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Load64SExt32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F14", |
| "lgf %r1, 524287(%r2,%r3)", |
| )); |
| |
| insns.push(( |
| Inst::Load32 { |
| rd: writable_gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C41D00000003", |
| "lrl %r1, label1", |
| )); |
| insns.push(( |
| Inst::Load32SExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C41500000003", |
| "lhrl %r1, label1", |
| )); |
| insns.push(( |
| Inst::Load32ZExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C41200000003", |
| "llhrl %r1, label1", |
| )); |
| insns.push(( |
| Inst::Load64 { |
| rd: writable_gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C41800000003", |
| "lgrl %r1, label1", |
| )); |
| insns.push(( |
| Inst::Load64SExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C41400000003", |
| "lghrl %r1, label1", |
| )); |
| insns.push(( |
| Inst::Load64ZExt16 { |
| rd: writable_gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C41600000003", |
| "llghrl %r1, label1", |
| )); |
| insns.push(( |
| Inst::Load64SExt32 { |
| rd: writable_gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C41C00000003", |
| "lgfrl %r1, label1", |
| )); |
| insns.push(( |
| Inst::Load64ZExt32 { |
| rd: writable_gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C41E00000003", |
| "llgfrl %r1, label1", |
| )); |
| insns.push(( |
| Inst::LoadRev16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000001F", |
| "lrvh %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::LoadRev16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF001F", |
| "lrvh %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::LoadRev16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000801F", |
| "lrvh %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::LoadRev16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F1F", |
| "lrvh %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::LoadRev16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123000001F", |
| "lrvh %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::LoadRev16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF001F", |
| "lrvh %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::LoadRev16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123000801F", |
| "lrvh %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::LoadRev16 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F1F", |
| "lrvh %r1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::LoadRev32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000001E", |
| "lrv %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::LoadRev32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF001E", |
| "lrv %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::LoadRev32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000801E", |
| "lrv %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::LoadRev32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F1E", |
| "lrv %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::LoadRev32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123000001E", |
| "lrv %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::LoadRev32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF001E", |
| "lrv %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::LoadRev32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123000801E", |
| "lrv %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::LoadRev32 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F1E", |
| "lrv %r1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::LoadRev64 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000000F", |
| "lrvg %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::LoadRev64 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF000F", |
| "lrvg %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::LoadRev64 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000800F", |
| "lrvg %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::LoadRev64 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F0F", |
| "lrvg %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::LoadRev64 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123000000F", |
| "lrvg %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::LoadRev64 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF000F", |
| "lrvg %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::LoadRev64 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123000800F", |
| "lrvg %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::LoadRev64 { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F0F", |
| "lrvg %r1, 524287(%r2,%r3)", |
| )); |
| |
| insns.push(( |
| Inst::Store8 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "42102000", |
| "stc %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::Store8 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "42102FFF", |
| "stc %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::Store8 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020008072", |
| "stcy %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::Store8 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F72", |
| "stcy %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::Store8 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "42123000", |
| "stc %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Store8 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "42123FFF", |
| "stc %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Store8 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230008072", |
| "stcy %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Store8 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F72", |
| "stcy %r1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Store16 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "40102000", |
| "sth %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::Store16 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "40102FFF", |
| "sth %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::Store16 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020008070", |
| "sthy %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::Store16 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F70", |
| "sthy %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::Store16 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "40123000", |
| "sth %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Store16 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "40123FFF", |
| "sth %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Store16 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230008070", |
| "sthy %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Store16 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F70", |
| "sthy %r1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Store32 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "50102000", |
| "st %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::Store32 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "50102FFF", |
| "st %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::Store32 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020008050", |
| "sty %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::Store32 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F50", |
| "sty %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::Store32 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "50123000", |
| "st %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Store32 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "50123FFF", |
| "st %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Store32 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230008050", |
| "sty %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Store32 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F50", |
| "sty %r1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Store64 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020000024", |
| "stg %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::Store64 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF0024", |
| "stg %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::Store64 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020008024", |
| "stg %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::Store64 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F24", |
| "stg %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::Store64 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230000024", |
| "stg %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Store64 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF0024", |
| "stg %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Store64 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230008024", |
| "stg %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::Store64 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F24", |
| "stg %r1, 524287(%r2,%r3)", |
| )); |
| |
| insns.push(( |
| Inst::StoreImm8 { |
| imm: 255, |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "92FF2000", |
| "mvi 0(%r2), 255", |
| )); |
| insns.push(( |
| Inst::StoreImm8 { |
| imm: 0, |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "92002FFF", |
| "mvi 4095(%r2), 0", |
| )); |
| insns.push(( |
| Inst::StoreImm8 { |
| imm: 255, |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EBFF20008052", |
| "mviy -524288(%r2), 255", |
| )); |
| insns.push(( |
| Inst::StoreImm8 { |
| imm: 0, |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB002FFF7F52", |
| "mviy 524287(%r2), 0", |
| )); |
| insns.push(( |
| Inst::StoreImm16 { |
| imm: -32768, |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E54420008000", |
| "mvhhi 0(%r2), -32768", |
| )); |
| insns.push(( |
| Inst::StoreImm16 { |
| imm: 32767, |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E5442FFF7FFF", |
| "mvhhi 4095(%r2), 32767", |
| )); |
| insns.push(( |
| Inst::StoreImm32SExt16 { |
| imm: -32768, |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E54C20008000", |
| "mvhi 0(%r2), -32768", |
| )); |
| insns.push(( |
| Inst::StoreImm32SExt16 { |
| imm: 32767, |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E54C2FFF7FFF", |
| "mvhi 4095(%r2), 32767", |
| )); |
| insns.push(( |
| Inst::StoreImm64SExt16 { |
| imm: -32768, |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E54820008000", |
| "mvghi 0(%r2), -32768", |
| )); |
| insns.push(( |
| Inst::StoreImm64SExt16 { |
| imm: 32767, |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E5482FFF7FFF", |
| "mvghi 4095(%r2), 32767", |
| )); |
| |
| insns.push(( |
| Inst::StoreRev16 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000003F", |
| "strvh %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::StoreRev16 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF003F", |
| "strvh %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::StoreRev16 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000803F", |
| "strvh %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::StoreRev16 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F3F", |
| "strvh %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::StoreRev16 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123000003F", |
| "strvh %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::StoreRev16 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF003F", |
| "strvh %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::StoreRev16 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123000803F", |
| "strvh %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::StoreRev16 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F3F", |
| "strvh %r1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::StoreRev32 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000003E", |
| "strv %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::StoreRev32 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF003E", |
| "strv %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::StoreRev32 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000803E", |
| "strv %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::StoreRev32 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F3E", |
| "strv %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::StoreRev32 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123000003E", |
| "strv %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::StoreRev32 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF003E", |
| "strv %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::StoreRev32 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123000803E", |
| "strv %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::StoreRev32 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F3E", |
| "strv %r1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::StoreRev64 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000002F", |
| "strvg %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::StoreRev64 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF002F", |
| "strvg %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::StoreRev64 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102000802F", |
| "strvg %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::StoreRev64 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F2F", |
| "strvg %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::StoreRev64 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123000002F", |
| "strvg %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::StoreRev64 { |
| rd: gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF002F", |
| "strvg %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::StoreRev64 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123000802F", |
| "strvg %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::StoreRev64 { |
| rd: gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F2F", |
| "strvg %r1, 524287(%r2,%r3)", |
| )); |
| |
| insns.push(( |
| Inst::Store16 { |
| rd: gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C41700000003", |
| "sthrl %r1, label1", |
| )); |
| insns.push(( |
| Inst::Store32 { |
| rd: gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C41F00000003", |
| "strl %r1, label1", |
| )); |
| insns.push(( |
| Inst::Store64 { |
| rd: gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C41B00000003", |
| "stgrl %r1, label1", |
| )); |
| |
| insns.push(( |
| Inst::Mvc { |
| dst: MemArgPair { |
| base: gpr(2), |
| disp: UImm12::maybe_from_u64(0x345).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| src: MemArgPair { |
| base: gpr(8), |
| disp: UImm12::maybe_from_u64(0x9ab).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| len_minus_one: 255, |
| }, |
| "D2FF234589AB", |
| "mvc 837(255,%r2), 2475(%r8)", |
| )); |
| |
| insns.push(( |
| Inst::LoadMultiple64 { |
| rt: writable_gpr(8), |
| rt2: writable_gpr(12), |
| mem: MemArg::BXD20 { |
| base: gpr(15), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB8CF0008004", |
| "lmg %r8, %r12, -524288(%r15)", |
| )); |
| insns.push(( |
| Inst::LoadMultiple64 { |
| rt: writable_gpr(8), |
| rt2: writable_gpr(12), |
| mem: MemArg::BXD20 { |
| base: gpr(15), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB8CFFFF7F04", |
| "lmg %r8, %r12, 524287(%r15)", |
| )); |
| |
| insns.push(( |
| Inst::StoreMultiple64 { |
| rt: gpr(8), |
| rt2: gpr(12), |
| mem: MemArg::BXD20 { |
| base: gpr(15), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB8CF0008024", |
| "stmg %r8, %r12, -524288(%r15)", |
| )); |
| insns.push(( |
| Inst::StoreMultiple64 { |
| rt: gpr(8), |
| rt2: gpr(12), |
| mem: MemArg::BXD20 { |
| base: gpr(15), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "EB8CFFFF7F24", |
| "stmg %r8, %r12, 524287(%r15)", |
| )); |
| |
| insns.push(( |
| Inst::LoadAddr { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "41100000", |
| "la %r1, 0", |
| )); |
| insns.push(( |
| Inst::LoadAddr { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "41100FFF", |
| "la %r1, 4095", |
| )); |
| insns.push(( |
| Inst::LoadAddr { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31000008071", |
| "lay %r1, -524288", |
| )); |
| insns.push(( |
| Inst::LoadAddr { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: zero_reg(), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3100FFF7F71", |
| "lay %r1, 524287", |
| )); |
| insns.push(( |
| Inst::LoadAddr { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "41102000", |
| "la %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::LoadAddr { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "41102FFF", |
| "la %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::LoadAddr { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020008071", |
| "lay %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::LoadAddr { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F71", |
| "lay %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::LoadAddr { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "41123000", |
| "la %r1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::LoadAddr { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "41123FFF", |
| "la %r1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::LoadAddr { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31230008071", |
| "lay %r1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::LoadAddr { |
| rd: writable_gpr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3123FFF7F71", |
| "lay %r1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::LoadAddr { |
| rd: writable_gpr(1), |
| mem: MemArg::Label { |
| target: MachLabel::from_block(BlockIndex::new(1)), |
| }, |
| }, |
| "C01000000003", |
| "larl %r1, label1", |
| )); |
| insns.push(( |
| Inst::LoadAddr { |
| rd: writable_gpr(1), |
| mem: MemArg::Symbol { |
| name: Box::new(ExternalName::testcase("test0")), |
| offset: 64, |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "C01000000000", |
| "larl %r1, %test0 + 64", |
| )); |
| |
| insns.push(( |
| Inst::LoadAddr { |
| rd: writable_gpr(1), |
| mem: MemArg::RegOffset { |
| reg: gpr(2), |
| off: 0, |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "41102000", |
| "la %r1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::LoadAddr { |
| rd: writable_gpr(1), |
| mem: MemArg::RegOffset { |
| reg: gpr(2), |
| off: 4095, |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "41102FFF", |
| "la %r1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::LoadAddr { |
| rd: writable_gpr(1), |
| mem: MemArg::RegOffset { |
| reg: gpr(2), |
| off: -524288, |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E31020008071", |
| "lay %r1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::LoadAddr { |
| rd: writable_gpr(1), |
| mem: MemArg::RegOffset { |
| reg: gpr(2), |
| off: 524287, |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E3102FFF7F71", |
| "lay %r1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::LoadAddr { |
| rd: writable_gpr(1), |
| mem: MemArg::RegOffset { |
| reg: gpr(2), |
| off: -2147483648, |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "C0118000000041112000", |
| "lgfi %r1, -2147483648 ; la %r1, 0(%r1,%r2)", |
| )); |
| insns.push(( |
| Inst::LoadAddr { |
| rd: writable_gpr(1), |
| mem: MemArg::RegOffset { |
| reg: gpr(2), |
| off: 2147483647, |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "C0117FFFFFFF41112000", |
| "lgfi %r1, 2147483647 ; la %r1, 0(%r1,%r2)", |
| )); |
| |
| insns.push(( |
| Inst::Mov64 { |
| rd: writable_gpr(8), |
| rm: gpr(9), |
| }, |
| "B9040089", |
| "lgr %r8, %r9", |
| )); |
| insns.push(( |
| Inst::Mov32 { |
| rd: writable_gpr(8), |
| rm: gpr(9), |
| }, |
| "1889", |
| "lr %r8, %r9", |
| )); |
| |
| insns.push(( |
| Inst::Mov32SImm16 { |
| rd: writable_gpr(8), |
| imm: -32768, |
| }, |
| "A7888000", |
| "lhi %r8, -32768", |
| )); |
| insns.push(( |
| Inst::Mov32SImm16 { |
| rd: writable_gpr(8), |
| imm: 32767, |
| }, |
| "A7887FFF", |
| "lhi %r8, 32767", |
| )); |
| insns.push(( |
| Inst::Mov32Imm { |
| rd: writable_gpr(8), |
| imm: 2147483648, |
| }, |
| "C08980000000", |
| "iilf %r8, 2147483648", |
| )); |
| insns.push(( |
| Inst::Mov32Imm { |
| rd: writable_gpr(8), |
| imm: 2147483647, |
| }, |
| "C0897FFFFFFF", |
| "iilf %r8, 2147483647", |
| )); |
| insns.push(( |
| Inst::Mov64SImm16 { |
| rd: writable_gpr(8), |
| imm: -32768, |
| }, |
| "A7898000", |
| "lghi %r8, -32768", |
| )); |
| insns.push(( |
| Inst::Mov64SImm16 { |
| rd: writable_gpr(8), |
| imm: 32767, |
| }, |
| "A7897FFF", |
| "lghi %r8, 32767", |
| )); |
| insns.push(( |
| Inst::Mov64SImm32 { |
| rd: writable_gpr(8), |
| imm: -2147483648, |
| }, |
| "C08180000000", |
| "lgfi %r8, -2147483648", |
| )); |
| insns.push(( |
| Inst::Mov64SImm32 { |
| rd: writable_gpr(8), |
| imm: 2147483647, |
| }, |
| "C0817FFFFFFF", |
| "lgfi %r8, 2147483647", |
| )); |
| insns.push(( |
| Inst::Mov64UImm16Shifted { |
| rd: writable_gpr(8), |
| imm: UImm16Shifted::maybe_from_u64(0x0000_0000_0000_ffff).unwrap(), |
| }, |
| "A58FFFFF", |
| "llill %r8, 65535", |
| )); |
| insns.push(( |
| Inst::Mov64UImm16Shifted { |
| rd: writable_gpr(8), |
| imm: UImm16Shifted::maybe_from_u64(0x0000_0000_ffff_0000).unwrap(), |
| }, |
| "A58EFFFF", |
| "llilh %r8, 65535", |
| )); |
| insns.push(( |
| Inst::Mov64UImm16Shifted { |
| rd: writable_gpr(8), |
| imm: UImm16Shifted::maybe_from_u64(0x0000_ffff_0000_0000).unwrap(), |
| }, |
| "A58DFFFF", |
| "llihl %r8, 65535", |
| )); |
| insns.push(( |
| Inst::Mov64UImm16Shifted { |
| rd: writable_gpr(8), |
| imm: UImm16Shifted::maybe_from_u64(0xffff_0000_0000_0000).unwrap(), |
| }, |
| "A58CFFFF", |
| "llihh %r8, 65535", |
| )); |
| insns.push(( |
| Inst::Mov64UImm32Shifted { |
| rd: writable_gpr(8), |
| imm: UImm32Shifted::maybe_from_u64(0x0000_0000_ffff_ffff).unwrap(), |
| }, |
| "C08FFFFFFFFF", |
| "llilf %r8, 4294967295", |
| )); |
| insns.push(( |
| Inst::Mov64UImm32Shifted { |
| rd: writable_gpr(8), |
| imm: UImm32Shifted::maybe_from_u64(0xffff_ffff_0000_0000).unwrap(), |
| }, |
| "C08EFFFFFFFF", |
| "llihf %r8, 4294967295", |
| )); |
| |
| insns.push(( |
| Inst::Insert64UImm16Shifted { |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm16Shifted::maybe_from_u64(0x0000_0000_0000_ffff).unwrap(), |
| }, |
| "A583FFFF", |
| "iill %r8, 65535", |
| )); |
| insns.push(( |
| Inst::Insert64UImm16Shifted { |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm16Shifted::maybe_from_u64(0x0000_0000_ffff_0000).unwrap(), |
| }, |
| "A582FFFF", |
| "iilh %r8, 65535", |
| )); |
| insns.push(( |
| Inst::Insert64UImm16Shifted { |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm16Shifted::maybe_from_u64(0x0000_ffff_0000_0000).unwrap(), |
| }, |
| "A581FFFF", |
| "iihl %r8, 65535", |
| )); |
| insns.push(( |
| Inst::Insert64UImm16Shifted { |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm16Shifted::maybe_from_u64(0xffff_0000_0000_0000).unwrap(), |
| }, |
| "A580FFFF", |
| "iihh %r8, 65535", |
| )); |
| insns.push(( |
| Inst::Insert64UImm32Shifted { |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm32Shifted::maybe_from_u64(0x0000_0000_ffff_ffff).unwrap(), |
| }, |
| "C089FFFFFFFF", |
| "iilf %r8, 4294967295", |
| )); |
| insns.push(( |
| Inst::Insert64UImm32Shifted { |
| rd: writable_gpr(8), |
| ri: gpr(8), |
| imm: UImm32Shifted::maybe_from_u64(0xffff_ffff_0000_0000).unwrap(), |
| }, |
| "C088FFFFFFFF", |
| "iihf %r8, 4294967295", |
| )); |
| |
| insns.push(( |
| Inst::CMov32 { |
| rd: writable_gpr(8), |
| cond: Cond::from_mask(1), |
| ri: gpr(8), |
| rm: gpr(9), |
| }, |
| "B9F21089", |
| "locro %r8, %r9", |
| )); |
| insns.push(( |
| Inst::CMov64 { |
| rd: writable_gpr(8), |
| cond: Cond::from_mask(1), |
| ri: gpr(8), |
| rm: gpr(9), |
| }, |
| "B9E21089", |
| "locgro %r8, %r9", |
| )); |
| |
| insns.push(( |
| Inst::CMov32SImm16 { |
| rd: writable_gpr(8), |
| cond: Cond::from_mask(1), |
| imm: -32768, |
| ri: gpr(8), |
| }, |
| "EC8180000042", |
| "lochio %r8, -32768", |
| )); |
| insns.push(( |
| Inst::CMov32SImm16 { |
| rd: writable_gpr(8), |
| cond: Cond::from_mask(1), |
| imm: 32767, |
| ri: gpr(8), |
| }, |
| "EC817FFF0042", |
| "lochio %r8, 32767", |
| )); |
| insns.push(( |
| Inst::CMov64SImm16 { |
| rd: writable_gpr(8), |
| cond: Cond::from_mask(1), |
| imm: -32768, |
| ri: gpr(8), |
| }, |
| "EC8180000046", |
| "locghio %r8, -32768", |
| )); |
| insns.push(( |
| Inst::CMov64SImm16 { |
| rd: writable_gpr(8), |
| cond: Cond::from_mask(1), |
| imm: 32767, |
| ri: gpr(8), |
| }, |
| "EC817FFF0046", |
| "locghio %r8, 32767", |
| )); |
| |
| insns.push(( |
| Inst::Extend { |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| signed: false, |
| from_bits: 8, |
| to_bits: 32, |
| }, |
| "B9940012", |
| "llcr %r1, %r2", |
| )); |
| insns.push(( |
| Inst::Extend { |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| signed: true, |
| from_bits: 8, |
| to_bits: 32, |
| }, |
| "B9260012", |
| "lbr %r1, %r2", |
| )); |
| insns.push(( |
| Inst::Extend { |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| signed: false, |
| from_bits: 16, |
| to_bits: 32, |
| }, |
| "B9950012", |
| "llhr %r1, %r2", |
| )); |
| insns.push(( |
| Inst::Extend { |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| signed: true, |
| from_bits: 16, |
| to_bits: 32, |
| }, |
| "B9270012", |
| "lhr %r1, %r2", |
| )); |
| insns.push(( |
| Inst::Extend { |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| signed: false, |
| from_bits: 8, |
| to_bits: 64, |
| }, |
| "B9840012", |
| "llgcr %r1, %r2", |
| )); |
| insns.push(( |
| Inst::Extend { |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| signed: true, |
| from_bits: 8, |
| to_bits: 64, |
| }, |
| "B9060012", |
| "lgbr %r1, %r2", |
| )); |
| insns.push(( |
| Inst::Extend { |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| signed: false, |
| from_bits: 16, |
| to_bits: 64, |
| }, |
| "B9850012", |
| "llghr %r1, %r2", |
| )); |
| insns.push(( |
| Inst::Extend { |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| signed: true, |
| from_bits: 16, |
| to_bits: 64, |
| }, |
| "B9070012", |
| "lghr %r1, %r2", |
| )); |
| insns.push(( |
| Inst::Extend { |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| signed: false, |
| from_bits: 32, |
| to_bits: 64, |
| }, |
| "B9160012", |
| "llgfr %r1, %r2", |
| )); |
| insns.push(( |
| Inst::Extend { |
| rd: writable_gpr(1), |
| rn: gpr(2), |
| signed: true, |
| from_bits: 32, |
| to_bits: 64, |
| }, |
| "B9140012", |
| "lgfr %r1, %r2", |
| )); |
| |
| insns.push(( |
| Inst::Jump { |
| dest: MachLabel::from_block(BlockIndex::new(0)), |
| }, |
| "C0F400000000", |
| "jg label0", |
| )); |
| |
| insns.push(( |
| Inst::OneWayCondBr { |
| target: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(1), |
| }, |
| "C01400000000", |
| "jgo label0", |
| )); |
| insns.push(( |
| Inst::OneWayCondBr { |
| target: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(2), |
| }, |
| "C02400000000", |
| "jgh label0", |
| )); |
| insns.push(( |
| Inst::OneWayCondBr { |
| target: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(3), |
| }, |
| "C03400000000", |
| "jgnle label0", |
| )); |
| insns.push(( |
| Inst::OneWayCondBr { |
| target: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(4), |
| }, |
| "C04400000000", |
| "jgl label0", |
| )); |
| insns.push(( |
| Inst::OneWayCondBr { |
| target: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(5), |
| }, |
| "C05400000000", |
| "jgnhe label0", |
| )); |
| insns.push(( |
| Inst::OneWayCondBr { |
| target: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(6), |
| }, |
| "C06400000000", |
| "jglh label0", |
| )); |
| insns.push(( |
| Inst::OneWayCondBr { |
| target: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(7), |
| }, |
| "C07400000000", |
| "jgne label0", |
| )); |
| insns.push(( |
| Inst::OneWayCondBr { |
| target: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(8), |
| }, |
| "C08400000000", |
| "jge label0", |
| )); |
| insns.push(( |
| Inst::OneWayCondBr { |
| target: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(9), |
| }, |
| "C09400000000", |
| "jgnlh label0", |
| )); |
| insns.push(( |
| Inst::OneWayCondBr { |
| target: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(10), |
| }, |
| "C0A400000000", |
| "jghe label0", |
| )); |
| insns.push(( |
| Inst::OneWayCondBr { |
| target: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(11), |
| }, |
| "C0B400000000", |
| "jgnl label0", |
| )); |
| insns.push(( |
| Inst::OneWayCondBr { |
| target: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(12), |
| }, |
| "C0C400000000", |
| "jgle label0", |
| )); |
| insns.push(( |
| Inst::OneWayCondBr { |
| target: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(13), |
| }, |
| "C0D400000000", |
| "jgnh label0", |
| )); |
| insns.push(( |
| Inst::OneWayCondBr { |
| target: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(14), |
| }, |
| "C0E400000000", |
| "jgno label0", |
| )); |
| |
| insns.push(( |
| Inst::CondBr { |
| taken: MachLabel::from_block(BlockIndex::new(0)), |
| not_taken: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(1), |
| }, |
| "C01400000000C0F4FFFFFFFD", |
| "jgo label0 ; jg label0", |
| )); |
| insns.push(( |
| Inst::CondBr { |
| taken: MachLabel::from_block(BlockIndex::new(0)), |
| not_taken: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(2), |
| }, |
| "C02400000000C0F4FFFFFFFD", |
| "jgh label0 ; jg label0", |
| )); |
| insns.push(( |
| Inst::CondBr { |
| taken: MachLabel::from_block(BlockIndex::new(0)), |
| not_taken: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(3), |
| }, |
| "C03400000000C0F4FFFFFFFD", |
| "jgnle label0 ; jg label0", |
| )); |
| insns.push(( |
| Inst::CondBr { |
| taken: MachLabel::from_block(BlockIndex::new(0)), |
| not_taken: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(4), |
| }, |
| "C04400000000C0F4FFFFFFFD", |
| "jgl label0 ; jg label0", |
| )); |
| insns.push(( |
| Inst::CondBr { |
| taken: MachLabel::from_block(BlockIndex::new(0)), |
| not_taken: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(5), |
| }, |
| "C05400000000C0F4FFFFFFFD", |
| "jgnhe label0 ; jg label0", |
| )); |
| insns.push(( |
| Inst::CondBr { |
| taken: MachLabel::from_block(BlockIndex::new(0)), |
| not_taken: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(6), |
| }, |
| "C06400000000C0F4FFFFFFFD", |
| "jglh label0 ; jg label0", |
| )); |
| insns.push(( |
| Inst::CondBr { |
| taken: MachLabel::from_block(BlockIndex::new(0)), |
| not_taken: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(7), |
| }, |
| "C07400000000C0F4FFFFFFFD", |
| "jgne label0 ; jg label0", |
| )); |
| insns.push(( |
| Inst::CondBr { |
| taken: MachLabel::from_block(BlockIndex::new(0)), |
| not_taken: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(8), |
| }, |
| "C08400000000C0F4FFFFFFFD", |
| "jge label0 ; jg label0", |
| )); |
| insns.push(( |
| Inst::CondBr { |
| taken: MachLabel::from_block(BlockIndex::new(0)), |
| not_taken: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(9), |
| }, |
| "C09400000000C0F4FFFFFFFD", |
| "jgnlh label0 ; jg label0", |
| )); |
| insns.push(( |
| Inst::CondBr { |
| taken: MachLabel::from_block(BlockIndex::new(0)), |
| not_taken: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(10), |
| }, |
| "C0A400000000C0F4FFFFFFFD", |
| "jghe label0 ; jg label0", |
| )); |
| insns.push(( |
| Inst::CondBr { |
| taken: MachLabel::from_block(BlockIndex::new(0)), |
| not_taken: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(11), |
| }, |
| "C0B400000000C0F4FFFFFFFD", |
| "jgnl label0 ; jg label0", |
| )); |
| insns.push(( |
| Inst::CondBr { |
| taken: MachLabel::from_block(BlockIndex::new(0)), |
| not_taken: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(12), |
| }, |
| "C0C400000000C0F4FFFFFFFD", |
| "jgle label0 ; jg label0", |
| )); |
| insns.push(( |
| Inst::CondBr { |
| taken: MachLabel::from_block(BlockIndex::new(0)), |
| not_taken: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(13), |
| }, |
| "C0D400000000C0F4FFFFFFFD", |
| "jgnh label0 ; jg label0", |
| )); |
| insns.push(( |
| Inst::CondBr { |
| taken: MachLabel::from_block(BlockIndex::new(0)), |
| not_taken: MachLabel::from_block(BlockIndex::new(0)), |
| cond: Cond::from_mask(14), |
| }, |
| "C0E400000000C0F4FFFFFFFD", |
| "jgno label0 ; jg label0", |
| )); |
| |
| insns.push(( |
| Inst::IndirectBr { |
| rn: gpr(3), |
| targets: vec![], |
| }, |
| "07F3", |
| "br %r3", |
| )); |
| |
| insns.push(( |
| Inst::Call { |
| link: writable_gpr(14), |
| info: Box::new(CallInfo { |
| dest: ExternalName::testcase("test0"), |
| uses: smallvec![], |
| defs: smallvec![], |
| clobbers: PRegSet::empty(), |
| opcode: Opcode::Call, |
| caller_callconv: CallConv::SystemV, |
| callee_callconv: CallConv::SystemV, |
| tls_symbol: None, |
| }), |
| }, |
| "C0E500000000", |
| "brasl %r14, %test0", |
| )); |
| |
| insns.push(( |
| Inst::CallInd { |
| link: writable_gpr(14), |
| info: Box::new(CallIndInfo { |
| rn: gpr(1), |
| uses: smallvec![], |
| defs: smallvec![], |
| clobbers: PRegSet::empty(), |
| opcode: Opcode::CallIndirect, |
| caller_callconv: CallConv::SystemV, |
| callee_callconv: CallConv::SystemV, |
| }), |
| }, |
| "0DE1", |
| "basr %r14, %r1", |
| )); |
| |
| insns.push((Inst::Ret { link: gpr(14) }, "07FE", "br %r14")); |
| |
| insns.push((Inst::Debugtrap, "0001", ".word 0x0001 # debugtrap")); |
| |
| insns.push(( |
| Inst::Trap { |
| trap_code: TrapCode::StackOverflow, |
| }, |
| "0000", |
| ".word 0x0000 # trap=stk_ovf", |
| )); |
| insns.push(( |
| Inst::TrapIf { |
| cond: Cond::from_mask(1), |
| trap_code: TrapCode::StackOverflow, |
| }, |
| "C01400000001", |
| "jgo .+2 # trap=stk_ovf", |
| )); |
| |
| insns.push(( |
| Inst::Loop { |
| body: vec![ |
| Inst::CmpRR { |
| op: CmpOp::CmpS32, |
| rn: gpr(2), |
| rm: gpr(3), |
| }, |
| Inst::CondBreak { |
| cond: Cond::from_mask(13), |
| }, |
| Inst::AtomicCas32 { |
| rd: writable_gpr(4), |
| ri: gpr(4), |
| rn: gpr(5), |
| mem: MemArg::BXD12 { |
| base: gpr(6), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(0).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| ], |
| cond: Cond::from_mask(6), |
| }, |
| "1923C0D400000008BA456000C064FFFFFFFA", |
| "0: cr %r2, %r3 ; jgnh 1f ; cs %r4, %r5, 0(%r6) ; jglh 0b ; 1:", |
| )); |
| |
| insns.push(( |
| Inst::FpuMove32 { |
| rd: writable_vr(8), |
| rn: vr(4), |
| }, |
| "3884", |
| "ler %f8, %f4", |
| )); |
| insns.push(( |
| Inst::FpuMove32 { |
| rd: writable_vr(8), |
| rn: vr(20), |
| }, |
| "E78400000456", |
| "vlr %v8, %v20", |
| )); |
| insns.push(( |
| Inst::FpuMove64 { |
| rd: writable_vr(8), |
| rn: vr(4), |
| }, |
| "2884", |
| "ldr %f8, %f4", |
| )); |
| insns.push(( |
| Inst::FpuMove64 { |
| rd: writable_vr(8), |
| rn: vr(20), |
| }, |
| "E78400000456", |
| "vlr %v8, %v20", |
| )); |
| insns.push(( |
| Inst::FpuCMov32 { |
| rd: writable_vr(8), |
| ri: vr(8), |
| rm: vr(4), |
| cond: Cond::from_mask(1), |
| }, |
| "A7E400033884", |
| "jno 6 ; ler %f8, %f4", |
| )); |
| insns.push(( |
| Inst::FpuCMov32 { |
| rd: writable_vr(8), |
| ri: vr(8), |
| rm: vr(20), |
| cond: Cond::from_mask(1), |
| }, |
| "A7E40005E78400000456", |
| "jno 10 ; vlr %v8, %v20", |
| )); |
| insns.push(( |
| Inst::FpuCMov64 { |
| rd: writable_vr(8), |
| ri: vr(8), |
| rm: vr(4), |
| cond: Cond::from_mask(1), |
| }, |
| "A7E400032884", |
| "jno 6 ; ldr %f8, %f4", |
| )); |
| insns.push(( |
| Inst::FpuCMov64 { |
| rd: writable_vr(8), |
| ri: vr(8), |
| rm: vr(20), |
| cond: Cond::from_mask(1), |
| }, |
| "A7E40005E78400000456", |
| "jno 10 ; vlr %v8, %v20", |
| )); |
| |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::Abs32, |
| rd: writable_vr(8), |
| rn: vr(12), |
| }, |
| "B300008C", |
| "lpebr %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::Abs32, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C002828CC", |
| "wflpsb %v24, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::Abs32x4, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C002028CC", |
| "vflpsb %v24, %v12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::Abs64, |
| rd: writable_vr(8), |
| rn: vr(12), |
| }, |
| "B310008C", |
| "lpdbr %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::Abs64, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C002838CC", |
| "wflpdb %v24, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::Abs64x2, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C002038CC", |
| "vflpdb %v24, %v12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::Neg32, |
| rd: writable_vr(8), |
| rn: vr(12), |
| }, |
| "B303008C", |
| "lcebr %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::Neg32, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C000828CC", |
| "wflcsb %v24, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::Neg32x4, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C000028CC", |
| "vflcsb %v24, %v12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::Neg64, |
| rd: writable_vr(8), |
| rn: vr(12), |
| }, |
| "B313008C", |
| "lcdbr %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::Neg64, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C000838CC", |
| "wflcdb %v24, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::Neg64x2, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C000038CC", |
| "vflcdb %v24, %v12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::NegAbs32, |
| rd: writable_vr(8), |
| rn: vr(12), |
| }, |
| "B301008C", |
| "lnebr %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::NegAbs32, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001828CC", |
| "wflnsb %v24, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::NegAbs32x4, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001028CC", |
| "vflnsb %v24, %v12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::NegAbs64, |
| rd: writable_vr(8), |
| rn: vr(12), |
| }, |
| "B311008C", |
| "lndbr %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::NegAbs64, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001838CC", |
| "wflndb %v24, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::NegAbs64x2, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001038CC", |
| "vflndb %v24, %v12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::Sqrt32, |
| rd: writable_vr(8), |
| rn: vr(12), |
| }, |
| "B314008C", |
| "sqebr %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::Sqrt32, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C000828CE", |
| "wfsqsb %v24, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::Sqrt32x4, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C000028CE", |
| "vfsqsb %v24, %v12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::Sqrt64, |
| rd: writable_vr(8), |
| rn: vr(12), |
| }, |
| "B315008C", |
| "sqdbr %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::Sqrt64, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C000838CE", |
| "wfsqdb %v24, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::Sqrt64x2, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C000038CE", |
| "vfsqdb %v24, %v12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::Cvt32To64, |
| rd: writable_vr(8), |
| rn: vr(12), |
| }, |
| "B304008C", |
| "ldebr %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::Cvt32To64, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C000828C4", |
| "wldeb %v24, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRR { |
| fpu_op: FPUOp1::Cvt32x4To64x2, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C000028C4", |
| "vldeb %v24, %v12", |
| )); |
| |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Add32, |
| rd: writable_vr(8), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "B30A008C", |
| "aebr %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Add32, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00828E3", |
| "wfasb %v20, %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Add32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028E3", |
| "vfasb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Add64, |
| rd: writable_vr(8), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "B31A008C", |
| "adbr %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Add64, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00838E3", |
| "wfadb %v20, %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Add64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00038E3", |
| "vfadb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Sub32, |
| rd: writable_vr(8), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "B30B008C", |
| "sebr %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Sub32, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00828E2", |
| "wfssb %v20, %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Sub32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028E2", |
| "vfssb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Sub64, |
| rd: writable_vr(8), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "B31B008C", |
| "sdbr %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Sub64, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00838E2", |
| "wfsdb %v20, %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Sub64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00038E2", |
| "vfsdb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Mul32, |
| rd: writable_vr(8), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "B317008C", |
| "meebr %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Mul32, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00828E7", |
| "wfmsb %v20, %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Mul32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028E7", |
| "vfmsb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Mul64, |
| rd: writable_vr(8), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "B31C008C", |
| "mdbr %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Mul64, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00838E7", |
| "wfmdb %v20, %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Mul64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00038E7", |
| "vfmdb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Div32, |
| rd: writable_vr(8), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "B30D008C", |
| "debr %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Div32, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00828E5", |
| "wfdsb %v20, %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Div32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028E5", |
| "vfdsb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Div64, |
| rd: writable_vr(8), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "B31D008C", |
| "ddbr %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Div64, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00838E5", |
| "wfddb %v20, %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Div64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00038E5", |
| "vfddb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Max32, |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(8), |
| }, |
| "E746801820EF", |
| "wfmaxsb %f4, %f6, %f8, 1", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Max32x4, |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(8), |
| }, |
| "E746801020EF", |
| "vfmaxsb %v4, %v6, %v8, 1", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Max64, |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(24), |
| }, |
| "E746801832EF", |
| "wfmaxdb %f4, %f6, %v24, 1", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Max64x2, |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(24), |
| }, |
| "E746801032EF", |
| "vfmaxdb %v4, %v6, %v24, 1", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Min32, |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(8), |
| }, |
| "E746801820EE", |
| "wfminsb %f4, %f6, %f8, 1", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Min32x4, |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(8), |
| }, |
| "E746801020EE", |
| "vfminsb %v4, %v6, %v8, 1", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Min64, |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(8), |
| }, |
| "E746801830EE", |
| "wfmindb %f4, %f6, %f8, 1", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::Min64x2, |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(8), |
| }, |
| "E746801030EE", |
| "vfmindb %v4, %v6, %v8, 1", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::MaxPseudo32, |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(8), |
| }, |
| "E746803820EF", |
| "wfmaxsb %f4, %f6, %f8, 3", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::MaxPseudo32x4, |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(8), |
| }, |
| "E746803020EF", |
| "vfmaxsb %v4, %v6, %v8, 3", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::MaxPseudo64, |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(24), |
| }, |
| "E746803832EF", |
| "wfmaxdb %f4, %f6, %v24, 3", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::MaxPseudo64x2, |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(24), |
| }, |
| "E746803032EF", |
| "vfmaxdb %v4, %v6, %v24, 3", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::MinPseudo32, |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(8), |
| }, |
| "E746803820EE", |
| "wfminsb %f4, %f6, %f8, 3", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::MinPseudo32x4, |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(8), |
| }, |
| "E746803020EE", |
| "vfminsb %v4, %v6, %v8, 3", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::MinPseudo64, |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(8), |
| }, |
| "E746803830EE", |
| "wfmindb %f4, %f6, %f8, 3", |
| )); |
| insns.push(( |
| Inst::FpuRRR { |
| fpu_op: FPUOp2::MinPseudo64x2, |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(8), |
| }, |
| "E746803030EE", |
| "vfmindb %v4, %v6, %v8, 3", |
| )); |
| |
| insns.push(( |
| Inst::FpuRRRR { |
| fpu_op: FPUOp3::MAdd32, |
| rd: writable_vr(8), |
| rn: vr(12), |
| rm: vr(13), |
| ra: vr(8), |
| }, |
| "B30E80CD", |
| "maebr %f8, %f12, %f13", |
| )); |
| insns.push(( |
| Inst::FpuRRRR { |
| fpu_op: FPUOp3::MAdd32, |
| rd: writable_vr(8), |
| rn: vr(12), |
| rm: vr(13), |
| ra: vr(20), |
| }, |
| "E78CD208418F", |
| "wfmasb %f8, %f12, %f13, %v20", |
| )); |
| insns.push(( |
| Inst::FpuRRRR { |
| fpu_op: FPUOp3::MAdd32x4, |
| rd: writable_vr(8), |
| rn: vr(12), |
| rm: vr(13), |
| ra: vr(20), |
| }, |
| "E78CD200418F", |
| "vfmasb %v8, %v12, %v13, %v20", |
| )); |
| insns.push(( |
| Inst::FpuRRRR { |
| fpu_op: FPUOp3::MAdd64, |
| rd: writable_vr(8), |
| rn: vr(12), |
| rm: vr(13), |
| ra: vr(8), |
| }, |
| "B31E80CD", |
| "madbr %f8, %f12, %f13", |
| )); |
| insns.push(( |
| Inst::FpuRRRR { |
| fpu_op: FPUOp3::MAdd64, |
| rd: writable_vr(8), |
| rn: vr(12), |
| rm: vr(13), |
| ra: vr(20), |
| }, |
| "E78CD308418F", |
| "wfmadb %f8, %f12, %f13, %v20", |
| )); |
| insns.push(( |
| Inst::FpuRRRR { |
| fpu_op: FPUOp3::MAdd64x2, |
| rd: writable_vr(8), |
| rn: vr(12), |
| rm: vr(13), |
| ra: vr(20), |
| }, |
| "E78CD300418F", |
| "vfmadb %v8, %v12, %v13, %v20", |
| )); |
| insns.push(( |
| Inst::FpuRRRR { |
| fpu_op: FPUOp3::MSub32, |
| rd: writable_vr(8), |
| rn: vr(12), |
| rm: vr(13), |
| ra: vr(8), |
| }, |
| "B30F80CD", |
| "msebr %f8, %f12, %f13", |
| )); |
| insns.push(( |
| Inst::FpuRRRR { |
| fpu_op: FPUOp3::MSub32, |
| rd: writable_vr(8), |
| rn: vr(12), |
| rm: vr(13), |
| ra: vr(20), |
| }, |
| "E78CD208418E", |
| "wfmssb %f8, %f12, %f13, %v20", |
| )); |
| insns.push(( |
| Inst::FpuRRRR { |
| fpu_op: FPUOp3::MSub32x4, |
| rd: writable_vr(8), |
| rn: vr(12), |
| rm: vr(13), |
| ra: vr(20), |
| }, |
| "E78CD200418E", |
| "vfmssb %v8, %v12, %v13, %v20", |
| )); |
| insns.push(( |
| Inst::FpuRRRR { |
| fpu_op: FPUOp3::MSub64, |
| rd: writable_vr(8), |
| rn: vr(12), |
| rm: vr(13), |
| ra: vr(8), |
| }, |
| "B31F80CD", |
| "msdbr %f8, %f12, %f13", |
| )); |
| insns.push(( |
| Inst::FpuRRRR { |
| fpu_op: FPUOp3::MSub64, |
| rd: writable_vr(8), |
| rn: vr(12), |
| rm: vr(13), |
| ra: vr(20), |
| }, |
| "E78CD308418E", |
| "wfmsdb %f8, %f12, %f13, %v20", |
| )); |
| insns.push(( |
| Inst::FpuRRRR { |
| fpu_op: FPUOp3::MSub64x2, |
| rd: writable_vr(8), |
| rn: vr(12), |
| rm: vr(13), |
| ra: vr(20), |
| }, |
| "E78CD300418E", |
| "vfmsdb %v8, %v12, %v13, %v20", |
| )); |
| |
| insns.push(( |
| Inst::FpuCmp32 { |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "B309008C", |
| "cebr %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuCmp32 { |
| rn: vr(24), |
| rm: vr(12), |
| }, |
| "E78C000028CB", |
| "wfcsb %v24, %f12", |
| )); |
| insns.push(( |
| Inst::FpuCmp64 { |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "B319008C", |
| "cdbr %f8, %f12", |
| )); |
| insns.push(( |
| Inst::FpuCmp64 { |
| rn: vr(24), |
| rm: vr(12), |
| }, |
| "E78C000038CB", |
| "wfcdb %v24, %f12", |
| )); |
| |
| insns.push(( |
| Inst::LoadFpuConst32 { |
| rd: writable_vr(8), |
| const_data: 1.0_f32.to_bits(), |
| }, |
| "A71500043F80000078801000", |
| "bras %r1, 8 ; data.f32 1 ; le %f8, 0(%r1)", |
| )); |
| insns.push(( |
| Inst::LoadFpuConst32 { |
| rd: writable_vr(24), |
| const_data: 1.0_f32.to_bits(), |
| }, |
| "A71500043F800000E78010000803", |
| "bras %r1, 8 ; data.f32 1 ; vlef %v24, 0(%r1), 0", |
| )); |
| insns.push(( |
| Inst::LoadFpuConst64 { |
| rd: writable_vr(8), |
| const_data: 1.0_f64.to_bits(), |
| }, |
| "A71500063FF000000000000068801000", |
| "bras %r1, 12 ; data.f64 1 ; ld %f8, 0(%r1)", |
| )); |
| insns.push(( |
| Inst::LoadFpuConst64 { |
| rd: writable_vr(24), |
| const_data: 1.0_f64.to_bits(), |
| }, |
| "A71500063FF0000000000000E78010000802", |
| "bras %r1, 12 ; data.f64 1 ; vleg %v24, 0(%r1), 0", |
| )); |
| |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::Cvt64To32, |
| mode: FpuRoundMode::Current, |
| rd: writable_vr(8), |
| rn: vr(12), |
| }, |
| "B344008C", |
| "ledbra %f8, 0, %f12, 0", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::Cvt64To32, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001838C5", |
| "wledb %v24, %f12, 0, 1", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::Cvt64x2To32x4, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001038C5", |
| "vledb %v24, %v12, 0, 1", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::Round32, |
| mode: FpuRoundMode::ToNegInfinity, |
| rd: writable_vr(8), |
| rn: vr(12), |
| }, |
| "B357708C", |
| "fiebr %f8, 7, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::Round64, |
| mode: FpuRoundMode::ToNegInfinity, |
| rd: writable_vr(8), |
| rn: vr(12), |
| }, |
| "B35F708C", |
| "fidbr %f8, 7, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::Round32, |
| mode: FpuRoundMode::ToPosInfinity, |
| rd: writable_vr(8), |
| rn: vr(12), |
| }, |
| "B357608C", |
| "fiebr %f8, 6, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::Round64, |
| mode: FpuRoundMode::ToPosInfinity, |
| rd: writable_vr(8), |
| rn: vr(12), |
| }, |
| "B35F608C", |
| "fidbr %f8, 6, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::Round32, |
| mode: FpuRoundMode::ToZero, |
| rd: writable_vr(8), |
| rn: vr(12), |
| }, |
| "B357508C", |
| "fiebr %f8, 5, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::Round64, |
| mode: FpuRoundMode::ToZero, |
| rd: writable_vr(8), |
| rn: vr(12), |
| }, |
| "B35F508C", |
| "fidbr %f8, 5, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::Round32, |
| mode: FpuRoundMode::ToNearestTiesToEven, |
| rd: writable_vr(8), |
| rn: vr(12), |
| }, |
| "B357408C", |
| "fiebr %f8, 4, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::Round64, |
| mode: FpuRoundMode::ToNearestTiesToEven, |
| rd: writable_vr(8), |
| rn: vr(12), |
| }, |
| "B35F408C", |
| "fidbr %f8, 4, %f12", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::Round32, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001828C7", |
| "wfisb %v24, %f12, 0, 1", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::Round32x4, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001028C7", |
| "vfisb %v24, %v12, 0, 1", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::Round64, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001838C7", |
| "wfidb %v24, %f12, 0, 1", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::Round64x2, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001038C7", |
| "vfidb %v24, %v12, 0, 1", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::ToSInt32, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001828C2", |
| "wcfeb %v24, %f12, 0, 1", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::ToSInt32x4, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001028C2", |
| "vcfeb %v24, %v12, 0, 1", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::ToSInt64, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001838C2", |
| "wcgdb %v24, %f12, 0, 1", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::ToSInt64x2, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001038C2", |
| "vcgdb %v24, %v12, 0, 1", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::ToUInt32, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001828C0", |
| "wclfeb %v24, %f12, 0, 1", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::ToUInt32x4, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001028C0", |
| "vclfeb %v24, %v12, 0, 1", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::ToUInt64, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001838C0", |
| "wclgdb %v24, %f12, 0, 1", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::ToUInt64x2, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001038C0", |
| "vclgdb %v24, %v12, 0, 1", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::FromSInt32, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001828C3", |
| "wcefb %v24, %f12, 0, 1", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::FromSInt32x4, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001028C3", |
| "vcefb %v24, %v12, 0, 1", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::FromSInt64, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001838C3", |
| "wcdgb %v24, %f12, 0, 1", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::FromSInt64x2, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001038C3", |
| "vcdgb %v24, %v12, 0, 1", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::FromUInt32, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001828C1", |
| "wcelfb %v24, %f12, 0, 1", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::FromUInt32x4, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001028C1", |
| "vcelfb %v24, %v12, 0, 1", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::FromUInt64, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001838C1", |
| "wcdlgb %v24, %f12, 0, 1", |
| )); |
| insns.push(( |
| Inst::FpuRound { |
| op: FpuRoundOp::FromUInt64x2, |
| mode: FpuRoundMode::ToNearest, |
| rd: writable_vr(24), |
| rn: vr(12), |
| }, |
| "E78C001038C1", |
| "vcdlgb %v24, %v12, 0, 1", |
| )); |
| |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::Add8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00008F3", |
| "vab %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::Add16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00018F3", |
| "vah %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::Add32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028F3", |
| "vaf %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::Add64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00038F3", |
| "vag %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::Add128, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00048F3", |
| "vaq %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::Sub8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00008F7", |
| "vsb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::Sub16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00018F7", |
| "vsh %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::Sub32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028F7", |
| "vsf %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::Sub64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00038F7", |
| "vsg %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::Sub128, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00048F7", |
| "vsq %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::Mul8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00008A2", |
| "vmlb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::Mul16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00018A2", |
| "vmlhw %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::Mul32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028A2", |
| "vmlf %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::UMulHi8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00008A1", |
| "vmlhb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::UMulHi16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00018A1", |
| "vmlhh %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::UMulHi32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028A1", |
| "vmlhf %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::SMulHi8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00008A3", |
| "vmhb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::SMulHi16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00018A3", |
| "vmhh %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::SMulHi32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028A3", |
| "vmhf %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::UMulEven8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00008A4", |
| "vmleb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::UMulEven16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00018A4", |
| "vmleh %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::UMulEven32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028A4", |
| "vmlef %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::SMulEven8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00008A6", |
| "vmeb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::SMulEven16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00018A6", |
| "vmeh %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::SMulEven32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028A6", |
| "vmef %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::UMulOdd8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00008A5", |
| "vmlob %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::UMulOdd16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00018A5", |
| "vmloh %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::UMulOdd32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028A5", |
| "vmlof %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::SMulOdd8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00008A7", |
| "vmob %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::SMulOdd16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00018A7", |
| "vmoh %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::SMulOdd32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028A7", |
| "vmof %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::UMax8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00008FD", |
| "vmxlb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::UMax16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00018FD", |
| "vmxlh %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::UMax32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028FD", |
| "vmxlf %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::UMax64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00038FD", |
| "vmxlg %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::SMax8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00008FF", |
| "vmxb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::SMax16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00018FF", |
| "vmxh %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::SMax32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028FF", |
| "vmxf %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::SMax64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00038FF", |
| "vmxg %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::UMin8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00008FC", |
| "vmnlb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::UMin16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00018FC", |
| "vmnlh %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::UMin32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028FC", |
| "vmnlf %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::UMin64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00038FC", |
| "vmnlg %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::SMin8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00008FE", |
| "vmnb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::SMin16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00018FE", |
| "vmnh %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::SMin32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028FE", |
| "vmnf %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::SMin64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00038FE", |
| "vmng %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::UAvg8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00008F0", |
| "vavglb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::UAvg16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00018F0", |
| "vavglh %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::UAvg32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028F0", |
| "vavglf %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::UAvg64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00038F0", |
| "vavglg %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::SAvg8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00008F2", |
| "vavgb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::SAvg16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00018F2", |
| "vavgh %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::SAvg32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028F2", |
| "vavgf %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::SAvg64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00038F2", |
| "vavgg %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::And128, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0000868", |
| "vn %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::Orr128, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C000086A", |
| "vo %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::Xor128, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C000086D", |
| "vx %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::NotAnd128, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C000086E", |
| "vnn %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::NotOrr128, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C000086B", |
| "vno %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::NotXor128, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C000086C", |
| "vnx %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::AndNot128, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0000869", |
| "vnc %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::OrrNot128, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C000086F", |
| "voc %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::BitPermute128, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0000885", |
| "vbperm %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::LShLByByte128, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0000875", |
| "vslb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::LShRByByte128, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C000087D", |
| "vsrlb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::AShRByByte128, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C000087F", |
| "vsrab %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::LShLByBit128, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0000874", |
| "vsl %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::LShRByBit128, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C000087C", |
| "vsrl %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::AShRByBit128, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C000087E", |
| "vsra %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::Pack16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0001894", |
| "vpkh %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::Pack32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0002894", |
| "vpkf %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::Pack64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0003894", |
| "vpkg %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::PackUSat16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0001895", |
| "vpklsh %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::PackUSat32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0002895", |
| "vpklsf %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::PackUSat64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0003895", |
| "vpklsg %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::PackSSat16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0001897", |
| "vpksh %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::PackSSat32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0002897", |
| "vpksf %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::PackSSat64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0003897", |
| "vpksg %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::MergeLow8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0000860", |
| "vmrlb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::MergeLow16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0001860", |
| "vmrlh %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::MergeLow32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0002860", |
| "vmrlf %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::MergeLow64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0003860", |
| "vmrlg %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::MergeHigh8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0000861", |
| "vmrhb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::MergeHigh16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0001861", |
| "vmrhh %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::MergeHigh32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0002861", |
| "vmrhf %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecRRR { |
| op: VecBinaryOp::MergeHigh64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C0003861", |
| "vmrhg %v20, %v8, %v12", |
| )); |
| |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::Abs8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E748000008DF", |
| "vlpb %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::Abs16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E748000018DF", |
| "vlph %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::Abs32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E748000028DF", |
| "vlpf %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::Abs64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E748000038DF", |
| "vlpg %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::Neg8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E748000008DE", |
| "vlcb %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::Neg16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E748000018DE", |
| "vlch %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::Neg32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E748000028DE", |
| "vlcf %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::Neg64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E748000038DE", |
| "vlcg %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::Popcnt8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E74800000850", |
| "vpopctb %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::Popcnt16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E74800001850", |
| "vpopcth %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::Popcnt32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E74800002850", |
| "vpopctf %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::Popcnt64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E74800003850", |
| "vpopctg %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::Clz8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E74800000853", |
| "vclzb %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::Clz16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E74800001853", |
| "vclzh %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::Clz32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E74800002853", |
| "vclzf %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::Clz64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E74800003853", |
| "vclzg %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::Ctz8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E74800000852", |
| "vctzb %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::Ctz16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E74800001852", |
| "vctzh %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::Ctz32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E74800002852", |
| "vctzf %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::Ctz64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E74800003852", |
| "vctzg %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::UnpackULow8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E748000008D4", |
| "vupllb %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::UnpackULow16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E748000018D4", |
| "vupllh %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::UnpackULow32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E748000028D4", |
| "vupllf %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::UnpackUHigh8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E748000008D5", |
| "vuplhb %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::UnpackUHigh16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E748000018D5", |
| "vuplhh %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::UnpackUHigh32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E748000028D5", |
| "vuplhf %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::UnpackSLow8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E748000008D6", |
| "vuplb %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::UnpackSLow16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E748000018D6", |
| "vuplh %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::UnpackSLow32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E748000028D6", |
| "vuplf %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::UnpackSHigh8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E748000008D7", |
| "vuphb %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::UnpackSHigh16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E748000018D7", |
| "vuphh %v20, %v8", |
| )); |
| insns.push(( |
| Inst::VecRR { |
| op: VecUnaryOp::UnpackSHigh32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| }, |
| "E748000028D7", |
| "vuphf %v20, %v8", |
| )); |
| |
| insns.push(( |
| Inst::VecShiftRR { |
| shift_op: VecShiftOp::RotL8x16, |
| rd: writable_vr(20), |
| rn: vr(5), |
| shift_imm: 3, |
| shift_reg: gpr(6), |
| }, |
| "E74560030833", |
| "verllb %v20, %v5, 3(%r6)", |
| )); |
| insns.push(( |
| Inst::VecShiftRR { |
| shift_op: VecShiftOp::RotL16x8, |
| rd: writable_vr(20), |
| rn: vr(5), |
| shift_imm: 3, |
| shift_reg: gpr(6), |
| }, |
| "E74560031833", |
| "verllh %v20, %v5, 3(%r6)", |
| )); |
| insns.push(( |
| Inst::VecShiftRR { |
| shift_op: VecShiftOp::RotL32x4, |
| rd: writable_vr(20), |
| rn: vr(5), |
| shift_imm: 3, |
| shift_reg: gpr(6), |
| }, |
| "E74560032833", |
| "verllf %v20, %v5, 3(%r6)", |
| )); |
| insns.push(( |
| Inst::VecShiftRR { |
| shift_op: VecShiftOp::RotL64x2, |
| rd: writable_vr(20), |
| rn: vr(5), |
| shift_imm: 3, |
| shift_reg: gpr(6), |
| }, |
| "E74560033833", |
| "verllg %v20, %v5, 3(%r6)", |
| )); |
| insns.push(( |
| Inst::VecShiftRR { |
| shift_op: VecShiftOp::LShL8x16, |
| rd: writable_vr(20), |
| rn: vr(5), |
| shift_imm: 3, |
| shift_reg: gpr(6), |
| }, |
| "E74560030830", |
| "veslb %v20, %v5, 3(%r6)", |
| )); |
| insns.push(( |
| Inst::VecShiftRR { |
| shift_op: VecShiftOp::LShL16x8, |
| rd: writable_vr(20), |
| rn: vr(5), |
| shift_imm: 3, |
| shift_reg: gpr(6), |
| }, |
| "E74560031830", |
| "veslh %v20, %v5, 3(%r6)", |
| )); |
| insns.push(( |
| Inst::VecShiftRR { |
| shift_op: VecShiftOp::LShL32x4, |
| rd: writable_vr(20), |
| rn: vr(5), |
| shift_imm: 3, |
| shift_reg: gpr(6), |
| }, |
| "E74560032830", |
| "veslf %v20, %v5, 3(%r6)", |
| )); |
| insns.push(( |
| Inst::VecShiftRR { |
| shift_op: VecShiftOp::LShL64x2, |
| rd: writable_vr(20), |
| rn: vr(5), |
| shift_imm: 3, |
| shift_reg: gpr(6), |
| }, |
| "E74560033830", |
| "veslg %v20, %v5, 3(%r6)", |
| )); |
| insns.push(( |
| Inst::VecShiftRR { |
| shift_op: VecShiftOp::LShR8x16, |
| rd: writable_vr(20), |
| rn: vr(5), |
| shift_imm: 3, |
| shift_reg: gpr(6), |
| }, |
| "E74560030838", |
| "vesrlb %v20, %v5, 3(%r6)", |
| )); |
| insns.push(( |
| Inst::VecShiftRR { |
| shift_op: VecShiftOp::LShR16x8, |
| rd: writable_vr(20), |
| rn: vr(5), |
| shift_imm: 3, |
| shift_reg: gpr(6), |
| }, |
| "E74560031838", |
| "vesrlh %v20, %v5, 3(%r6)", |
| )); |
| insns.push(( |
| Inst::VecShiftRR { |
| shift_op: VecShiftOp::LShR32x4, |
| rd: writable_vr(20), |
| rn: vr(5), |
| shift_imm: 3, |
| shift_reg: gpr(6), |
| }, |
| "E74560032838", |
| "vesrlf %v20, %v5, 3(%r6)", |
| )); |
| insns.push(( |
| Inst::VecShiftRR { |
| shift_op: VecShiftOp::LShR64x2, |
| rd: writable_vr(20), |
| rn: vr(5), |
| shift_imm: 3, |
| shift_reg: gpr(6), |
| }, |
| "E74560033838", |
| "vesrlg %v20, %v5, 3(%r6)", |
| )); |
| insns.push(( |
| Inst::VecShiftRR { |
| shift_op: VecShiftOp::AShR8x16, |
| rd: writable_vr(20), |
| rn: vr(5), |
| shift_imm: 3, |
| shift_reg: gpr(6), |
| }, |
| "E7456003083A", |
| "vesrab %v20, %v5, 3(%r6)", |
| )); |
| insns.push(( |
| Inst::VecShiftRR { |
| shift_op: VecShiftOp::AShR16x8, |
| rd: writable_vr(20), |
| rn: vr(5), |
| shift_imm: 3, |
| shift_reg: gpr(6), |
| }, |
| "E7456003183A", |
| "vesrah %v20, %v5, 3(%r6)", |
| )); |
| insns.push(( |
| Inst::VecShiftRR { |
| shift_op: VecShiftOp::AShR32x4, |
| rd: writable_vr(20), |
| rn: vr(5), |
| shift_imm: 3, |
| shift_reg: gpr(6), |
| }, |
| "E7456003283A", |
| "vesraf %v20, %v5, 3(%r6)", |
| )); |
| insns.push(( |
| Inst::VecShiftRR { |
| shift_op: VecShiftOp::AShR64x2, |
| rd: writable_vr(20), |
| rn: vr(5), |
| shift_imm: 3, |
| shift_reg: gpr(6), |
| }, |
| "E7456003383A", |
| "vesrag %v20, %v5, 3(%r6)", |
| )); |
| |
| insns.push(( |
| Inst::VecSelect { |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(8), |
| ra: vr(10), |
| }, |
| "E7468000A08D", |
| "vsel %v4, %v6, %v8, %v10", |
| )); |
| insns.push(( |
| Inst::VecSelect { |
| rd: writable_vr(20), |
| rn: vr(6), |
| rm: vr(8), |
| ra: vr(10), |
| }, |
| "E7468000A88D", |
| "vsel %v20, %v6, %v8, %v10", |
| )); |
| insns.push(( |
| Inst::VecSelect { |
| rd: writable_vr(4), |
| rn: vr(22), |
| rm: vr(8), |
| ra: vr(10), |
| }, |
| "E7468000A48D", |
| "vsel %v4, %v22, %v8, %v10", |
| )); |
| insns.push(( |
| Inst::VecSelect { |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(24), |
| ra: vr(10), |
| }, |
| "E7468000A28D", |
| "vsel %v4, %v6, %v24, %v10", |
| )); |
| insns.push(( |
| Inst::VecSelect { |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(8), |
| ra: vr(26), |
| }, |
| "E7468000A18D", |
| "vsel %v4, %v6, %v8, %v26", |
| )); |
| insns.push(( |
| Inst::VecSelect { |
| rd: writable_vr(20), |
| rn: vr(22), |
| rm: vr(24), |
| ra: vr(26), |
| }, |
| "E7468000AF8D", |
| "vsel %v20, %v22, %v24, %v26", |
| )); |
| insns.push(( |
| Inst::VecPermute { |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(8), |
| ra: vr(10), |
| }, |
| "E7468000A08C", |
| "vperm %v4, %v6, %v8, %v10", |
| )); |
| insns.push(( |
| Inst::VecPermute { |
| rd: writable_vr(20), |
| rn: vr(6), |
| rm: vr(8), |
| ra: vr(10), |
| }, |
| "E7468000A88C", |
| "vperm %v20, %v6, %v8, %v10", |
| )); |
| insns.push(( |
| Inst::VecPermute { |
| rd: writable_vr(4), |
| rn: vr(22), |
| rm: vr(8), |
| ra: vr(10), |
| }, |
| "E7468000A48C", |
| "vperm %v4, %v22, %v8, %v10", |
| )); |
| insns.push(( |
| Inst::VecPermute { |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(24), |
| ra: vr(10), |
| }, |
| "E7468000A28C", |
| "vperm %v4, %v6, %v24, %v10", |
| )); |
| insns.push(( |
| Inst::VecPermute { |
| rd: writable_vr(4), |
| rn: vr(6), |
| rm: vr(8), |
| ra: vr(26), |
| }, |
| "E7468000A18C", |
| "vperm %v4, %v6, %v8, %v26", |
| )); |
| insns.push(( |
| Inst::VecPermute { |
| rd: writable_vr(20), |
| rn: vr(22), |
| rm: vr(24), |
| ra: vr(26), |
| }, |
| "E7468000AF8C", |
| "vperm %v20, %v22, %v24, %v26", |
| )); |
| insns.push(( |
| Inst::VecPermuteDWImm { |
| rd: writable_vr(20), |
| rn: vr(6), |
| rm: vr(8), |
| idx1: 0, |
| idx2: 0, |
| }, |
| "E74680000884", |
| "vpdi %v20, %v6, %v8, 0", |
| )); |
| insns.push(( |
| Inst::VecPermuteDWImm { |
| rd: writable_vr(20), |
| rn: vr(6), |
| rm: vr(8), |
| idx1: 0, |
| idx2: 1, |
| }, |
| "E74680001884", |
| "vpdi %v20, %v6, %v8, 1", |
| )); |
| insns.push(( |
| Inst::VecPermuteDWImm { |
| rd: writable_vr(20), |
| rn: vr(6), |
| rm: vr(8), |
| idx1: 1, |
| idx2: 0, |
| }, |
| "E74680004884", |
| "vpdi %v20, %v6, %v8, 4", |
| )); |
| insns.push(( |
| Inst::VecPermuteDWImm { |
| rd: writable_vr(20), |
| rn: vr(6), |
| rm: vr(8), |
| idx1: 1, |
| idx2: 1, |
| }, |
| "E74680005884", |
| "vpdi %v20, %v6, %v8, 5", |
| )); |
| |
| insns.push(( |
| Inst::VecIntCmp { |
| op: VecIntCmpOp::CmpEq8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00008F8", |
| "vceqb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmp { |
| op: VecIntCmpOp::CmpEq16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00018F8", |
| "vceqh %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmp { |
| op: VecIntCmpOp::CmpEq32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028F8", |
| "vceqf %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmp { |
| op: VecIntCmpOp::CmpEq64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00038F8", |
| "vceqg %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmp { |
| op: VecIntCmpOp::SCmpHi8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00008FB", |
| "vchb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmp { |
| op: VecIntCmpOp::SCmpHi16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00018FB", |
| "vchh %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmp { |
| op: VecIntCmpOp::SCmpHi32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028FB", |
| "vchf %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmp { |
| op: VecIntCmpOp::SCmpHi64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00038FB", |
| "vchg %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmp { |
| op: VecIntCmpOp::UCmpHi8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00008F9", |
| "vchlb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmp { |
| op: VecIntCmpOp::UCmpHi16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00018F9", |
| "vchlh %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmp { |
| op: VecIntCmpOp::UCmpHi32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028F9", |
| "vchlf %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmp { |
| op: VecIntCmpOp::UCmpHi64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00038F9", |
| "vchlg %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmpS { |
| op: VecIntCmpOp::CmpEq8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C01008F8", |
| "vceqbs %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmpS { |
| op: VecIntCmpOp::CmpEq16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C01018F8", |
| "vceqhs %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmpS { |
| op: VecIntCmpOp::CmpEq32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C01028F8", |
| "vceqfs %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmpS { |
| op: VecIntCmpOp::CmpEq64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C01038F8", |
| "vceqgs %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmpS { |
| op: VecIntCmpOp::SCmpHi8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C01008FB", |
| "vchbs %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmpS { |
| op: VecIntCmpOp::SCmpHi16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C01018FB", |
| "vchhs %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmpS { |
| op: VecIntCmpOp::SCmpHi32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C01028FB", |
| "vchfs %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmpS { |
| op: VecIntCmpOp::SCmpHi64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C01038FB", |
| "vchgs %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmpS { |
| op: VecIntCmpOp::UCmpHi8x16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C01008F9", |
| "vchlbs %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmpS { |
| op: VecIntCmpOp::UCmpHi16x8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C01018F9", |
| "vchlhs %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmpS { |
| op: VecIntCmpOp::UCmpHi32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C01028F9", |
| "vchlfs %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecIntCmpS { |
| op: VecIntCmpOp::UCmpHi64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C01038F9", |
| "vchlgs %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecInt128SCmpHi { |
| tmp: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E7C8000030DBA7740005E748C01038F9", |
| "vecg %v12, %v8 ; jne 10 ; vchlgs %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecInt128UCmpHi { |
| tmp: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E7C8000030D9A7740005E748C01038F9", |
| "veclg %v12, %v8 ; jne 10 ; vchlgs %v20, %v8, %v12", |
| )); |
| |
| insns.push(( |
| Inst::VecFloatCmp { |
| op: VecFloatCmpOp::CmpEq32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028E8", |
| "vfcesb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecFloatCmp { |
| op: VecFloatCmpOp::CmpEq64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00038E8", |
| "vfcedb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecFloatCmp { |
| op: VecFloatCmpOp::CmpHi32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028EB", |
| "vfchsb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecFloatCmp { |
| op: VecFloatCmpOp::CmpHi64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00038EB", |
| "vfchdb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecFloatCmp { |
| op: VecFloatCmpOp::CmpHiEq32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00028EA", |
| "vfchesb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecFloatCmp { |
| op: VecFloatCmpOp::CmpHiEq64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C00038EA", |
| "vfchedb %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecFloatCmpS { |
| op: VecFloatCmpOp::CmpEq32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C01028E8", |
| "vfcesbs %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecFloatCmpS { |
| op: VecFloatCmpOp::CmpEq64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C01038E8", |
| "vfcedbs %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecFloatCmpS { |
| op: VecFloatCmpOp::CmpHi32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C01028EB", |
| "vfchsbs %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecFloatCmpS { |
| op: VecFloatCmpOp::CmpHi64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C01038EB", |
| "vfchdbs %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecFloatCmpS { |
| op: VecFloatCmpOp::CmpHiEq32x4, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C01028EA", |
| "vfchesbs %v20, %v8, %v12", |
| )); |
| insns.push(( |
| Inst::VecFloatCmpS { |
| op: VecFloatCmpOp::CmpHiEq64x2, |
| rd: writable_vr(20), |
| rn: vr(8), |
| rm: vr(12), |
| }, |
| "E748C01038EA", |
| "vfchedbs %v20, %v8, %v12", |
| )); |
| |
| insns.push(( |
| Inst::VecLoad { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E71020000806", |
| "vl %v17, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoad { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E7102FFF0806", |
| "vl %v17, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoad { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E71230000806", |
| "vl %v17, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecLoadRev { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E61020004806", |
| "vlbrq %v17, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadRev { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6102FFF4806", |
| "vlbrq %v17, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadRev { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E61230004806", |
| "vlbrq %v17, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecLoadByte16Rev { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E61020001806", |
| "vlbrh %v17, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadByte16Rev { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6102FFF1806", |
| "vlbrh %v17, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadByte16Rev { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E61230001806", |
| "vlbrh %v17, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecLoadByte32Rev { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E61020002806", |
| "vlbrf %v17, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadByte32Rev { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6102FFF2806", |
| "vlbrf %v17, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadByte32Rev { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E61230002806", |
| "vlbrf %v17, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecLoadByte64Rev { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E61020003806", |
| "vlbrg %v17, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadByte64Rev { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6102FFF3806", |
| "vlbrg %v17, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadByte64Rev { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E61230003806", |
| "vlbrg %v17, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecLoadElt16Rev { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E61020001807", |
| "vlerh %v17, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadElt16Rev { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6102FFF1807", |
| "vlerh %v17, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadElt16Rev { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E61230001807", |
| "vlerh %v17, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecLoadElt32Rev { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E61020002807", |
| "vlerf %v17, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadElt32Rev { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6102FFF2807", |
| "vlerf %v17, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadElt32Rev { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E61230002807", |
| "vlerf %v17, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecLoadElt64Rev { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E61020003807", |
| "vlerg %v17, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadElt64Rev { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6102FFF3807", |
| "vlerg %v17, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadElt64Rev { |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E61230003807", |
| "vlerg %v17, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecStore { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E7102000080E", |
| "vst %v17, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStore { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E7102FFF080E", |
| "vst %v17, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStore { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E7123000080E", |
| "vst %v17, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecStoreRev { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6102000480E", |
| "vstbrq %v17, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreRev { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6102FFF480E", |
| "vstbrq %v17, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreRev { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6123000480E", |
| "vstbrq %v17, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecStoreByte16Rev { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6102000180E", |
| "vstbrh %v17, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreByte16Rev { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6102FFF180E", |
| "vstbrh %v17, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreByte16Rev { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6123000180E", |
| "vstbrh %v17, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecStoreByte32Rev { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6102000280E", |
| "vstbrf %v17, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreByte32Rev { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6102FFF280E", |
| "vstbrf %v17, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreByte32Rev { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6123000280E", |
| "vstbrf %v17, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecStoreByte64Rev { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6102000380E", |
| "vstbrg %v17, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreByte64Rev { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6102FFF380E", |
| "vstbrg %v17, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreByte64Rev { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6123000380E", |
| "vstbrg %v17, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecStoreElt16Rev { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6102000180F", |
| "vsterh %v17, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreElt16Rev { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6102FFF180F", |
| "vsterh %v17, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreElt16Rev { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6123000180F", |
| "vsterh %v17, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecStoreElt32Rev { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6102000280F", |
| "vsterf %v17, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreElt32Rev { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6102FFF280F", |
| "vsterf %v17, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreElt32Rev { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6123000280F", |
| "vsterf %v17, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecStoreElt64Rev { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6102000380F", |
| "vsterg %v17, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreElt64Rev { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6102FFF380F", |
| "vsterg %v17, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreElt64Rev { |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E6123000380F", |
| "vsterg %v17, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecLoadReplicate { |
| size: 8, |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(128).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E71020800805", |
| "vlrepb %v17, 128(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadReplicate { |
| size: 16, |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(128).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E71020801805", |
| "vlreph %v17, 128(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadReplicate { |
| size: 32, |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(128).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E71020802805", |
| "vlrepf %v17, 128(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadReplicate { |
| size: 64, |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(128).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E71020803805", |
| "vlrepg %v17, 128(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadReplicateRev { |
| size: 16, |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(128).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E61020801805", |
| "vlbrreph %v17, 128(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadReplicateRev { |
| size: 32, |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(128).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E61020802805", |
| "vlbrrepf %v17, 128(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadReplicateRev { |
| size: 64, |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(128).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| }, |
| "E61020803805", |
| "vlbrrepg %v17, 128(%r2)", |
| )); |
| |
| insns.push(( |
| Inst::VecMov { |
| rd: writable_vr(8), |
| rn: vr(20), |
| }, |
| "E78400000456", |
| "vlr %v8, %v20", |
| )); |
| insns.push(( |
| Inst::VecCMov { |
| rd: writable_vr(8), |
| ri: vr(8), |
| rm: vr(20), |
| cond: Cond::from_mask(1), |
| }, |
| "A7E40005E78400000456", |
| "jno 10 ; vlr %v8, %v20", |
| )); |
| insns.push(( |
| Inst::MovToVec128 { |
| rd: writable_vr(20), |
| rn: gpr(5), |
| rm: gpr(6), |
| }, |
| "E74560000862", |
| "vlvgp %v20, %r5, %r6", |
| )); |
| insns.push(( |
| Inst::VecLoadConst { |
| rd: writable_vr(24), |
| const_data: 0x0102030405060708090a0b0c0d0e0fu128, |
| }, |
| "A715000A000102030405060708090A0B0C0D0E0FE78010000806", |
| "bras %r1, 20 ; data.u128 0x000102030405060708090a0b0c0d0e0f ; vl %v24, 0(%r1)", |
| )); |
| insns.push(( |
| Inst::VecLoadConstReplicate { |
| size: 64, |
| rd: writable_vr(24), |
| const_data: 0x01020304050607u64, |
| }, |
| "A71500060001020304050607E78010003805", |
| "bras %r1, 12 ; data.u64 0x0001020304050607 ; vlrepg %v24, 0(%r1)", |
| )); |
| insns.push(( |
| Inst::VecLoadConstReplicate { |
| size: 32, |
| rd: writable_vr(24), |
| const_data: 0x010203u64, |
| }, |
| "A715000400010203E78010002805", |
| "bras %r1, 8 ; data.u32 0x00010203 ; vlrepf %v24, 0(%r1)", |
| )); |
| |
| insns.push(( |
| Inst::VecImmByteMask { |
| rd: writable_vr(20), |
| mask: 0x1234, |
| }, |
| "E74012340844", |
| "vgbm %v20, 4660", |
| )); |
| insns.push(( |
| Inst::VecImmBitMask { |
| size: 8, |
| rd: writable_vr(20), |
| start_bit: 1, |
| end_bit: 7, |
| }, |
| "E74001070846", |
| "vgmb %v20, 1, 7", |
| )); |
| insns.push(( |
| Inst::VecImmBitMask { |
| size: 16, |
| rd: writable_vr(20), |
| start_bit: 1, |
| end_bit: 7, |
| }, |
| "E74001071846", |
| "vgmh %v20, 1, 7", |
| )); |
| insns.push(( |
| Inst::VecImmBitMask { |
| size: 32, |
| rd: writable_vr(20), |
| start_bit: 1, |
| end_bit: 7, |
| }, |
| "E74001072846", |
| "vgmf %v20, 1, 7", |
| )); |
| insns.push(( |
| Inst::VecImmBitMask { |
| size: 64, |
| rd: writable_vr(20), |
| start_bit: 1, |
| end_bit: 7, |
| }, |
| "E74001073846", |
| "vgmg %v20, 1, 7", |
| )); |
| insns.push(( |
| Inst::VecImmReplicate { |
| size: 8, |
| rd: writable_vr(20), |
| imm: 0x1234, |
| }, |
| "E74012340845", |
| "vrepib %v20, 4660", |
| )); |
| insns.push(( |
| Inst::VecImmReplicate { |
| size: 16, |
| rd: writable_vr(20), |
| imm: 0x1234, |
| }, |
| "E74012341845", |
| "vrepih %v20, 4660", |
| )); |
| insns.push(( |
| Inst::VecImmReplicate { |
| size: 32, |
| rd: writable_vr(20), |
| imm: 0x1234, |
| }, |
| "E74012342845", |
| "vrepif %v20, 4660", |
| )); |
| insns.push(( |
| Inst::VecImmReplicate { |
| size: 64, |
| rd: writable_vr(20), |
| imm: 0x1234, |
| }, |
| "E74012343845", |
| "vrepig %v20, 4660", |
| )); |
| |
| insns.push(( |
| Inst::VecLoadLane { |
| size: 8, |
| rd: writable_vr(17), |
| ri: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 15, |
| }, |
| "E7102000F800", |
| "vleb %v17, 0(%r2), 15", |
| )); |
| insns.push(( |
| Inst::VecLoadLane { |
| size: 8, |
| rd: writable_vr(17), |
| ri: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7102FFF0800", |
| "vleb %v17, 4095(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLane { |
| size: 8, |
| rd: writable_vr(17), |
| ri: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 15, |
| }, |
| "E7123000F800", |
| "vleb %v17, 0(%r2,%r3), 15", |
| )); |
| insns.push(( |
| Inst::VecLoadLane { |
| size: 8, |
| rd: writable_vr(17), |
| ri: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7123FFF0800", |
| "vleb %v17, 4095(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLane { |
| size: 16, |
| rd: writable_vr(17), |
| ri: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 7, |
| }, |
| "E71020007801", |
| "vleh %v17, 0(%r2), 7", |
| )); |
| insns.push(( |
| Inst::VecLoadLane { |
| size: 16, |
| rd: writable_vr(17), |
| ri: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7102FFF0801", |
| "vleh %v17, 4095(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLane { |
| size: 16, |
| rd: writable_vr(17), |
| ri: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 7, |
| }, |
| "E71230007801", |
| "vleh %v17, 0(%r2,%r3), 7", |
| )); |
| insns.push(( |
| Inst::VecLoadLane { |
| size: 16, |
| rd: writable_vr(17), |
| ri: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7123FFF0801", |
| "vleh %v17, 4095(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLane { |
| size: 32, |
| rd: writable_vr(17), |
| ri: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 3, |
| }, |
| "E71020003803", |
| "vlef %v17, 0(%r2), 3", |
| )); |
| insns.push(( |
| Inst::VecLoadLane { |
| size: 32, |
| rd: writable_vr(17), |
| ri: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7102FFF0803", |
| "vlef %v17, 4095(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLane { |
| size: 32, |
| rd: writable_vr(17), |
| ri: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 3, |
| }, |
| "E71230003803", |
| "vlef %v17, 0(%r2,%r3), 3", |
| )); |
| insns.push(( |
| Inst::VecLoadLane { |
| size: 32, |
| rd: writable_vr(17), |
| ri: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7123FFF0803", |
| "vlef %v17, 4095(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLane { |
| size: 64, |
| rd: writable_vr(17), |
| ri: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 1, |
| }, |
| "E71020001802", |
| "vleg %v17, 0(%r2), 1", |
| )); |
| insns.push(( |
| Inst::VecLoadLane { |
| size: 64, |
| rd: writable_vr(17), |
| ri: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7102FFF0802", |
| "vleg %v17, 4095(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLane { |
| size: 64, |
| rd: writable_vr(17), |
| ri: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 1, |
| }, |
| "E71230001802", |
| "vleg %v17, 0(%r2,%r3), 1", |
| )); |
| insns.push(( |
| Inst::VecLoadLane { |
| size: 64, |
| rd: writable_vr(17), |
| ri: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7123FFF0802", |
| "vleg %v17, 4095(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 32, |
| rd: writable_vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "78102000", |
| "le %f1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 32, |
| rd: writable_vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "78102FFF", |
| "le %f1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 32, |
| rd: writable_vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "ED1020008064", |
| "ley %f1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 32, |
| rd: writable_vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "ED102FFF7F64", |
| "ley %f1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 32, |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E71020000803", |
| "vlef %v17, 0(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 32, |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7102FFF0803", |
| "vlef %v17, 4095(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 32, |
| rd: writable_vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "78123000", |
| "le %f1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 32, |
| rd: writable_vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "78123FFF", |
| "le %f1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 32, |
| rd: writable_vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "ED1230008064", |
| "ley %f1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 32, |
| rd: writable_vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "ED123FFF7F64", |
| "ley %f1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 32, |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E71230000803", |
| "vlef %v17, 0(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 32, |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7123FFF0803", |
| "vlef %v17, 4095(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 64, |
| rd: writable_vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "68102000", |
| "ld %f1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 64, |
| rd: writable_vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "68102FFF", |
| "ld %f1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 64, |
| rd: writable_vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "ED1020008065", |
| "ldy %f1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 64, |
| rd: writable_vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "ED102FFF7F65", |
| "ldy %f1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 64, |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E71020000802", |
| "vleg %v17, 0(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 64, |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7102FFF0802", |
| "vleg %v17, 4095(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 64, |
| rd: writable_vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "68123000", |
| "ld %f1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 64, |
| rd: writable_vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "68123FFF", |
| "ld %f1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 64, |
| rd: writable_vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "ED1230008065", |
| "ldy %f1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 64, |
| rd: writable_vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "ED123FFF7F65", |
| "ldy %f1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 64, |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E71230000802", |
| "vleg %v17, 0(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneUndef { |
| size: 64, |
| rd: writable_vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7123FFF0802", |
| "vleg %v17, 4095(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 8, |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 15, |
| }, |
| "E7102000F808", |
| "vsteb %v17, 0(%r2), 15", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 8, |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7102FFF0808", |
| "vsteb %v17, 4095(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 8, |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 15, |
| }, |
| "E7123000F808", |
| "vsteb %v17, 0(%r2,%r3), 15", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 8, |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7123FFF0808", |
| "vsteb %v17, 4095(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 16, |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 7, |
| }, |
| "E71020007809", |
| "vsteh %v17, 0(%r2), 7", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 16, |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7102FFF0809", |
| "vsteh %v17, 4095(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 16, |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 7, |
| }, |
| "E71230007809", |
| "vsteh %v17, 0(%r2,%r3), 7", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 16, |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7123FFF0809", |
| "vsteh %v17, 4095(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 32, |
| rd: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "70102000", |
| "ste %f1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 32, |
| rd: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "70102FFF", |
| "ste %f1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 32, |
| rd: vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "ED1020008066", |
| "stey %f1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 32, |
| rd: vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "ED102FFF7F66", |
| "stey %f1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 32, |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7102000080B", |
| "vstef %v17, 0(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 32, |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7102FFF080B", |
| "vstef %v17, 4095(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 32, |
| rd: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "70123000", |
| "ste %f1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 32, |
| rd: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "70123FFF", |
| "ste %f1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 32, |
| rd: vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "ED1230008066", |
| "stey %f1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 32, |
| rd: vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "ED123FFF7F66", |
| "stey %f1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 32, |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7123000080B", |
| "vstef %v17, 0(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 32, |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7123FFF080B", |
| "vstef %v17, 4095(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 64, |
| rd: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "60102000", |
| "std %f1, 0(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 64, |
| rd: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "60102FFF", |
| "std %f1, 4095(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 64, |
| rd: vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "ED1020008067", |
| "stdy %f1, -524288(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 64, |
| rd: vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "ED102FFF7F67", |
| "stdy %f1, 524287(%r2)", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 64, |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7102000080A", |
| "vsteg %v17, 0(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 64, |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7102FFF080A", |
| "vsteg %v17, 4095(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 64, |
| rd: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "60123000", |
| "std %f1, 0(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 64, |
| rd: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "60123FFF", |
| "std %f1, 4095(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 64, |
| rd: vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "ED1230008067", |
| "stdy %f1, -524288(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 64, |
| rd: vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "ED123FFF7F67", |
| "stdy %f1, 524287(%r2,%r3)", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 64, |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7123000080A", |
| "vsteg %v17, 0(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLane { |
| size: 64, |
| rd: vr(17), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E7123FFF080A", |
| "vsteg %v17, 4095(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRev { |
| size: 16, |
| rd: writable_vr(1), |
| ri: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E61020000001", |
| "vlebrh %v1, 0(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRev { |
| size: 16, |
| rd: writable_vr(1), |
| ri: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E6102FFF0001", |
| "vlebrh %v1, 4095(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRev { |
| size: 16, |
| rd: writable_vr(1), |
| ri: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E61230000001", |
| "vlebrh %v1, 0(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRev { |
| size: 16, |
| rd: writable_vr(1), |
| ri: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E6123FFF0001", |
| "vlebrh %v1, 4095(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRev { |
| size: 32, |
| rd: writable_vr(1), |
| ri: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E61020000003", |
| "vlebrf %v1, 0(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRev { |
| size: 32, |
| rd: writable_vr(1), |
| ri: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E6102FFF0003", |
| "vlebrf %v1, 4095(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRev { |
| size: 32, |
| rd: writable_vr(1), |
| ri: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E61230000003", |
| "vlebrf %v1, 0(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRev { |
| size: 32, |
| rd: writable_vr(1), |
| ri: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E6123FFF0003", |
| "vlebrf %v1, 4095(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRev { |
| size: 64, |
| rd: writable_vr(1), |
| ri: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E61020000002", |
| "vlebrg %v1, 0(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRev { |
| size: 64, |
| rd: writable_vr(1), |
| ri: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E6102FFF0002", |
| "vlebrg %v1, 4095(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRev { |
| size: 64, |
| rd: writable_vr(1), |
| ri: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E61230000002", |
| "vlebrg %v1, 0(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRev { |
| size: 64, |
| rd: writable_vr(1), |
| ri: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E6123FFF0002", |
| "vlebrg %v1, 4095(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRevUndef { |
| size: 32, |
| rd: writable_vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E61020000003", |
| "vlebrf %v1, 0(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRevUndef { |
| size: 32, |
| rd: writable_vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E6102FFF0003", |
| "vlebrf %v1, 4095(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRevUndef { |
| size: 32, |
| rd: writable_vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E31020008071E61010000003", |
| "lay %r1, -524288(%r2) ; vlebrf %v1, 0(%r1), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRevUndef { |
| size: 32, |
| rd: writable_vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E3102FFF7F71E61010000003", |
| "lay %r1, 524287(%r2) ; vlebrf %v1, 0(%r1), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRevUndef { |
| size: 32, |
| rd: writable_vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E61230000003", |
| "vlebrf %v1, 0(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRevUndef { |
| size: 32, |
| rd: writable_vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E6123FFF0003", |
| "vlebrf %v1, 4095(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRevUndef { |
| size: 32, |
| rd: writable_vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E31230008071E61010000003", |
| "lay %r1, -524288(%r2,%r3) ; vlebrf %v1, 0(%r1), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRevUndef { |
| size: 32, |
| rd: writable_vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E3123FFF7F71E61010000003", |
| "lay %r1, 524287(%r2,%r3) ; vlebrf %v1, 0(%r1), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRevUndef { |
| size: 64, |
| rd: writable_vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E61020000002", |
| "vlebrg %v1, 0(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRevUndef { |
| size: 64, |
| rd: writable_vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E6102FFF0002", |
| "vlebrg %v1, 4095(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRevUndef { |
| size: 64, |
| rd: writable_vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E31020008071E61010000002", |
| "lay %r1, -524288(%r2) ; vlebrg %v1, 0(%r1), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRevUndef { |
| size: 64, |
| rd: writable_vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E3102FFF7F71E61010000002", |
| "lay %r1, 524287(%r2) ; vlebrg %v1, 0(%r1), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRevUndef { |
| size: 64, |
| rd: writable_vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E61230000002", |
| "vlebrg %v1, 0(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRevUndef { |
| size: 64, |
| rd: writable_vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E6123FFF0002", |
| "vlebrg %v1, 4095(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRevUndef { |
| size: 64, |
| rd: writable_vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E31230008071E61010000002", |
| "lay %r1, -524288(%r2,%r3) ; vlebrg %v1, 0(%r1), 0", |
| )); |
| insns.push(( |
| Inst::VecLoadLaneRevUndef { |
| size: 64, |
| rd: writable_vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E3123FFF7F71E61010000002", |
| "lay %r1, 524287(%r2,%r3) ; vlebrg %v1, 0(%r1), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLaneRev { |
| size: 16, |
| rd: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 7, |
| }, |
| "E61020007009", |
| "vstebrh %v1, 0(%r2), 7", |
| )); |
| insns.push(( |
| Inst::VecStoreLaneRev { |
| size: 16, |
| rd: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E6102FFF0009", |
| "vstebrh %v1, 4095(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLaneRev { |
| size: 16, |
| rd: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 7, |
| }, |
| "E61230007009", |
| "vstebrh %v1, 0(%r2,%r3), 7", |
| )); |
| insns.push(( |
| Inst::VecStoreLaneRev { |
| size: 16, |
| rd: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E6123FFF0009", |
| "vstebrh %v1, 4095(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLaneRev { |
| size: 32, |
| rd: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E6102000000B", |
| "vstebrf %v1, 0(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLaneRev { |
| size: 32, |
| rd: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E6102FFF000B", |
| "vstebrf %v1, 4095(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLaneRev { |
| size: 32, |
| rd: vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E31020008071E6101000000B", |
| "lay %r1, -524288(%r2) ; vstebrf %v1, 0(%r1), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLaneRev { |
| size: 32, |
| rd: vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E3102FFF7F71E6101000000B", |
| "lay %r1, 524287(%r2) ; vstebrf %v1, 0(%r1), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLaneRev { |
| size: 32, |
| rd: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E6123000000B", |
| "vstebrf %v1, 0(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLaneRev { |
| size: 32, |
| rd: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E6123FFF000B", |
| "vstebrf %v1, 4095(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLaneRev { |
| size: 32, |
| rd: vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E31230008071E6101000000B", |
| "lay %r1, -524288(%r2,%r3) ; vstebrf %v1, 0(%r1), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLaneRev { |
| size: 32, |
| rd: vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E3123FFF7F71E6101000000B", |
| "lay %r1, 524287(%r2,%r3) ; vstebrf %v1, 0(%r1), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLaneRev { |
| size: 64, |
| rd: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E6102000000A", |
| "vstebrg %v1, 0(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLaneRev { |
| size: 64, |
| rd: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E6102FFF000A", |
| "vstebrg %v1, 4095(%r2), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLaneRev { |
| size: 64, |
| rd: vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E31020008071E6101000000A", |
| "lay %r1, -524288(%r2) ; vstebrg %v1, 0(%r1), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLaneRev { |
| size: 64, |
| rd: vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(2), |
| index: zero_reg(), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E3102FFF7F71E6101000000A", |
| "lay %r1, 524287(%r2) ; vstebrg %v1, 0(%r1), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLaneRev { |
| size: 64, |
| rd: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::zero(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E6123000000A", |
| "vstebrg %v1, 0(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLaneRev { |
| size: 64, |
| rd: vr(1), |
| mem: MemArg::BXD12 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: UImm12::maybe_from_u64(4095).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E6123FFF000A", |
| "vstebrg %v1, 4095(%r2,%r3), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLaneRev { |
| size: 64, |
| rd: vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(-524288).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E31230008071E6101000000A", |
| "lay %r1, -524288(%r2,%r3) ; vstebrg %v1, 0(%r1), 0", |
| )); |
| insns.push(( |
| Inst::VecStoreLaneRev { |
| size: 64, |
| rd: vr(1), |
| mem: MemArg::BXD20 { |
| base: gpr(3), |
| index: gpr(2), |
| disp: SImm20::maybe_from_i64(524287).unwrap(), |
| flags: MemFlags::trusted(), |
| }, |
| lane_imm: 0, |
| }, |
| "E3123FFF7F71E6101000000A", |
| "lay %r1, 524287(%r2,%r3) ; vstebrg %v1, 0(%r1), 0", |
| )); |
| |
| insns.push(( |
| Inst::VecInsertLane { |
| size: 8, |
| rd: writable_vr(8), |
| ri: vr(8), |
| rn: gpr(4), |
| lane_imm: 0, |
| lane_reg: zero_reg(), |
| }, |
| "E78400000022", |
| "vlvgb %v8, %r4, 0", |
| )); |
| insns.push(( |
| Inst::VecInsertLane { |
| size: 8, |
| rd: writable_vr(8), |
| ri: vr(8), |
| rn: gpr(4), |
| lane_imm: 255, |
| lane_reg: zero_reg(), |
| }, |
| "E78400FF0022", |
| "vlvgb %v8, %r4, 255", |
| )); |
| insns.push(( |
| Inst::VecInsertLane { |
| size: 8, |
| rd: writable_vr(24), |
| ri: vr(24), |
| rn: gpr(4), |
| lane_imm: 0, |
| lane_reg: gpr(3), |
| }, |
| "E78430000822", |
| "vlvgb %v24, %r4, 0(%r3)", |
| )); |
| insns.push(( |
| Inst::VecInsertLane { |
| size: 16, |
| rd: writable_vr(8), |
| ri: vr(8), |
| rn: gpr(4), |
| lane_imm: 0, |
| lane_reg: zero_reg(), |
| }, |
| "E78400001022", |
| "vlvgh %v8, %r4, 0", |
| )); |
| insns.push(( |
| Inst::VecInsertLane { |
| size: 16, |
| rd: writable_vr(8), |
| ri: vr(8), |
| rn: gpr(4), |
| lane_imm: 255, |
| lane_reg: zero_reg(), |
| }, |
| "E78400FF1022", |
| "vlvgh %v8, %r4, 255", |
| )); |
| insns.push(( |
| Inst::VecInsertLane { |
| size: 16, |
| rd: writable_vr(24), |
| ri: vr(24), |
| rn: gpr(4), |
| lane_imm: 0, |
| lane_reg: gpr(3), |
| }, |
| "E78430001822", |
| "vlvgh %v24, %r4, 0(%r3)", |
| )); |
| insns.push(( |
| Inst::VecInsertLane { |
| size: 32, |
| rd: writable_vr(8), |
| ri: vr(8), |
| rn: gpr(4), |
| lane_imm: 0, |
| lane_reg: zero_reg(), |
| }, |
| "E78400002022", |
| "vlvgf %v8, %r4, 0", |
| )); |
| insns.push(( |
| Inst::VecInsertLane { |
| size: 32, |
| rd: writable_vr(8), |
| ri: vr(8), |
| rn: gpr(4), |
| lane_imm: 255, |
| lane_reg: zero_reg(), |
| }, |
| "E78400FF2022", |
| "vlvgf %v8, %r4, 255", |
| )); |
| insns.push(( |
| Inst::VecInsertLane { |
| size: 32, |
| rd: writable_vr(24), |
| ri: vr(24), |
| rn: gpr(4), |
| lane_imm: 0, |
| lane_reg: gpr(3), |
| }, |
| "E78430002822", |
| "vlvgf %v24, %r4, 0(%r3)", |
| )); |
| insns.push(( |
| Inst::VecInsertLane { |
| size: 64, |
| rd: writable_vr(8), |
| ri: vr(8), |
| rn: gpr(4), |
| lane_imm: 0, |
| lane_reg: zero_reg(), |
| }, |
| "E78400003022", |
| "vlvgg %v8, %r4, 0", |
| )); |
| insns.push(( |
| Inst::VecInsertLane { |
| size: 64, |
| rd: writable_vr(8), |
| ri: vr(8), |
| rn: gpr(4), |
| lane_imm: 255, |
| lane_reg: zero_reg(), |
| }, |
| "E78400FF3022", |
| "vlvgg %v8, %r4, 255", |
| )); |
| insns.push(( |
| Inst::VecInsertLane { |
| size: 64, |
| rd: writable_vr(24), |
| ri: vr(24), |
| rn: gpr(4), |
| lane_imm: 0, |
| lane_reg: gpr(3), |
| }, |
| "E78430003822", |
| "vlvgg %v24, %r4, 0(%r3)", |
| )); |
| insns.push(( |
| Inst::VecInsertLaneUndef { |
| size: 8, |
| rd: writable_vr(8), |
| rn: gpr(4), |
| lane_imm: 0, |
| lane_reg: zero_reg(), |
| }, |
| "E78400000022", |
| "vlvgb %v8, %r4, 0", |
| )); |
| insns.push(( |
| Inst::VecInsertLaneUndef { |
| size: 8, |
| rd: writable_vr(8), |
| rn: gpr(4), |
| lane_imm: 255, |
| lane_reg: zero_reg(), |
| }, |
| "E78400FF0022", |
| "vlvgb %v8, %r4, 255", |
| )); |
| insns.push(( |
| Inst::VecInsertLaneUndef { |
| size: 8, |
| rd: writable_vr(24), |
| rn: gpr(4), |
| lane_imm: 0, |
| lane_reg: gpr(3), |
| }, |
| "E78430000822", |
| "vlvgb %v24, %r4, 0(%r3)", |
| )); |
| insns.push(( |
| Inst::VecInsertLaneUndef { |
| size: 16, |
| rd: writable_vr(8), |
| rn: gpr(4), |
| lane_imm: 0, |
| lane_reg: zero_reg(), |
| }, |
| "E78400001022", |
| "vlvgh %v8, %r4, 0", |
| )); |
| insns.push(( |
| Inst::VecInsertLaneUndef { |
| size: 16, |
| rd: writable_vr(8), |
| rn: gpr(4), |
| lane_imm: 255, |
| lane_reg: zero_reg(), |
| }, |
| "E78400FF1022", |
| "vlvgh %v8, %r4, 255", |
| )); |
| insns.push(( |
| Inst::VecInsertLaneUndef { |
| size: 16, |
| rd: writable_vr(24), |
| rn: gpr(4), |
| lane_imm: 0, |
| lane_reg: gpr(3), |
| }, |
| "E78430001822", |
| "vlvgh %v24, %r4, 0(%r3)", |
| )); |
| insns.push(( |
| Inst::VecInsertLaneUndef { |
| size: 32, |
| rd: writable_vr(8), |
| rn: gpr(4), |
| lane_imm: 0, |
| lane_reg: zero_reg(), |
| }, |
| "E78400002022", |
| "vlvgf %v8, %r4, 0", |
| )); |
| insns.push(( |
| Inst::VecInsertLaneUndef { |
| size: 32, |
| rd: writable_vr(8), |
| rn: gpr(4), |
| lane_imm: 255, |
| lane_reg: zero_reg(), |
| }, |
| "E78400FF2022", |
| "vlvgf %v8, %r4, 255", |
| )); |
| insns.push(( |
| Inst::VecInsertLaneUndef { |
| size: 32, |
| rd: writable_vr(24), |
| rn: gpr(4), |
| lane_imm: 0, |
| lane_reg: gpr(3), |
| }, |
| "E78430002822", |
| "vlvgf %v24, %r4, 0(%r3)", |
| )); |
| insns.push(( |
| Inst::VecInsertLaneUndef { |
| size: 64, |
| rd: writable_vr(8), |
| rn: gpr(4), |
| lane_imm: 0, |
| lane_reg: zero_reg(), |
| }, |
| "B3C10084", |
| "ldgr %f8, %r4", |
| )); |
| insns.push(( |
| Inst::VecInsertLaneUndef { |
| size: 64, |
| rd: writable_vr(8), |
| rn: gpr(4), |
| lane_imm: 255, |
| lane_reg: zero_reg(), |
| }, |
| "E78400FF3022", |
| "vlvgg %v8, %r4, 255", |
| )); |
| insns.push(( |
| Inst::VecInsertLaneUndef { |
| size: 64, |
| rd: writable_vr(8), |
| rn: gpr(4), |
| lane_imm: 0, |
| lane_reg: gpr(3), |
| }, |
| "E78430003022", |
| "vlvgg %v8, %r4, 0(%r3)", |
| )); |
| insns.push(( |
| Inst::VecExtractLane { |
| size: 8, |
| rd: writable_gpr(8), |
| rn: vr(4), |
| lane_imm: 255, |
| lane_reg: zero_reg(), |
| }, |
| "E78400FF0021", |
| "vlgvb %r8, %v4, 255", |
| )); |
| insns.push(( |
| Inst::VecExtractLane { |
| size: 8, |
| rd: writable_gpr(8), |
| rn: vr(20), |
| lane_imm: 0, |
| lane_reg: gpr(3), |
| }, |
| "E78430000421", |
| "vlgvb %r8, %v20, 0(%r3)", |
| )); |
| insns.push(( |
| Inst::VecExtractLane { |
| size: 16, |
| rd: writable_gpr(8), |
| rn: vr(4), |
| lane_imm: 0, |
| lane_reg: zero_reg(), |
| }, |
| "E78400001021", |
| "vlgvh %r8, %v4, 0", |
| )); |
| insns.push(( |
| Inst::VecExtractLane { |
| size: 16, |
| rd: writable_gpr(8), |
| rn: vr(4), |
| lane_imm: 255, |
| lane_reg: zero_reg(), |
| }, |
| "E78400FF1021", |
| "vlgvh %r8, %v4, 255", |
| )); |
| insns.push(( |
| Inst::VecExtractLane { |
| size: 16, |
| rd: writable_gpr(8), |
| rn: vr(20), |
| lane_imm: 0, |
| lane_reg: gpr(3), |
| }, |
| "E78430001421", |
| "vlgvh %r8, %v20, 0(%r3)", |
| )); |
| insns.push(( |
| Inst::VecExtractLane { |
| size: 32, |
| rd: writable_gpr(8), |
| rn: vr(4), |
| lane_imm: 0, |
| lane_reg: zero_reg(), |
| }, |
| "E78400002021", |
| "vlgvf %r8, %v4, 0", |
| )); |
| insns.push(( |
| Inst::VecExtractLane { |
| size: 32, |
| rd: writable_gpr(8), |
| rn: vr(4), |
| lane_imm: 255, |
| lane_reg: zero_reg(), |
| }, |
| "E78400FF2021", |
| "vlgvf %r8, %v4, 255", |
| )); |
| insns.push(( |
| Inst::VecExtractLane { |
| size: 32, |
| rd: writable_gpr(8), |
| rn: vr(20), |
| lane_imm: 0, |
| lane_reg: gpr(3), |
| }, |
| "E78430002421", |
| "vlgvf %r8, %v20, 0(%r3)", |
| )); |
| insns.push(( |
| Inst::VecExtractLane { |
| size: 64, |
| rd: writable_gpr(8), |
| rn: vr(4), |
| lane_imm: 0, |
| lane_reg: zero_reg(), |
| }, |
| "B3CD0084", |
| "lgdr %r8, %f4", |
| )); |
| insns.push(( |
| Inst::VecExtractLane { |
| size: 64, |
| rd: writable_gpr(8), |
| rn: vr(4), |
| lane_imm: 255, |
| lane_reg: zero_reg(), |
| }, |
| "E78400FF3021", |
| "vlgvg %r8, %v4, 255", |
| )); |
| insns.push(( |
| Inst::VecExtractLane { |
| size: 64, |
| rd: writable_gpr(8), |
| rn: vr(4), |
| lane_imm: 0, |
| lane_reg: gpr(3), |
| }, |
| "E78430003021", |
| "vlgvg %r8, %v4, 0(%r3)", |
| )); |
| insns.push(( |
| Inst::VecInsertLaneImm { |
| size: 8, |
| rd: writable_vr(20), |
| ri: vr(20), |
| imm: 0x1234, |
| lane_imm: 15, |
| }, |
| "E7401234F840", |
| "vleib %v20, 4660, 15", |
| )); |
| insns.push(( |
| Inst::VecInsertLaneImm { |
| size: 16, |
| rd: writable_vr(20), |
| ri: vr(20), |
| imm: 0x1234, |
| lane_imm: 7, |
| }, |
| "E74012347841", |
| "vleih %v20, 4660, 7", |
| )); |
| insns.push(( |
| Inst::VecInsertLaneImm { |
| size: 32, |
| rd: writable_vr(20), |
| ri: vr(20), |
| imm: 0x1234, |
| lane_imm: 3, |
| }, |
| "E74012343843", |
| "vleif %v20, 4660, 3", |
| )); |
| insns.push(( |
| Inst::VecInsertLaneImm { |
| size: 64, |
| rd: writable_vr(20), |
| ri: vr(20), |
| imm: 0x1234, |
| lane_imm: 1, |
| }, |
| "E74012341842", |
| "vleig %v20, 4660, 1", |
| )); |
| insns.push(( |
| Inst::VecReplicateLane { |
| size: 8, |
| rd: writable_vr(20), |
| rn: vr(8), |
| lane_imm: 15, |
| }, |
| "E748000F084D", |
| "vrepb %v20, %v8, 15", |
| )); |
| insns.push(( |
| Inst::VecReplicateLane { |
| size: 16, |
| rd: writable_vr(20), |
| rn: vr(8), |
| lane_imm: 7, |
| }, |
| "E7480007184D", |
| "vreph %v20, %v8, 7", |
| )); |
| insns.push(( |
| Inst::VecReplicateLane { |
| size: 32, |
| rd: writable_vr(20), |
| rn: vr(8), |
| lane_imm: 3, |
| }, |
| "E7480003284D", |
| "vrepf %v20, %v8, 3", |
| )); |
| insns.push(( |
| Inst::VecReplicateLane { |
| size: 64, |
| rd: writable_vr(20), |
| rn: vr(8), |
| lane_imm: 1, |
| }, |
| "E7480001384D", |
| "vrepg %v20, %v8, 1", |
| )); |
| |
| let flags = settings::Flags::new(settings::builder()); |
| |
| use crate::settings::Configurable; |
| let mut isa_flag_builder = s390x_settings::builder(); |
| isa_flag_builder.enable("arch13").unwrap(); |
| let isa_flags = s390x_settings::Flags::new(&flags, &isa_flag_builder); |
| let ctrl_plane = &mut Default::default(); |
| let constants = Default::default(); |
| |
| let emit_info = EmitInfo::new(isa_flags); |
| for (insn, expected_encoding, expected_printing) in insns { |
| println!( |
| "S390x: {:?}, {}, {}", |
| insn, expected_encoding, expected_printing |
| ); |
| |
| // Check the printed text is as expected. |
| let actual_printing = |
| insn.print_with_state(&mut EmitState::default(), &mut AllocationConsumer::new(&[])); |
| assert_eq!(expected_printing, actual_printing); |
| |
| let mut buffer = MachBuffer::new(); |
| |
| // Label 0 before the instruction. |
| let label0 = buffer.get_label(); |
| buffer.bind_label(label0, ctrl_plane); |
| |
| // Emit the instruction. |
| insn.emit(&[], &mut buffer, &emit_info, &mut Default::default()); |
| |
| // Label 1 after the instruction. |
| let label1 = buffer.get_label(); |
| buffer.bind_label(label1, ctrl_plane); |
| |
| let buffer = buffer.finish(&constants, ctrl_plane); |
| let actual_encoding = &buffer.stringify_code_bytes(); |
| assert_eq!(expected_encoding, actual_encoding); |
| } |
| } |