bool run(const std::list<ValuePair>&);
Symbol *assignSlot(const Interval&, const unsigned int size);
- Symbol *offsetSlot(Symbol *, const LValue *);
+ Value *offsetSlot(Value *, const LValue *);
inline int32_t getStackSize() const { return stackSize; }
private:
return slot.sym;
}
-Symbol *
-SpillCodeInserter::offsetSlot(Symbol *base, const LValue *lval)
+Value *
+SpillCodeInserter::offsetSlot(Value *base, const LValue *lval)
{
- if (!base || !lval->compound || (lval->compMask & 0x1))
+ if (!lval->compound || (lval->compMask & 0x1))
return base;
- Symbol *slot = cloneShallow(func, base);
+ Value *slot = cloneShallow(func, base);
slot->reg.data.offset += (ffs(lval->compMask) - 1) * lval->reg.size;
slot->reg.size = lval->reg.size;
{
const DataType ty = typeOfSize(lval->reg.size);
- slot = offsetSlot(slot->asSym(), lval);
+ slot = offsetSlot(slot, lval);
Instruction *st;
if (slot->reg.file == FILE_MEMORY_LOCAL) {
{
const DataType ty = typeOfSize(lval->reg.size);
- slot = offsetSlot(slot->asSym(), lval);
+ slot = offsetSlot(slot, lval);
lval = cloneShallow(func, lval);
Instruction *ld;