mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-06 06:33:24 +00:00
allow 64-bit stack objects
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36419 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4aa8495de7
commit
be7d83ec0e
@ -77,7 +77,7 @@ class MachineFrameInfo {
|
|||||||
// StackObject - Represent a single object allocated on the stack.
|
// StackObject - Represent a single object allocated on the stack.
|
||||||
struct StackObject {
|
struct StackObject {
|
||||||
// The size of this object on the stack. 0 means a variable sized object
|
// The size of this object on the stack. 0 means a variable sized object
|
||||||
unsigned Size;
|
uint64_t Size;
|
||||||
|
|
||||||
// Alignment - The required alignment of this stack slot.
|
// Alignment - The required alignment of this stack slot.
|
||||||
unsigned Alignment;
|
unsigned Alignment;
|
||||||
@ -86,7 +86,7 @@ class MachineFrameInfo {
|
|||||||
// the function. This field has no meaning for a variable sized element.
|
// the function. This field has no meaning for a variable sized element.
|
||||||
int SPOffset;
|
int SPOffset;
|
||||||
|
|
||||||
StackObject(unsigned Sz, unsigned Al, int SP)
|
StackObject(uint64_t Sz, unsigned Al, int SP)
|
||||||
: Size(Sz), Alignment(Al), SPOffset(SP) {}
|
: Size(Sz), Alignment(Al), SPOffset(SP) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -110,7 +110,7 @@ class MachineFrameInfo {
|
|||||||
/// above. It then updates StackSize to contain the number of bytes that need
|
/// above. It then updates StackSize to contain the number of bytes that need
|
||||||
/// to be allocated on entry to the function.
|
/// to be allocated on entry to the function.
|
||||||
///
|
///
|
||||||
unsigned StackSize;
|
uint64_t StackSize;
|
||||||
|
|
||||||
/// OffsetAdjustment - The amount that a frame offset needs to be adjusted to
|
/// OffsetAdjustment - The amount that a frame offset needs to be adjusted to
|
||||||
/// have the actual offset from the stack/frame pointer. The calculation is
|
/// have the actual offset from the stack/frame pointer. The calculation is
|
||||||
@ -257,7 +257,7 @@ public:
|
|||||||
/// All fixed objects should be created before other objects are created for
|
/// All fixed objects should be created before other objects are created for
|
||||||
/// efficiency. This returns an index with a negative value.
|
/// efficiency. This returns an index with a negative value.
|
||||||
///
|
///
|
||||||
int CreateFixedObject(unsigned Size, int SPOffset) {
|
int CreateFixedObject(uint64_t Size, int SPOffset) {
|
||||||
assert(Size != 0 && "Cannot allocate zero size fixed stack objects!");
|
assert(Size != 0 && "Cannot allocate zero size fixed stack objects!");
|
||||||
Objects.insert(Objects.begin(), StackObject(Size, 1, SPOffset));
|
Objects.insert(Objects.begin(), StackObject(Size, 1, SPOffset));
|
||||||
return -++NumFixedObjects;
|
return -++NumFixedObjects;
|
||||||
@ -272,7 +272,7 @@ public:
|
|||||||
/// CreateStackObject - Create a new statically sized stack object, returning
|
/// CreateStackObject - Create a new statically sized stack object, returning
|
||||||
/// a postive identifier to represent it.
|
/// a postive identifier to represent it.
|
||||||
///
|
///
|
||||||
int CreateStackObject(unsigned Size, unsigned Alignment) {
|
int CreateStackObject(uint64_t Size, unsigned Alignment) {
|
||||||
// Keep track of the maximum alignment.
|
// Keep track of the maximum alignment.
|
||||||
if (MaxAlignment < Alignment) MaxAlignment = Alignment;
|
if (MaxAlignment < Alignment) MaxAlignment = Alignment;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user