mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-02 07:11:49 +00:00
Provide a legal pointer register class when targeting thumb1.
The LocalStackSlotAllocation pass was creating illegal registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128687 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
0caa420042
commit
1db952d0c6
@ -48,6 +48,11 @@ Thumb1RegisterInfo::Thumb1RegisterInfo(const ARMBaseInstrInfo &tii,
|
|||||||
: ARMBaseRegisterInfo(tii, sti) {
|
: ARMBaseRegisterInfo(tii, sti) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const TargetRegisterClass *
|
||||||
|
Thumb1RegisterInfo::getPointerRegClass(unsigned Kind) const {
|
||||||
|
return ARM::tGPRRegisterClass;
|
||||||
|
}
|
||||||
|
|
||||||
/// emitLoadConstPool - Emits a load from constpool to materialize the
|
/// emitLoadConstPool - Emits a load from constpool to materialize the
|
||||||
/// specified immediate.
|
/// specified immediate.
|
||||||
void
|
void
|
||||||
|
@ -28,6 +28,8 @@ struct Thumb1RegisterInfo : public ARMBaseRegisterInfo {
|
|||||||
public:
|
public:
|
||||||
Thumb1RegisterInfo(const ARMBaseInstrInfo &tii, const ARMSubtarget &STI);
|
Thumb1RegisterInfo(const ARMBaseInstrInfo &tii, const ARMSubtarget &STI);
|
||||||
|
|
||||||
|
const TargetRegisterClass *getPointerRegClass(unsigned Kind = 0) const;
|
||||||
|
|
||||||
/// emitLoadConstPool - Emits a load from constpool to materialize the
|
/// emitLoadConstPool - Emits a load from constpool to materialize the
|
||||||
/// specified immediate.
|
/// specified immediate.
|
||||||
void emitLoadConstPool(MachineBasicBlock &MBB,
|
void emitLoadConstPool(MachineBasicBlock &MBB,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -mtriple=thumbv6-apple-darwin -relocation-model=pic -disable-fp-elim -mattr=+v6 | FileCheck %s
|
; RUN: llc < %s -mtriple=thumbv6-apple-darwin -relocation-model=pic -disable-fp-elim -mattr=+v6 -verify-machineinstrs | FileCheck %s
|
||||||
; rdar://7157006
|
; rdar://7157006
|
||||||
|
|
||||||
%struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
|
%struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
|
||||||
|
Loading…
Reference in New Issue
Block a user