Merge remote-tracking branch 'upstream/master'

This commit is contained in:
mrdudz
2014-11-19 15:44:14 +01:00
7 changed files with 59 additions and 32 deletions

View File

@@ -766,8 +766,12 @@ static unsigned Opt_toseqax_tosneax (StackOpData* D, const char* BoolTransformer
InsertEntry (D, X, D->IP++);
/* Lhs load entries can be removed */
D->Lhs.X.Flags |= LI_REMOVE;
D->Lhs.A.Flags |= LI_REMOVE;
if (LoadX->AM != AM65_IMM) {
D->Lhs.X.Flags |= LI_REMOVE;
}
if (LoadA->AM != AM65_IMM) {
D->Lhs.A.Flags |= LI_REMOVE;
}
} else if ((D->Rhs.A.Flags & (LI_DIRECT | LI_RELOAD_Y)) == LI_DIRECT &&
(D->Rhs.X.Flags & (LI_DIRECT | LI_RELOAD_Y)) == LI_DIRECT) {
@@ -790,8 +794,12 @@ static unsigned Opt_toseqax_tosneax (StackOpData* D, const char* BoolTransformer
InsertEntry (D, X, D->IP++);
/* Rhs load entries can be removed */
D->Rhs.X.Flags |= LI_REMOVE;
D->Rhs.A.Flags |= LI_REMOVE;
if (LoadX->AM != AM65_IMM) {
D->Rhs.X.Flags |= LI_REMOVE;
}
if (LoadA->AM != AM65_IMM) {
D->Rhs.A.Flags |= LI_REMOVE;
}
} else if ((D->Rhs.A.Flags & LI_DIRECT) != 0 &&
(D->Rhs.X.Flags & LI_DIRECT) != 0) {

View File

@@ -268,7 +268,9 @@ void EnterFunctionLevel (void)
TagTab = S;
/* Create and assign a new label table */
LabelTab = NewSymTable (SYMTAB_SIZE_LABEL);
S = NewSymTable (SYMTAB_SIZE_LABEL);
S->PrevTab = LabelTab;
LabelTab = S;
}
@@ -286,6 +288,7 @@ void RememberFunctionLevel (struct FuncDesc* F)
/* Don't delete the tables */
SymTab = SymTab->PrevTab;
TagTab = TagTab->PrevTab;
LabelTab = LabelTab->PrevTab;
}