Browse Source

* force records with LOC_CONSTANT into memory when they are subscripted

git-svn-id: trunk@26630 -
florian 11 years ago
parent
commit
546f4a5d46
1 changed files with 6 additions and 1 deletions
  1. 6 1
      compiler/ncgmem.pas

+ 6 - 1
compiler/ncgmem.pas

@@ -423,7 +423,12 @@ implementation
                         memory as well }
                       ((left.location.size in [OS_PAIR,OS_SPAIR]) and
                        (vs.fieldoffset div sizeof(aword)<>(vs.fieldoffset+vs.getsize-1) div sizeof(aword))) or
-                      (location.loc in [LOC_MMREGISTER,LOC_FPUREGISTER]) then
+                      (location.loc in [LOC_MMREGISTER,LOC_FPUREGISTER,
+                        { actually, we should be able to "subscript" a constant, but this would require some code
+                          which enables dumping and reading constants from a temporary memory buffer. This
+                          must be done a CPU dependent way, so it is not easy and probably not worth the effort (FK)
+                        }
+                                        LOC_CONSTANT]) then
                      hlcg.location_force_mem(current_asmdata.CurrAsmList,location,left.resultdef)
                    else
                      begin