Explorar el Código

* don't replace some pointer types in paralocs with int64, gives nicer
results in llvm (fewer needless pointer -> int -> pointer conversions)

git-svn-id: branches/hlcgllvm@26994 -

Jonas Maebe hace 11 años
padre
commit
41a53ef037
Se han modificado 1 ficheros con 5 adiciones y 1 borrados
  1. 5 1
      compiler/x86_64/cpupara.pas

+ 5 - 1
compiler/x86_64/cpupara.pas

@@ -183,7 +183,11 @@ unit cpupara;
              begin
                cl.typ:=X86_64_INTEGER_CLASS;
                if not assigned(cl.def) or
-                  (cl.def.size<size) then
+                  (cl.def.size<size) or
+                  (not(cl.def.typ in [orddef,floatdef,pointerdef]) and
+                   not is_implicit_pointer_object_type(cl.def) and
+                   not is_dynamicstring(cl.def) and
+                   not is_dynamic_array(cl.def)) then
                  cl.def:=u64inttype;
              end;
          end;