mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-14 15:28:20 +00:00
Use right address space pointer size
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194940 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1126,9 +1126,10 @@ SDValue SelectionDAG::getGlobalAddress(const GlobalValue *GV, SDLoc DL,
|
|||||||
unsigned char TargetFlags) {
|
unsigned char TargetFlags) {
|
||||||
assert((TargetFlags == 0 || isTargetGA) &&
|
assert((TargetFlags == 0 || isTargetGA) &&
|
||||||
"Cannot set target flags on target-independent globals");
|
"Cannot set target flags on target-independent globals");
|
||||||
|
const TargetLowering *TLI = TM.getTargetLowering();
|
||||||
|
|
||||||
// Truncate (with sign-extension) the offset value to the pointer size.
|
// Truncate (with sign-extension) the offset value to the pointer size.
|
||||||
unsigned BitWidth = TM.getTargetLowering()->getPointerTy().getSizeInBits();
|
unsigned BitWidth = TLI->getPointerTypeSizeInBits(GV->getType());
|
||||||
if (BitWidth < 64)
|
if (BitWidth < 64)
|
||||||
Offset = SignExtend64(Offset, BitWidth);
|
Offset = SignExtend64(Offset, BitWidth);
|
||||||
|
|
||||||
|
@@ -73,3 +73,14 @@ define void @infer_ptr_alignment_global_offset(float addrspace(1)* %out, i32 %ti
|
|||||||
store float %val, float addrspace(1)* %out
|
store float %val, float addrspace(1)* %out
|
||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ptr = addrspace(3) global i32 addrspace(3)* null
|
||||||
|
@dst = addrspace(3) global [16384 x i32] zeroinitializer
|
||||||
|
|
||||||
|
; SI-LABEL: @global_ptr:
|
||||||
|
; SI-CHECK: DS_WRITE_B32
|
||||||
|
define void @global_ptr() nounwind {
|
||||||
|
store i32 addrspace(3)* getelementptr ([16384 x i32] addrspace(3)* @dst, i32 0, i32 16), i32 addrspace(3)* addrspace(3)* @ptr
|
||||||
|
ret void
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user