@@ -6795,12 +6795,10 @@ EmitMain_P1(IRList *irl, Module *P)
6795
6795
if ( (gl_optimize_flags & OPT_REMOVE_HUB_BSS ) ) {
6796
6796
EmitOp2 (irl , OPC_ADD , stackptr , objbase );
6797
6797
}
6798
- if (!gl_p2 ) {
6799
- // we will need local01, it is referred to in
6800
- // the LMM code
6801
- Operand * local1 = GetLocalReg (0 , 0 );
6802
- local1 -> used = 1 ;
6803
- }
6798
+ // we will need local01, it is referred to in
6799
+ // the LMM code
6800
+ Operand * local1 = GetLocalReg (0 , 0 );
6801
+ local1 -> used = 1 ;
6804
6802
}
6805
6803
6806
6804
if (InCog (firstfunc )) {
@@ -6882,7 +6880,10 @@ EmitMain_P2(IRList *irl, Module *P, Operand *lutstart)
6882
6880
EmitJump (irl , COND_NE , spinlabel );
6883
6881
if ( (gl_optimize_flags & OPT_REMOVE_HUB_BSS ) ) {
6884
6882
EmitOp2 (irl , OPC_MOV , stackptr , objbase );
6885
- EmitOp2 (irl , OPC_ADD , stackptr , NewImmediate (current -> varsize ));
6883
+ // EmitOp2(irl, OPC_ADD, stackptr, NewImmediate(current->varsize));
6884
+ EmitOp1 (irl , OPC_SETQ , NewImmediate (current -> varsize /LONG_SIZE ));
6885
+ ir = EmitOp2 (irl , OPC_WRLONG , NewImmediate (0 ), stackptr );
6886
+ ir -> srceffect = OPEFFECT_POSTINC ;
6886
6887
} else {
6887
6888
EmitMove (irl , stackptr , stacklabel , NULL );
6888
6889
}
0 commit comments