Ver código fonte

* fixed r34439 for big endian

git-svn-id: trunk@34444 -
Jonas Maebe 9 anos atrás
pai
commit
997a958f72
1 arquivos alterados com 3 adições e 3 exclusões
  1. 3 3
      compiler/ngtcon.pas

+ 3 - 3
compiler/ngtcon.pas

@@ -1042,14 +1042,14 @@ function get_next_varsym(def: tabstractrecorddef; const SymList:TFPHashObjectLis
                         ftcb.emit_tai(tai_const.create_8bit(setval),def);
                       2:
                         begin
-                          if source_info.endian<>target_info.endian then
+                          if target_info.endian=endian_big then
                             setval:=swap(word(setval));
                           ftcb.emit_tai(tai_const.create_16bit(setval),def);
                         end;
                       4:
                         begin
-                          if source_info.endian<>target_info.endian then
-                            setval:=swap(setval);
+                          if target_info.endian=endian_big then
+                            setval:=swap(word(setval)) shl 16 or (swap(word(setval shr 16)));
                           ftcb.emit_tai(tai_const.create_32bit(setval),def);
                         end;
                       else