Explorar o código

* fixed opsize for assignment with LOC_JUMP

peter %!s(int64=24) %!d(string=hai) anos
pai
achega
2f3b205358
Modificáronse 1 ficheiros con 9 adicións e 7 borrados
  1. 9 7
      compiler/i386/n386ld.pas

+ 9 - 7
compiler/i386/n386ld.pas

@@ -780,29 +780,28 @@ implementation
                               end;
                            end;
             LOC_JUMP     : begin
+                              opsize:=def_opsize(left.resulttype.def);
                               getlabel(hlabel);
                               emitlab(truelabel);
                               if pushed then
                                 restore(left,false);
                               if loc=LOC_CREGISTER then
-                                emit_const_reg(A_MOV,S_B,
+                                emit_const_reg(A_MOV,opsize,
                                   1,left.location.register)
                               else
-                                emit_const_ref(A_MOV,S_B,
+                                emit_const_ref(A_MOV,opsize,
                                   1,newreference(left.location.reference));
-                              {emit_const_loc(A_MOV,S_B,
-                                  1,left.location);}
                               emitjmp(C_None,hlabel);
                               emitlab(falselabel);
                               if pushed then
                                 restore(left,false);
                               if loc=LOC_CREGISTER then
-                                emit_reg_reg(A_XOR,S_B,
+                                emit_reg_reg(A_XOR,opsize,
                                   left.location.register,
                                   left.location.register)
                               else
                                 begin
-                                  emit_const_ref(A_MOV,S_B,
+                                  emit_const_ref(A_MOV,opsize,
                                     0,newreference(left.location.reference));
 {$IfDef regallocfix}
                                   del_reference(left.location.reference);
@@ -1073,7 +1072,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.14  2001-05-27 14:30:56  florian
+  Revision 1.15  2001-07-28 15:13:17  peter
+    * fixed opsize for assignment with LOC_JUMP
+
+  Revision 1.14  2001/05/27 14:30:56  florian
     + some widestring stuff added
 
   Revision 1.13  2001/04/13 01:22:19  peter