forked from OSchip/llvm-project
[GlobalISel] Move extendRegister where it belongs. NFCI
Apparently I missed this one when I moved ValueHandler back in r288658. Sorry! llvm-svn: 289528
This commit is contained in:
parent
d92099991b
commit
2d9adbf524
|
@ -15,6 +15,7 @@
|
||||||
#include "llvm/CodeGen/GlobalISel/CallLowering.h"
|
#include "llvm/CodeGen/GlobalISel/CallLowering.h"
|
||||||
#include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
|
#include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
|
||||||
#include "llvm/CodeGen/MachineOperand.h"
|
#include "llvm/CodeGen/MachineOperand.h"
|
||||||
|
#include "llvm/CodeGen/MachineRegisterInfo.h"
|
||||||
#include "llvm/IR/DataLayout.h"
|
#include "llvm/IR/DataLayout.h"
|
||||||
#include "llvm/IR/Instructions.h"
|
#include "llvm/IR/Instructions.h"
|
||||||
#include "llvm/IR/Module.h"
|
#include "llvm/IR/Module.h"
|
||||||
|
@ -139,3 +140,31 @@ bool CallLowering::handleAssignments(MachineIRBuilder &MIRBuilder,
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned CallLowering::ValueHandler::extendRegister(unsigned ValReg,
|
||||||
|
CCValAssign &VA) {
|
||||||
|
LLT LocTy{VA.getLocVT()};
|
||||||
|
switch (VA.getLocInfo()) {
|
||||||
|
default: break;
|
||||||
|
case CCValAssign::Full:
|
||||||
|
case CCValAssign::BCvt:
|
||||||
|
// FIXME: bitconverting between vector types may or may not be a
|
||||||
|
// nop in big-endian situations.
|
||||||
|
return ValReg;
|
||||||
|
case CCValAssign::AExt:
|
||||||
|
assert(!VA.getLocVT().isVector() && "unexpected vector extend");
|
||||||
|
// Otherwise, it's a nop.
|
||||||
|
return ValReg;
|
||||||
|
case CCValAssign::SExt: {
|
||||||
|
unsigned NewReg = MRI.createGenericVirtualRegister(LocTy);
|
||||||
|
MIRBuilder.buildSExt(NewReg, ValReg);
|
||||||
|
return NewReg;
|
||||||
|
}
|
||||||
|
case CCValAssign::ZExt: {
|
||||||
|
unsigned NewReg = MRI.createGenericVirtualRegister(LocTy);
|
||||||
|
MIRBuilder.buildZExt(NewReg, ValReg);
|
||||||
|
return NewReg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
llvm_unreachable("unable to extend register");
|
||||||
|
}
|
||||||
|
|
|
@ -32,34 +32,6 @@ AArch64CallLowering::AArch64CallLowering(const AArch64TargetLowering &TLI)
|
||||||
: CallLowering(&TLI) {
|
: CallLowering(&TLI) {
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned CallLowering::ValueHandler::extendRegister(unsigned ValReg,
|
|
||||||
CCValAssign &VA) {
|
|
||||||
LLT LocTy{VA.getLocVT()};
|
|
||||||
switch (VA.getLocInfo()) {
|
|
||||||
default: break;
|
|
||||||
case CCValAssign::Full:
|
|
||||||
case CCValAssign::BCvt:
|
|
||||||
// FIXME: bitconverting between vector types may or may not be a
|
|
||||||
// nop in big-endian situations.
|
|
||||||
return ValReg;
|
|
||||||
case CCValAssign::AExt:
|
|
||||||
assert(!VA.getLocVT().isVector() && "unexpected vector extend");
|
|
||||||
// Otherwise, it's a nop.
|
|
||||||
return ValReg;
|
|
||||||
case CCValAssign::SExt: {
|
|
||||||
unsigned NewReg = MRI.createGenericVirtualRegister(LocTy);
|
|
||||||
MIRBuilder.buildSExt(NewReg, ValReg);
|
|
||||||
return NewReg;
|
|
||||||
}
|
|
||||||
case CCValAssign::ZExt: {
|
|
||||||
unsigned NewReg = MRI.createGenericVirtualRegister(LocTy);
|
|
||||||
MIRBuilder.buildZExt(NewReg, ValReg);
|
|
||||||
return NewReg;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
llvm_unreachable("unable to extend register");
|
|
||||||
}
|
|
||||||
|
|
||||||
struct IncomingArgHandler : public CallLowering::ValueHandler {
|
struct IncomingArgHandler : public CallLowering::ValueHandler {
|
||||||
IncomingArgHandler(MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI)
|
IncomingArgHandler(MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI)
|
||||||
: ValueHandler(MIRBuilder, MRI) {}
|
: ValueHandler(MIRBuilder, MRI) {}
|
||||||
|
|
Loading…
Reference in New Issue