Browse Source

* only check trecorddef(self).contains_cross_aword_field (for checking
whether the record can be kept in a register) after determining that the
record is < 2*sizeof(aword) (it's a much more expensive check, especially
for big records)

git-svn-id: trunk@33190 -

Jonas Maebe 9 years ago
parent
commit
3e59c05ecc
1 changed files with 1 additions and 1 deletions
  1. 1 1
      compiler/symdef.pas

+ 1 - 1
compiler/symdef.pas

@@ -2116,8 +2116,8 @@ implementation
               recsize:=size;
               recsize:=size;
               is_intregable:=
               is_intregable:=
                 ispowerof2(recsize,temp) and
                 ispowerof2(recsize,temp) and
-                not trecorddef(self).contains_cross_aword_field and
                 ((recsize<=sizeof(aint)*2) and
                 ((recsize<=sizeof(aint)*2) and
+                 not trecorddef(self).contains_cross_aword_field and
                  { records cannot go into registers on 16 bit targets for now }
                  { records cannot go into registers on 16 bit targets for now }
                  (sizeof(aint)>2) and
                  (sizeof(aint)>2) and
                  (not trecorddef(self).contains_float_field) or
                  (not trecorddef(self).contains_float_field) or