adjustment = FindSPAdjustment (L[1]->Arg);
if (adjustment == 0) {
- /* No SP adjustment needed, remove the whole sequence */
+ /* No SP adjustment needed, remove the whole sequence */
CS_DelEntries (S, I, 9);
}
else if (adjustment >= 65536 - 8) {
- /* If adjustment is in range [-8, 0) we use decsp* calls */
+ /* If adjustment is in range [-8, 0) we use decsp* calls */
char Buf[20];
adjustment = 65536 - adjustment;
xsprintf (Buf, sizeof (Buf), "decsp%u", adjustment);
CS_DelEntries (S, I, 9);
}
else if (adjustment >= 65536 - 255) {
- /* For range [-255, -8) we have ldy #, jsr subysp */
+ /* For range [-255, -8) we have ldy #, jsr subysp */
adjustment = 65536 - adjustment;
Arg = MakeHexArg (adjustment);
X = NewCodeEntry (OP65_LDY, AM65_IMM, Arg, 0, L[1]->LI);
CS_DelEntries (S, I, 9);
}
else if (adjustment > 255) {
- /* For ranges [-32768, 255) and (255, 32767) the only modification
- ** is to replace the absolute with immediate addressing */
+ /* For ranges [-32768, 255) and (255, 32767) the only modification
+ ** is to replace the absolute with immediate addressing
+ */
Arg = MakeHexArg (adjustment & 0xff);
X = NewCodeEntry (OP65_LDA, AM65_IMM, Arg, 0, L[1]->LI);
CS_InsertEntry (S, X, I + 1);
CS_DelEntry (S, I + 6);
}
else if (adjustment > 8) {
- /* For range (8, 255] we have ldy #, jsr addysp */
+ /* For range (8, 255] we have ldy #, jsr addysp */
Arg = MakeHexArg (adjustment & 0xff);
X = NewCodeEntry (OP65_LDY, AM65_IMM, Arg, 0, L[1]->LI);
CS_InsertEntry (S, X, I + 9);
CS_DelEntries (S, I, 9);
}
else {
- /* If adjustment is in range (0, 8] we use incsp* calls */
+ /* If adjustment is in range (0, 8] we use incsp* calls */
char Buf[20];
xsprintf (Buf, sizeof (Buf), "incsp%u", adjustment);
X = NewCodeEntry (OP65_JSR, AM65_ABS, Buf, 0, L[1]->LI);
-SymEntry* FindSymInTable (const SymTable* T, const char* Name, unsigned Hash)
+static SymEntry* FindSymInTable (const SymTable* T, const char* Name, unsigned Hash)
/* Search for an entry in one table */
{
/* Get the start of the hash chain */
}
unsigned short FindSPAdjustment (const char* Name)
-{
/* Search for an entry in the table of SP adjustments */
+{
SymEntry* Entry = FindSymInTable (SPAdjustTab, Name, HashStr (Name));
if (!Entry) {
Internal ("No SP adjustment label entry found");
}
- return Entry->V.G.SPAdjustment;
+ return Entry->V.SPAdjustment;
}
SymEntry* AddLabelSym (const char* Name, unsigned Flags)
g_defdata (CF_CONST | CF_INT, StackPtr - DOR->StackPtr, 0);
/* Optimizer will need the information about the value of SP adjustment
- ** later, so let's preserve it. */
+ ** later, so let's preserve it.
+ */
E = NewSymEntry (LocalLabelName (DOR->LateSP_Label), SC_SPADJUSTMENT);
- E->V.G.SPAdjustment = StackPtr - DOR->StackPtr;
+ E->V.SPAdjustment = StackPtr - DOR->StackPtr;
AddSymEntry (SPAdjustTab, E);
/* Are we jumping into a block with initalization of an object that