forked from OSchip/llvm-project
[ARM64] Port over the PostEncoderMethod fix for SMULH/UMULH from AArch64.
llvm-svn: 205877
This commit is contained in:
parent
9f29b726d5
commit
8f906a3c5f
|
@ -1200,9 +1200,13 @@ class MulHi<bits<3> opc, string asm, SDNode OpNode>
|
|||
let Inst{31-24} = 0b10011011;
|
||||
let Inst{23-21} = opc;
|
||||
let Inst{20-16} = Rm;
|
||||
let Inst{15-10} = 0b011111;
|
||||
let Inst{15} = 0;
|
||||
let Inst{9-5} = Rn;
|
||||
let Inst{4-0} = Rd;
|
||||
|
||||
// The Ra field of SMULH and UMULH is unused: it should be assembled as 31
|
||||
// (i.e. all bits 1) but is ignored by the processor.
|
||||
let PostEncoderMethod = "fixMulHigh";
|
||||
}
|
||||
|
||||
class MulAccumWAlias<string asm, Instruction inst>
|
||||
|
|
|
@ -177,6 +177,9 @@ public:
|
|||
SmallVectorImpl<MCFixup> &Fixups,
|
||||
const MCSubtargetInfo &STI) const;
|
||||
|
||||
unsigned fixMulHigh(const MCInst &MI, unsigned EncodedValue,
|
||||
const MCSubtargetInfo &STI) const;
|
||||
|
||||
template<int hasRs, int hasRt2> unsigned
|
||||
fixLoadStoreExclusive(const MCInst &MI, unsigned EncodedValue,
|
||||
const MCSubtargetInfo &STI) const;
|
||||
|
@ -565,6 +568,16 @@ void ARM64MCCodeEmitter::EncodeInstruction(const MCInst &MI, raw_ostream &OS,
|
|||
++MCNumEmitted; // Keep track of the # of mi's emitted.
|
||||
}
|
||||
|
||||
unsigned
|
||||
ARM64MCCodeEmitter::fixMulHigh(const MCInst &MI,
|
||||
unsigned EncodedValue,
|
||||
const MCSubtargetInfo &STI) const {
|
||||
// The Ra field of SMULH and UMULH is unused: it should be assembled as 31
|
||||
// (i.e. all bits 1) but is ignored by the processor.
|
||||
EncodedValue |= 0x1f << 10;
|
||||
return EncodedValue;
|
||||
}
|
||||
|
||||
template<int hasRs, int hasRt2> unsigned
|
||||
ARM64MCCodeEmitter::fixLoadStoreExclusive(const MCInst &MI,
|
||||
unsigned EncodedValue,
|
||||
|
|
|
@ -3,3 +3,7 @@
|
|||
0x00 0x08 0x00 0xc8
|
||||
|
||||
# CHECK: stxr w0, x0, [x0]
|
||||
|
||||
0x00 0x00 0x40 0x9b
|
||||
|
||||
# CHECK: smulh x0, x0, x0
|
||||
|
|
Loading…
Reference in New Issue