diff --git a/compiler/powerpc/nppcadd.pas b/compiler/powerpc/nppcadd.pas index f0999b041c..2a331b494c 100644 --- a/compiler/powerpc/nppcadd.pas +++ b/compiler/powerpc/nppcadd.pas @@ -38,8 +38,8 @@ interface procedure clear_left_right(cmpop: boolean); function getresflags : tresflags; procedure emit_compare(unsigned : boolean); - procedure second_addboolean; procedure second_addfloat; + procedure second_addboolean; procedure second_addsmallset; {$ifdef SUPPORT_MMX} procedure second_addmmx; @@ -54,11 +54,12 @@ interface cutils,verbose,globals, symconst,symdef,paramgr, aasmbase,aasmtai,aasmcpu,defbase,htypechk, - cgbase,cpuinfo,pass_2,regvars, + cgbase,cpuinfo,pass_1,pass_2,regvars, cpupara, ncon,nset, cga,ncgutil,tgobj,rgobj,rgcpu,cgobj,cg64f32; + {***************************************************************************** Helpers *****************************************************************************} @@ -756,9 +757,7 @@ interface end; unequaln: begin - nodetype := equaln; cg.a_jmp_flags(exprasmlist,getresflags,truelabel); - nodetype := unequaln; end; end; end; @@ -832,13 +831,6 @@ interface internalerror(2002072705); end; - { set result location } - if not cmpop then - location_reset(location,LOC_REGISTER,def_cgsize(resulttype.def)) - else - location_reset(location,LOC_JUMP,OS_NO); - - load_left_right(cmpop,(cs_check_overflow in aktlocalswitches) and (nodetype in [addn,subn])); @@ -921,6 +913,14 @@ interface cg.g_overflowcheck(exprasmlist,self); end; + { set result location } + { (emit_compare sets it to LOC_FLAGS for compares, so set the } + { real location only now) (JM) } + if not cmpop then + location_reset(location,LOC_REGISTER,def_cgsize(resulttype.def)) + else + location_reset(location,LOC_JUMP,OS_NO); + clear_left_right(cmpop); end; @@ -1303,7 +1303,10 @@ begin end. { $Log$ - Revision 1.13 2002-08-17 22:09:47 florian + Revision 1.14 2002-08-31 19:26:20 jonas + * fixed 64bit comparisons + + Revision 1.13 2002/08/17 22:09:47 florian * result type handling in tcgcal.pass_2 overhauled * better tnode.dowrite * some ppc stuff fixed