diff options
author | Bob Wilson <bob.wilson@apple.com> | 2010-09-22 17:35:14 +0000 |
---|---|---|
committer | Bob Wilson <bob.wilson@apple.com> | 2010-09-22 17:35:14 +0000 |
commit | eafca4e2b27d5b63d4375291b6db20d66e663c31 (patch) | |
tree | 68acdbdb30a6507a19620e6a99e0b54d961af0e7 /lib | |
parent | 205a5fa8e4233cdcdc71152c0f8c4334ea9ce2eb (diff) | |
download | llvm-eafca4e2b27d5b63d4375291b6db20d66e663c31.tar.gz llvm-eafca4e2b27d5b63d4375291b6db20d66e663c31.tar.bz2 llvm-eafca4e2b27d5b63d4375291b6db20d66e663c31.tar.xz |
Attempt to fix llvm-gcc build. It was crashing when building gcov.o for an
ARM cross-compiler on x86, because the MMO size did not match the type size.
This fixes the MMO size and also the size of the stack object to match the
type size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114554 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Target/X86/X86ISelLowering.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index 7e08558591..9df5c1f8e5 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -6384,7 +6384,8 @@ SDValue X86TargetLowering::BuildFILD(SDValue Op, EVT SrcVT, SDValue Chain, // shouldn't be necessary except that RFP cannot be live across // multiple blocks. When stackifier is fixed, they can be uncoupled. MachineFunction &MF = DAG.getMachineFunction(); - int SSFI = MF.getFrameInfo()->CreateStackObject(8, 8, false); + unsigned SSFISize = Op.getValueType().getSizeInBits()/8; + int SSFI = MF.getFrameInfo()->CreateStackObject(SSFISize, SSFISize, false); SDValue StackSlot = DAG.getFrameIndex(SSFI, getPointerTy()); Tys = DAG.getVTList(MVT::Other); SDValue Ops[] = { @@ -6393,7 +6394,7 @@ SDValue X86TargetLowering::BuildFILD(SDValue Op, EVT SrcVT, SDValue Chain, MachineMemOperand *MMO = DAG.getMachineFunction() .getMachineMemOperand(MachinePointerInfo::getFixedStack(SSFI), - MachineMemOperand::MOStore, 8, 8); + MachineMemOperand::MOStore, SSFISize, SSFISize); Chain = DAG.getMemIntrinsicNode(X86ISD::FST, DL, Tys, Ops, array_lengthof(Ops), |