* changed checks for support of opmm* calls in hlcg2ll from mms_movescalar

to whether the argument is a float type (the check is there to determine
    whether def_cgsize() can give us a correct result, which it can for
    floating point types but not yet for arrays used as vectors)

git-svn-id: trunk@24685 -
This commit is contained in:
Jonas Maebe 2013-06-01 08:28:32 +00:00
parent c987e1f5b9
commit 3456f20546

View File

@ -776,7 +776,7 @@ implementation
procedure thlcg2ll.a_opmm_reg_reg(list: TAsmList; Op: TOpCG; size: tdef; src, dst: tregister; shuffle: pmmshuffle);
begin
{ no vector support yet }
if shuffle<>mms_movescalar then
if size.typ<>floatdef then
internalerror(2012071221);
cg.a_opmm_reg_reg(list,op,def_cgsize(size),src,dst,shuffle);
end;
@ -784,7 +784,7 @@ implementation
procedure thlcg2ll.a_opmm_ref_reg(list: TAsmList; Op: TOpCG; size: tdef; const ref: treference; reg: tregister; shuffle: pmmshuffle);
begin
{ no vector support yet }
if shuffle<>mms_movescalar then
if size.typ<>floatdef then
internalerror(2012071222);
cg.a_opmm_ref_reg(list,op,def_cgsize(size),ref,reg,shuffle);
end;
@ -792,7 +792,7 @@ implementation
procedure thlcg2ll.a_opmm_loc_reg(list: TAsmList; Op: TOpCG; size: tdef; const loc: tlocation; reg: tregister; shuffle: pmmshuffle);
begin
{ no vector support yet }
if shuffle<>mms_movescalar then
if size.typ<>floatdef then
internalerror(2012071223);
cg.a_opmm_loc_reg(list,op,def_cgsize(size),loc,reg,shuffle);
end;
@ -800,7 +800,7 @@ implementation
procedure thlcg2ll.a_opmm_reg_ref(list: TAsmList; Op: TOpCG; size: tdef; reg: tregister; const ref: treference; shuffle: pmmshuffle);
begin
{ no vector support yet }
if shuffle<>mms_movescalar then
if size.typ<>floatdef then
internalerror(2012071224);
cg.a_opmm_reg_ref(list,op,def_cgsize(size),reg,ref,shuffle);
end;