@@ -1188,13 +1188,9 @@ impl MachInstEmit for Inst {
11881188 ShiftOp :: AShR32 => 0xebdc , // SRAK (SRA ?)
11891189 ShiftOp :: AShR64 => 0xeb0a , // SRAG
11901190 } ;
1191- let shift_reg = match shift_reg {
1192- Some ( reg) => reg,
1193- None => zero_reg ( ) ,
1194- } ;
11951191 put (
11961192 sink,
1197- & enc_rsy ( opcode, rd. to_reg ( ) , rn, shift_reg, shift_imm. bits ( ) ) ,
1193+ & enc_rsy ( opcode, rd. to_reg ( ) , rn, shift_reg, shift_imm. into ( ) ) ,
11981194 ) ;
11991195 }
12001196
@@ -1574,25 +1570,35 @@ impl MachInstEmit for Inst {
15741570 }
15751571 }
15761572
1577- & Inst :: LoadMultiple64 {
1578- rt,
1579- rt2,
1580- addr_reg,
1581- addr_off,
1582- } => {
1573+ & Inst :: LoadMultiple64 { rt, rt2, ref mem } => {
15831574 let opcode = 0xeb04 ; // LMG
15841575 let rt = rt. to_reg ( ) ;
15851576 let rt2 = rt2. to_reg ( ) ;
1586- put ( sink, & enc_rsy ( opcode, rt, rt2, addr_reg, addr_off. bits ( ) ) ) ;
1577+ mem_rs_emit (
1578+ rt,
1579+ rt2,
1580+ & mem,
1581+ None ,
1582+ Some ( opcode) ,
1583+ true ,
1584+ sink,
1585+ emit_info,
1586+ state,
1587+ ) ;
15871588 }
1588- & Inst :: StoreMultiple64 {
1589- rt,
1590- rt2,
1591- addr_reg,
1592- addr_off,
1593- } => {
1589+ & Inst :: StoreMultiple64 { rt, rt2, ref mem } => {
15941590 let opcode = 0xeb24 ; // STMG
1595- put ( sink, & enc_rsy ( opcode, rt, rt2, addr_reg, addr_off. bits ( ) ) ) ;
1591+ mem_rs_emit (
1592+ rt,
1593+ rt2,
1594+ & mem,
1595+ None ,
1596+ Some ( opcode) ,
1597+ true ,
1598+ sink,
1599+ emit_info,
1600+ state,
1601+ ) ;
15961602 }
15971603
15981604 & Inst :: LoadAddr { rd, ref mem } => {
@@ -1741,7 +1747,7 @@ impl MachInstEmit for Inst {
17411747 let opcode = 0xa75 ; // BRAS
17421748 let reg = writable_spilltmp_reg ( ) . to_reg ( ) ;
17431749 put ( sink, & enc_ri_b ( opcode, reg, 8 ) ) ;
1744- sink. put4 ( const_data. to_bits ( ) . swap_bytes ( ) ) ;
1750+ sink. put4 ( const_data. swap_bytes ( ) ) ;
17451751 let inst = Inst :: FpuLoad32 {
17461752 rd,
17471753 mem : MemArg :: reg ( reg, MemFlags :: trusted ( ) ) ,
@@ -1752,7 +1758,7 @@ impl MachInstEmit for Inst {
17521758 let opcode = 0xa75 ; // BRAS
17531759 let reg = writable_spilltmp_reg ( ) . to_reg ( ) ;
17541760 put ( sink, & enc_ri_b ( opcode, reg, 12 ) ) ;
1755- sink. put8 ( const_data. to_bits ( ) . swap_bytes ( ) ) ;
1761+ sink. put8 ( const_data. swap_bytes ( ) ) ;
17561762 let inst = Inst :: FpuLoad64 {
17571763 rd,
17581764 mem : MemArg :: reg ( reg, MemFlags :: trusted ( ) ) ,
@@ -2009,8 +2015,8 @@ impl MachInstEmit for Inst {
20092015 shift_op : ShiftOp :: LShL64 ,
20102016 rd : rtmp2,
20112017 rn : ridx,
2012- shift_imm : SImm20 :: maybe_from_i64 ( 2 ) . unwrap ( ) ,
2013- shift_reg : None ,
2018+ shift_imm : 2 ,
2019+ shift_reg : zero_reg ( ) ,
20142020 } ;
20152021 inst. emit ( sink, emit_info, state) ;
20162022
0 commit comments