summaryrefslogtreecommitdiff
path: root/compiler/x86/nx86cnv.pas
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/x86/nx86cnv.pas')
-rw-r--r--compiler/x86/nx86cnv.pas14
1 files changed, 3 insertions, 11 deletions
diff --git a/compiler/x86/nx86cnv.pas b/compiler/x86/nx86cnv.pas
index a4449a6321..8b51b57f54 100644
--- a/compiler/x86/nx86cnv.pas
+++ b/compiler/x86/nx86cnv.pas
@@ -92,13 +92,9 @@ implementation
i : integer;
{$endif not cpu64bitalu}
resflags : tresflags;
- hlabel,oldTrueLabel,oldFalseLabel : tasmlabel;
+ hlabel : tasmlabel;
newsize : tcgsize;
begin
- oldTrueLabel:=current_procinfo.CurrTrueLabel;
- oldFalseLabel:=current_procinfo.CurrFalseLabel;
- current_asmdata.getjumplabel(current_procinfo.CurrTrueLabel);
- current_asmdata.getjumplabel(current_procinfo.CurrFalseLabel);
secondpass(left);
if codegenerror then
exit;
@@ -115,8 +111,6 @@ implementation
hlcg.location_force_reg(current_asmdata.CurrAsmList,location,left.resultdef,resultdef,true)
else
location.size:=newsize;
- current_procinfo.CurrTrueLabel:=oldTrueLabel;
- current_procinfo.CurrFalseLabel:=oldFalseLabel;
exit;
end;
@@ -184,13 +178,13 @@ implementation
location_reset(location,LOC_REGISTER,def_cgsize(resultdef));
location.register:=cg.getintregister(current_asmdata.CurrAsmList,location.size);
current_asmdata.getjumplabel(hlabel);
- cg.a_label(current_asmdata.CurrAsmList,current_procinfo.CurrTrueLabel);
+ cg.a_label(current_asmdata.CurrAsmList,left.location.truelabel);
if not(is_cbool(resultdef)) then
cg.a_load_const_reg(current_asmdata.CurrAsmList,location.size,1,location.register)
else
cg.a_load_const_reg(current_asmdata.CurrAsmList,location.size,-1,location.register);
cg.a_jmp_always(current_asmdata.CurrAsmList,hlabel);
- cg.a_label(current_asmdata.CurrAsmList,current_procinfo.CurrFalseLabel);
+ cg.a_label(current_asmdata.CurrAsmList,left.location.falselabel);
cg.a_load_const_reg(current_asmdata.CurrAsmList,location.size,0,location.register);
cg.a_label(current_asmdata.CurrAsmList,hlabel);
end;
@@ -226,8 +220,6 @@ implementation
cg.a_op_reg_reg(current_asmdata.CurrAsmList,OP_NEG,location.size,location.register,location.register);
end
end;
- current_procinfo.CurrTrueLabel:=oldTrueLabel;
- current_procinfo.CurrFalseLabel:=oldFalseLabel;
end;