* only handle a_load_const_ref() directly when storing ordinals, as in case

of pointers llvm only supports 0 (as null, which we don't generate either)

git-svn-id: trunk@30676 -
This commit is contained in:
Jonas Maebe 2015-04-19 21:37:49 +00:00
parent e2cf90ad8a
commit 3496129f79

View File

@ -473,8 +473,16 @@ implementation
var
sref: treference;
begin
sref:=make_simple_ref(list,ref,tosize);
list.concat(taillvm.op_size_const_size_ref(la_store,tosize,a,getpointerdef(tosize),sref))
{ llvm instructions do not support pointer constants -> only directly
encode for integers; a_load_const_reg() handles pointers properly }
if is_ordinal(tosize) or
is_64bit(tosize) then
begin
sref:=make_simple_ref(list,ref,tosize);
list.concat(taillvm.op_size_const_size_ref(la_store,tosize,a,getpointerdef(tosize),sref))
end
else
inherited;
end;