Browse Source

* handle non-integer/non-record memory destinations in gen_load_cgpara_loc()

git-svn-id: branches/hlcgllvm@28374 -
Jonas Maebe 11 years ago
parent
commit
ac4c455991
1 changed files with 11 additions and 1 deletions
  1. 11 1
      compiler/llvm/hlcgllvm.pas

+ 11 - 1
compiler/llvm/hlcgllvm.pas

@@ -1266,7 +1266,17 @@ implementation
           case destloc.loc of
             LOC_REFERENCE :
               begin
-                a_load_loc_ref(list,llvmparadef,para.def,hloc,destloc.reference);
+                case def2regtyp(llvmparadef) of
+                  R_INTREGISTER,
+                  R_ADDRESSREGISTER:
+                    a_load_loc_ref(list,llvmparadef,para.def,hloc,destloc.reference);
+                  R_FPUREGISTER:
+                    a_loadfpu_loc_ref(list,llvmparadef,para.def,hloc,destloc.reference);
+                  R_MMREGISTER:
+                    a_loadmm_loc_ref(list,llvmparadef,para.def,hloc,destloc.reference,nil);
+                  else
+                    internalerror(2014080801);
+                  end;
               end;
             LOC_REGISTER:
               begin