Displaying 2 results from an estimated 2 matches for "umulhxxx".
Did you mean:
smulhxxx
2014 Mar 13
2
[LLVMdev] Be Careful with Positionally-Encoded Operands (AArch64, Mips, AMDGPU, etc.)
...butes to defining the bits in Inst, and because there
> > is, by default, no overlap checking, it also gets mapped to the
> > first operand: GPR64:$Rd. The result, from
> > AArch64GenMCCodeEmitter.inc is:
> >
> > case AArch64::SMULHxxx:
> > case AArch64::UMULHxxx: {
> > // op: Rd
> > op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
> > Value |= op & UINT64_C(31);
> > // op: Rn
> > op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
> > Value |= (op & UINT64_C(31...
2014 Mar 13
5
[LLVMdev] Be Careful with Positionally-Encoded Operands (AArch64, Mips, AMDGPU, etc.)
...OperandList and InOperandList), but what about Ra? Ra contributes to defining the bits in Inst, and because there is, by default, no overlap checking, it also gets mapped to the first operand: GPR64:$Rd. The result, from AArch64GenMCCodeEmitter.inc is:
case AArch64::SMULHxxx:
case AArch64::UMULHxxx: {
// op: Rd
op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
Value |= op & UINT64_C(31);
// op: Rn
op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
Value |= (op & UINT64_C(31)) << 5;
// op: Rm
op = getMachineOpValue(...