Update gcc 4.3 warnings fix patch with recent head changes
llvm-svn: 47368
This commit is contained in:
parent
579f07135a
commit
035eaacd1f
|
@ -13,8 +13,6 @@
|
||||||
|
|
||||||
#include "llvm/PassManager.h"
|
#include "llvm/PassManager.h"
|
||||||
#include "llvm/ADT/SmallVector.h"
|
#include "llvm/ADT/SmallVector.h"
|
||||||
class llvm::PMDataManager;
|
|
||||||
class llvm::PMStack;
|
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
// Overview:
|
// Overview:
|
||||||
|
|
|
@ -47,11 +47,12 @@ inline unsigned numVbrBytes(unsigned num) {
|
||||||
// small ones and four for large ones. We expect this to access file offsets
|
// small ones and four for large ones. We expect this to access file offsets
|
||||||
// in the 2^10 to 2^24 range and symbol lengths in the 2^0 to 2^8 range,
|
// in the 2^10 to 2^24 range and symbol lengths in the 2^0 to 2^8 range,
|
||||||
// so this approach is reasonable.
|
// so this approach is reasonable.
|
||||||
if (num < 1<<14)
|
if (num < 1<<14) {
|
||||||
if (num < 1<<7)
|
if (num < 1<<7)
|
||||||
return 1;
|
return 1;
|
||||||
else
|
else
|
||||||
return 2;
|
return 2;
|
||||||
|
}
|
||||||
if (num < 1<<21)
|
if (num < 1<<21)
|
||||||
return 3;
|
return 3;
|
||||||
|
|
||||||
|
|
|
@ -162,11 +162,12 @@ bool AsmPrinter::doFinalization(Module &M) {
|
||||||
// If the aliasee has external weak linkage it can be referenced only by
|
// If the aliasee has external weak linkage it can be referenced only by
|
||||||
// alias itself. In this case it can be not in ExtWeakSymbols list. Emit
|
// alias itself. In this case it can be not in ExtWeakSymbols list. Emit
|
||||||
// weak reference in such case.
|
// weak reference in such case.
|
||||||
if (GV->hasExternalWeakLinkage())
|
if (GV->hasExternalWeakLinkage()) {
|
||||||
if (TAI->getWeakRefDirective())
|
if (TAI->getWeakRefDirective())
|
||||||
O << TAI->getWeakRefDirective() << Target << "\n";
|
O << TAI->getWeakRefDirective() << Target << "\n";
|
||||||
else
|
else
|
||||||
O << "\t.globl\t" << Target << "\n";
|
O << "\t.globl\t" << Target << "\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -278,9 +278,10 @@ bool IfConverter::runOnMachineFunction(MachineFunction &MF) {
|
||||||
: BBI.TrueBB->getNumber()) << ") ";
|
: BBI.TrueBB->getNumber()) << ") ";
|
||||||
RetVal = IfConvertSimple(BBI, Kind);
|
RetVal = IfConvertSimple(BBI, Kind);
|
||||||
DOUT << (RetVal ? "succeeded!" : "failed!") << "\n";
|
DOUT << (RetVal ? "succeeded!" : "failed!") << "\n";
|
||||||
if (RetVal)
|
if (RetVal) {
|
||||||
if (isFalse) NumSimpleFalse++;
|
if (isFalse) NumSimpleFalse++;
|
||||||
else NumSimple++;
|
else NumSimple++;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ICTriangle:
|
case ICTriangle:
|
||||||
|
|
|
@ -217,7 +217,7 @@ LiveInterval::addRangeFrom(LiveRange LR, iterator From) {
|
||||||
|
|
||||||
// Otherwise, if this range ends in the middle of, or right next to, another
|
// Otherwise, if this range ends in the middle of, or right next to, another
|
||||||
// interval, merge it into that interval.
|
// interval, merge it into that interval.
|
||||||
if (it != ranges.end())
|
if (it != ranges.end()) {
|
||||||
if (LR.valno == it->valno) {
|
if (LR.valno == it->valno) {
|
||||||
if (it->start <= End) {
|
if (it->start <= End) {
|
||||||
it = extendIntervalStartTo(it, Start);
|
it = extendIntervalStartTo(it, Start);
|
||||||
|
@ -237,6 +237,7 @@ LiveInterval::addRangeFrom(LiveRange LR, iterator From) {
|
||||||
assert(it->start >= End &&
|
assert(it->start >= End &&
|
||||||
"Cannot overlap two LiveRanges with differing ValID's");
|
"Cannot overlap two LiveRanges with differing ValID's");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Otherwise, this is just a new range that doesn't interact with anything.
|
// Otherwise, this is just a new range that doesn't interact with anything.
|
||||||
// Insert it.
|
// Insert it.
|
||||||
|
|
|
@ -695,7 +695,7 @@ void RABigBlock::AllocateBasicBlock(MachineBasicBlock &MBB) {
|
||||||
// Unallocatable register dead, ignore.
|
// Unallocatable register dead, ignore.
|
||||||
continue;
|
continue;
|
||||||
} else {
|
} else {
|
||||||
assert(!PhysRegsUsed[PhysReg] || PhysRegsUsed[PhysReg] == -1 &&
|
assert((!PhysRegsUsed[PhysReg] || PhysRegsUsed[PhysReg] == -1) &&
|
||||||
"Silently clearing a virtual register?");
|
"Silently clearing a virtual register?");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -832,11 +832,12 @@ void RABigBlock::AllocateBasicBlock(MachineBasicBlock &MBB) {
|
||||||
|
|
||||||
// Spill all physical registers holding virtual registers now.
|
// Spill all physical registers holding virtual registers now.
|
||||||
for (unsigned i = 0, e = RegInfo->getNumRegs(); i != e; ++i)
|
for (unsigned i = 0, e = RegInfo->getNumRegs(); i != e; ++i)
|
||||||
if (PhysRegsUsed[i] != -1 && PhysRegsUsed[i] != -2)
|
if (PhysRegsUsed[i] != -1 && PhysRegsUsed[i] != -2) {
|
||||||
if (unsigned VirtReg = PhysRegsUsed[i])
|
if (unsigned VirtReg = PhysRegsUsed[i])
|
||||||
spillVirtReg(MBB, MI, VirtReg, i);
|
spillVirtReg(MBB, MI, VirtReg, i);
|
||||||
else
|
else
|
||||||
removePhysReg(i);
|
removePhysReg(i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// runOnMachineFunction - Register allocate the whole function
|
/// runOnMachineFunction - Register allocate the whole function
|
||||||
|
|
|
@ -1996,11 +1996,12 @@ SDNode *DAGCombiner::MatchRotate(SDOperand LHS, SDOperand RHS) {
|
||||||
LHSShiftAmt == RHSShiftAmt.getOperand(1)) {
|
LHSShiftAmt == RHSShiftAmt.getOperand(1)) {
|
||||||
if (ConstantSDNode *SUBC =
|
if (ConstantSDNode *SUBC =
|
||||||
dyn_cast<ConstantSDNode>(RHSShiftAmt.getOperand(0))) {
|
dyn_cast<ConstantSDNode>(RHSShiftAmt.getOperand(0))) {
|
||||||
if (SUBC->getValue() == OpSizeInBits)
|
if (SUBC->getValue() == OpSizeInBits) {
|
||||||
if (HasROTL)
|
if (HasROTL)
|
||||||
return DAG.getNode(ISD::ROTL, VT, LHSShiftArg, LHSShiftAmt).Val;
|
return DAG.getNode(ISD::ROTL, VT, LHSShiftArg, LHSShiftAmt).Val;
|
||||||
else
|
else
|
||||||
return DAG.getNode(ISD::ROTR, VT, LHSShiftArg, RHSShiftAmt).Val;
|
return DAG.getNode(ISD::ROTR, VT, LHSShiftArg, RHSShiftAmt).Val;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2010,11 +2011,12 @@ SDNode *DAGCombiner::MatchRotate(SDOperand LHS, SDOperand RHS) {
|
||||||
RHSShiftAmt == LHSShiftAmt.getOperand(1)) {
|
RHSShiftAmt == LHSShiftAmt.getOperand(1)) {
|
||||||
if (ConstantSDNode *SUBC =
|
if (ConstantSDNode *SUBC =
|
||||||
dyn_cast<ConstantSDNode>(LHSShiftAmt.getOperand(0))) {
|
dyn_cast<ConstantSDNode>(LHSShiftAmt.getOperand(0))) {
|
||||||
if (SUBC->getValue() == OpSizeInBits)
|
if (SUBC->getValue() == OpSizeInBits) {
|
||||||
if (HasROTL)
|
if (HasROTL)
|
||||||
return DAG.getNode(ISD::ROTL, VT, LHSShiftArg, LHSShiftAmt).Val;
|
return DAG.getNode(ISD::ROTL, VT, LHSShiftArg, LHSShiftAmt).Val;
|
||||||
else
|
else
|
||||||
return DAG.getNode(ISD::ROTR, VT, LHSShiftArg, RHSShiftAmt).Val;
|
return DAG.getNode(ISD::ROTR, VT, LHSShiftArg, RHSShiftAmt).Val;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2230,7 +2232,7 @@ SDOperand DAGCombiner::visitShiftByConstant(SDNode *N, unsigned Amt) {
|
||||||
// the constant which would cause it to be modified for this
|
// the constant which would cause it to be modified for this
|
||||||
// operation.
|
// operation.
|
||||||
if (N->getOpcode() == ISD::SRA) {
|
if (N->getOpcode() == ISD::SRA) {
|
||||||
uint64_t BinOpRHSSign = BinOpCst->getValue() >> MVT::getSizeInBits(VT)-1;
|
uint64_t BinOpRHSSign = BinOpCst->getValue() >> (MVT::getSizeInBits(VT)-1);
|
||||||
if ((bool)BinOpRHSSign != HighBitSet)
|
if ((bool)BinOpRHSSign != HighBitSet)
|
||||||
return SDOperand();
|
return SDOperand();
|
||||||
}
|
}
|
||||||
|
@ -2552,7 +2554,7 @@ SDOperand DAGCombiner::visitSELECT(SDNode *N) {
|
||||||
return SDOperand(N, 0); // Don't revisit N.
|
return SDOperand(N, 0); // Don't revisit N.
|
||||||
|
|
||||||
// fold selects based on a setcc into other things, such as min/max/abs
|
// fold selects based on a setcc into other things, such as min/max/abs
|
||||||
if (N0.getOpcode() == ISD::SETCC)
|
if (N0.getOpcode() == ISD::SETCC) {
|
||||||
// FIXME:
|
// FIXME:
|
||||||
// Check against MVT::Other for SELECT_CC, which is a workaround for targets
|
// Check against MVT::Other for SELECT_CC, which is a workaround for targets
|
||||||
// having to say they don't support SELECT_CC on every type the DAG knows
|
// having to say they don't support SELECT_CC on every type the DAG knows
|
||||||
|
@ -2562,6 +2564,7 @@ SDOperand DAGCombiner::visitSELECT(SDNode *N) {
|
||||||
N1, N2, N0.getOperand(2));
|
N1, N2, N0.getOperand(2));
|
||||||
else
|
else
|
||||||
return SimplifySelect(N0, N1, N2);
|
return SimplifySelect(N0, N1, N2);
|
||||||
|
}
|
||||||
return SDOperand();
|
return SDOperand();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4013,8 +4016,8 @@ bool DAGCombiner::CombineToPreIndexedLoadStore(SDNode *N) {
|
||||||
|
|
||||||
if (!((Use->getOpcode() == ISD::LOAD &&
|
if (!((Use->getOpcode() == ISD::LOAD &&
|
||||||
cast<LoadSDNode>(Use)->getBasePtr() == Ptr) ||
|
cast<LoadSDNode>(Use)->getBasePtr() == Ptr) ||
|
||||||
(Use->getOpcode() == ISD::STORE) &&
|
(Use->getOpcode() == ISD::STORE &&
|
||||||
cast<StoreSDNode>(Use)->getBasePtr() == Ptr))
|
cast<StoreSDNode>(Use)->getBasePtr() == Ptr)))
|
||||||
RealUse = true;
|
RealUse = true;
|
||||||
}
|
}
|
||||||
if (!RealUse)
|
if (!RealUse)
|
||||||
|
@ -4131,8 +4134,8 @@ bool DAGCombiner::CombineToPostIndexedLoadStore(SDNode *N) {
|
||||||
SDNode *UseUse = *III;
|
SDNode *UseUse = *III;
|
||||||
if (!((UseUse->getOpcode() == ISD::LOAD &&
|
if (!((UseUse->getOpcode() == ISD::LOAD &&
|
||||||
cast<LoadSDNode>(UseUse)->getBasePtr().Val == Use) ||
|
cast<LoadSDNode>(UseUse)->getBasePtr().Val == Use) ||
|
||||||
(UseUse->getOpcode() == ISD::STORE) &&
|
(UseUse->getOpcode() == ISD::STORE &&
|
||||||
cast<StoreSDNode>(UseUse)->getBasePtr().Val == Use))
|
cast<StoreSDNode>(UseUse)->getBasePtr().Val == Use)))
|
||||||
RealUse = true;
|
RealUse = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1269,15 +1269,18 @@ bool bu_ls_rr_sort::operator()(const SUnit *left, const SUnit *right) const {
|
||||||
unsigned RScratch = calcMaxScratches(right);
|
unsigned RScratch = calcMaxScratches(right);
|
||||||
if (LScratch > RScratch)
|
if (LScratch > RScratch)
|
||||||
return true;
|
return true;
|
||||||
else if (LScratch == RScratch)
|
else if (LScratch == RScratch) {
|
||||||
if (left->Height > right->Height)
|
if (left->Height > right->Height)
|
||||||
return true;
|
return true;
|
||||||
else if (left->Height == right->Height)
|
else if (left->Height == right->Height) {
|
||||||
if (left->Depth < right->Depth)
|
if (left->Depth < right->Depth)
|
||||||
return true;
|
return true;
|
||||||
else if (left->Depth == right->Depth)
|
else if (left->Depth == right->Depth) {
|
||||||
if (left->CycleBound > right->CycleBound)
|
if (left->CycleBound > right->CycleBound)
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -1509,15 +1512,19 @@ bool td_ls_rr_sort::operator()(const SUnit *left, const SUnit *right) const {
|
||||||
|
|
||||||
if (LPriority+LBonus < RPriority+RBonus)
|
if (LPriority+LBonus < RPriority+RBonus)
|
||||||
return true;
|
return true;
|
||||||
else if (LPriority == RPriority)
|
else if (LPriority == RPriority) {
|
||||||
if (left->Depth < right->Depth)
|
if (left->Depth < right->Depth)
|
||||||
return true;
|
return true;
|
||||||
else if (left->Depth == right->Depth)
|
else if (left->Depth == right->Depth) {
|
||||||
if (left->NumSuccsLeft > right->NumSuccsLeft)
|
if (left->NumSuccsLeft > right->NumSuccsLeft)
|
||||||
return true;
|
return true;
|
||||||
else if (left->NumSuccsLeft == right->NumSuccsLeft)
|
else if (left->NumSuccsLeft == right->NumSuccsLeft) {
|
||||||
if (left->CycleBound > right->CycleBound)
|
if (left->CycleBound > right->CycleBound)
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1075,7 +1075,7 @@ SDOperand SelectionDAG::FoldSetCC(MVT::ValueType VT, SDOperand N1,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ConstantFPSDNode *N1C = dyn_cast<ConstantFPSDNode>(N1.Val))
|
if (ConstantFPSDNode *N1C = dyn_cast<ConstantFPSDNode>(N1.Val)) {
|
||||||
if (ConstantFPSDNode *N2C = dyn_cast<ConstantFPSDNode>(N2.Val)) {
|
if (ConstantFPSDNode *N2C = dyn_cast<ConstantFPSDNode>(N2.Val)) {
|
||||||
// No compile time operations on this type yet.
|
// No compile time operations on this type yet.
|
||||||
if (N1C->getValueType(0) == MVT::ppcf128)
|
if (N1C->getValueType(0) == MVT::ppcf128)
|
||||||
|
@ -1127,7 +1127,8 @@ SDOperand SelectionDAG::FoldSetCC(MVT::ValueType VT, SDOperand N1,
|
||||||
// Ensure that the constant occurs on the RHS.
|
// Ensure that the constant occurs on the RHS.
|
||||||
return getSetCC(VT, N2, N1, ISD::getSetCCSwappedOperands(Cond));
|
return getSetCC(VT, N2, N1, ISD::getSetCCSwappedOperands(Cond));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Could not fold it.
|
// Could not fold it.
|
||||||
return SDOperand();
|
return SDOperand();
|
||||||
}
|
}
|
||||||
|
@ -2334,20 +2335,22 @@ SDOperand SelectionDAG::getNode(unsigned Opcode, MVT::ValueType VT,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ISD::SELECT:
|
case ISD::SELECT:
|
||||||
if (N1C)
|
if (N1C) {
|
||||||
if (N1C->getValue())
|
if (N1C->getValue())
|
||||||
return N2; // select true, X, Y -> X
|
return N2; // select true, X, Y -> X
|
||||||
else
|
else
|
||||||
return N3; // select false, X, Y -> Y
|
return N3; // select false, X, Y -> Y
|
||||||
|
}
|
||||||
|
|
||||||
if (N2 == N3) return N2; // select C, X, X -> X
|
if (N2 == N3) return N2; // select C, X, X -> X
|
||||||
break;
|
break;
|
||||||
case ISD::BRCOND:
|
case ISD::BRCOND:
|
||||||
if (N2C)
|
if (N2C) {
|
||||||
if (N2C->getValue()) // Unconditional branch
|
if (N2C->getValue()) // Unconditional branch
|
||||||
return getNode(ISD::BR, MVT::Other, N1, N3);
|
return getNode(ISD::BR, MVT::Other, N1, N3);
|
||||||
else
|
else
|
||||||
return N1; // Never-taken branch
|
return N1; // Never-taken branch
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case ISD::VECTOR_SHUFFLE:
|
case ISD::VECTOR_SHUFFLE:
|
||||||
assert(VT == N1.getValueType() && VT == N2.getValueType() &&
|
assert(VT == N1.getValueType() && VT == N2.getValueType() &&
|
||||||
|
|
|
@ -2602,7 +2602,7 @@ void SelectionDAGLowering::visitTargetIntrinsic(CallInst &I,
|
||||||
static GlobalVariable *ExtractTypeInfo (Value *V) {
|
static GlobalVariable *ExtractTypeInfo (Value *V) {
|
||||||
V = IntrinsicInst::StripPointerCasts(V);
|
V = IntrinsicInst::StripPointerCasts(V);
|
||||||
GlobalVariable *GV = dyn_cast<GlobalVariable>(V);
|
GlobalVariable *GV = dyn_cast<GlobalVariable>(V);
|
||||||
assert (GV || isa<ConstantPointerNull>(V) &&
|
assert ((GV || isa<ConstantPointerNull>(V)) &&
|
||||||
"TypeInfo must be a global variable or NULL");
|
"TypeInfo must be a global variable or NULL");
|
||||||
return GV;
|
return GV;
|
||||||
}
|
}
|
||||||
|
|
|
@ -191,7 +191,7 @@ bool SimpleSpiller::runOnMachineFunction(MachineFunction &MF, VirtRegMap &VRM) {
|
||||||
MachineInstr &MI = *MII;
|
MachineInstr &MI = *MII;
|
||||||
for (unsigned i = 0, e = MI.getNumOperands(); i != e; ++i) {
|
for (unsigned i = 0, e = MI.getNumOperands(); i != e; ++i) {
|
||||||
MachineOperand &MO = MI.getOperand(i);
|
MachineOperand &MO = MI.getOperand(i);
|
||||||
if (MO.isRegister() && MO.getReg())
|
if (MO.isRegister() && MO.getReg()) {
|
||||||
if (TargetRegisterInfo::isVirtualRegister(MO.getReg())) {
|
if (TargetRegisterInfo::isVirtualRegister(MO.getReg())) {
|
||||||
unsigned VirtReg = MO.getReg();
|
unsigned VirtReg = MO.getReg();
|
||||||
unsigned PhysReg = VRM.getPhys(VirtReg);
|
unsigned PhysReg = VRM.getPhys(VirtReg);
|
||||||
|
@ -220,6 +220,7 @@ bool SimpleSpiller::runOnMachineFunction(MachineFunction &MF, VirtRegMap &VRM) {
|
||||||
} else {
|
} else {
|
||||||
MF.getRegInfo().setPhysRegUsed(MO.getReg());
|
MF.getRegInfo().setPhysRegUsed(MO.getReg());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DOUT << '\t' << MI;
|
DOUT << '\t' << MI;
|
||||||
|
|
|
@ -385,16 +385,16 @@ static GenericValue executeFCMP_OGT(GenericValue Src1, GenericValue Src2,
|
||||||
return Dest;
|
return Dest;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define IMPLEMENT_UNORDERED(TY, X,Y) \
|
#define IMPLEMENT_UNORDERED(TY, X,Y) \
|
||||||
if (TY == Type::FloatTy) \
|
if (TY == Type::FloatTy) { \
|
||||||
if (X.FloatVal != X.FloatVal || Y.FloatVal != Y.FloatVal) { \
|
if (X.FloatVal != X.FloatVal || Y.FloatVal != Y.FloatVal) { \
|
||||||
Dest.IntVal = APInt(1,true); \
|
Dest.IntVal = APInt(1,true); \
|
||||||
return Dest; \
|
return Dest; \
|
||||||
} \
|
} \
|
||||||
else if (X.DoubleVal != X.DoubleVal || Y.DoubleVal != Y.DoubleVal) { \
|
} else if (X.DoubleVal != X.DoubleVal || Y.DoubleVal != Y.DoubleVal) { \
|
||||||
Dest.IntVal = APInt(1,true); \
|
Dest.IntVal = APInt(1,true); \
|
||||||
return Dest; \
|
return Dest; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static GenericValue executeFCMP_UEQ(GenericValue Src1, GenericValue Src2,
|
static GenericValue executeFCMP_UEQ(GenericValue Src1, GenericValue Src2,
|
||||||
|
@ -901,11 +901,12 @@ void Interpreter::visitCallSite(CallSite CS) {
|
||||||
// We do this by zero or sign extending the value as appropriate
|
// We do this by zero or sign extending the value as appropriate
|
||||||
// according to the parameter attributes
|
// according to the parameter attributes
|
||||||
const Type *Ty = V->getType();
|
const Type *Ty = V->getType();
|
||||||
if (Ty->isInteger() && (ArgVals.back().IntVal.getBitWidth() < 32))
|
if (Ty->isInteger() && (ArgVals.back().IntVal.getBitWidth() < 32)) {
|
||||||
if (CS.paramHasAttr(pNum, ParamAttr::ZExt))
|
if (CS.paramHasAttr(pNum, ParamAttr::ZExt))
|
||||||
ArgVals.back().IntVal = ArgVals.back().IntVal.zext(32);
|
ArgVals.back().IntVal = ArgVals.back().IntVal.zext(32);
|
||||||
else if (CS.paramHasAttr(pNum, ParamAttr::SExt))
|
else if (CS.paramHasAttr(pNum, ParamAttr::SExt))
|
||||||
ArgVals.back().IntVal = ArgVals.back().IntVal.sext(32);
|
ArgVals.back().IntVal = ArgVals.back().IntVal.sext(32);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// To handle indirect calls, we must get the pointer value from the argument
|
// To handle indirect calls, we must get the pointer value from the argument
|
||||||
|
|
Loading…
Reference in New Issue