mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-30 07:14:53 +00:00
AArch64: fix even more JIT failures
The last patch corrected some issues, but constant-pool entries had actual codegen bugs in the large memory model (which MCJIT uses). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187126 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
268f400c57
commit
4632e31f51
@ -259,15 +259,15 @@ AArch64DAGToDAGISel::getConstantPoolItemAddress(SDLoc DL,
|
||||
LitAddr = CurDAG->getMachineNode(
|
||||
AArch64::MOVZxii, DL, PtrVT,
|
||||
CurDAG->getTargetConstantPool(CV, PtrVT, 0, 0, AArch64II::MO_ABS_G3),
|
||||
CurDAG->getTargetConstant(0, MVT::i32));
|
||||
CurDAG->getTargetConstant(3, MVT::i32));
|
||||
LitAddr = CurDAG->getMachineNode(
|
||||
AArch64::MOVKxii, DL, PtrVT, SDValue(LitAddr, 0),
|
||||
CurDAG->getTargetConstantPool(CV, PtrVT, 0, 0, AArch64II::MO_ABS_G2_NC),
|
||||
CurDAG->getTargetConstant(0, MVT::i32));
|
||||
CurDAG->getTargetConstant(2, MVT::i32));
|
||||
LitAddr = CurDAG->getMachineNode(
|
||||
AArch64::MOVKxii, DL, PtrVT, SDValue(LitAddr, 0),
|
||||
CurDAG->getTargetConstantPool(CV, PtrVT, 0, 0, AArch64II::MO_ABS_G1_NC),
|
||||
CurDAG->getTargetConstant(0, MVT::i32));
|
||||
CurDAG->getTargetConstant(1, MVT::i32));
|
||||
LitAddr = CurDAG->getMachineNode(
|
||||
AArch64::MOVKxii, DL, PtrVT, SDValue(LitAddr, 0),
|
||||
CurDAG->getTargetConstantPool(CV, PtrVT, 0, 0, AArch64II::MO_ABS_G0_NC),
|
||||
|
@ -2048,7 +2048,7 @@ AArch64TargetLowering::LowerGlobalTLSAddress(SDValue Op,
|
||||
AArch64II::MO_TPREL_G0_NC);
|
||||
|
||||
TPOff = SDValue(DAG.getMachineNode(AArch64::MOVZxii, DL, PtrVT, HiVar,
|
||||
DAG.getTargetConstant(0, MVT::i32)), 0);
|
||||
DAG.getTargetConstant(1, MVT::i32)), 0);
|
||||
TPOff = SDValue(DAG.getMachineNode(AArch64::MOVKxii, DL, PtrVT,
|
||||
TPOff, LoVar,
|
||||
DAG.getTargetConstant(0, MVT::i32)), 0);
|
||||
|
Loading…
x
Reference in New Issue
Block a user