mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 09:29:26 +02:00
+ thlcgobj.a_loadfpu/mm_loc_ref()
git-svn-id: branches/hlcgllvm@28372 -
This commit is contained in:
parent
142d5d6d06
commit
a64897ddee
@ -310,6 +310,7 @@ unit hlcgobj;
|
|||||||
procedure a_loadfpu_reg_ref(list: TAsmList; fromsize, tosize: tdef; reg: tregister; const ref: treference); virtual; abstract;
|
procedure a_loadfpu_reg_ref(list: TAsmList; fromsize, tosize: tdef; reg: tregister; const ref: treference); virtual; abstract;
|
||||||
procedure a_loadfpu_ref_ref(list: TAsmList; fromsize, tosize: tdef; const ref1,ref2: treference);virtual;
|
procedure a_loadfpu_ref_ref(list: TAsmList; fromsize, tosize: tdef; const ref1,ref2: treference);virtual;
|
||||||
procedure a_loadfpu_loc_reg(list: TAsmList; fromsize, tosize: tdef; const loc: tlocation; const reg: tregister);virtual;
|
procedure a_loadfpu_loc_reg(list: TAsmList; fromsize, tosize: tdef; const loc: tlocation; const reg: tregister);virtual;
|
||||||
|
procedure a_loadfpu_loc_ref(list: TAsmList; fromsize, tosize: tdef; const loc: tlocation; const ref: treference);virtual;
|
||||||
procedure a_loadfpu_reg_loc(list: TAsmList; fromsize, tosize: tdef; const reg: tregister; const loc: tlocation);virtual;
|
procedure a_loadfpu_reg_loc(list: TAsmList; fromsize, tosize: tdef; const reg: tregister; const loc: tlocation);virtual;
|
||||||
procedure a_loadfpu_reg_cgpara(list : TAsmList;fromsize: tdef;const r : tregister;const cgpara : TCGPara);virtual;
|
procedure a_loadfpu_reg_cgpara(list : TAsmList;fromsize: tdef;const r : tregister;const cgpara : TCGPara);virtual;
|
||||||
procedure a_loadfpu_ref_cgpara(list : TAsmList;fromsize : tdef;const ref : treference;const cgpara : TCGPara);virtual;
|
procedure a_loadfpu_ref_cgpara(list : TAsmList;fromsize : tdef;const ref : treference;const cgpara : TCGPara);virtual;
|
||||||
@ -322,6 +323,7 @@ unit hlcgobj;
|
|||||||
{ required for subsetreg/ref; still tcgsize rather than tdef because of reason mentioned above }
|
{ required for subsetreg/ref; still tcgsize rather than tdef because of reason mentioned above }
|
||||||
procedure a_loadmm_loc_reg(list: TAsmList; fromsize, tosize: tdef; const loc: tlocation; const reg: tregister; shuffle : pmmshuffle);virtual;
|
procedure a_loadmm_loc_reg(list: TAsmList; fromsize, tosize: tdef; const loc: tlocation; const reg: tregister; shuffle : pmmshuffle);virtual;
|
||||||
procedure a_loadmm_reg_loc(list: TAsmList; fromsize, tosize: tdef; const reg: tregister; const loc: tlocation;shuffle : pmmshuffle);virtual;
|
procedure a_loadmm_reg_loc(list: TAsmList; fromsize, tosize: tdef; const reg: tregister; const loc: tlocation;shuffle : pmmshuffle);virtual;
|
||||||
|
procedure a_loadmm_loc_ref(list: TAsmList; fromsize, tosize: tdef; const loc: tlocation; const ref: treference; shuffle : pmmshuffle);virtual;
|
||||||
procedure a_loadmm_reg_cgpara(list: TAsmList; fromsize: tdef; reg: tregister;const cgpara : TCGPara;shuffle : pmmshuffle); virtual;
|
procedure a_loadmm_reg_cgpara(list: TAsmList; fromsize: tdef; reg: tregister;const cgpara : TCGPara;shuffle : pmmshuffle); virtual;
|
||||||
procedure a_loadmm_ref_cgpara(list: TAsmList; fromsize: tdef; const ref: treference;const cgpara : TCGPara;shuffle : pmmshuffle); virtual;
|
procedure a_loadmm_ref_cgpara(list: TAsmList; fromsize: tdef; const ref: treference;const cgpara : TCGPara;shuffle : pmmshuffle); virtual;
|
||||||
procedure a_loadmm_loc_cgpara(list: TAsmList; fromsize: tdef; const loc: tlocation; const cgpara : TCGPara;shuffle : pmmshuffle); virtual;
|
procedure a_loadmm_loc_cgpara(list: TAsmList; fromsize: tdef; const loc: tlocation; const cgpara : TCGPara;shuffle : pmmshuffle); virtual;
|
||||||
@ -2380,6 +2382,26 @@ implementation
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure thlcgobj.a_loadfpu_loc_ref(list: TAsmList; fromsize, tosize: tdef; const loc: tlocation; const ref: treference);
|
||||||
|
var
|
||||||
|
reg: tregister;
|
||||||
|
begin
|
||||||
|
case loc.loc of
|
||||||
|
LOC_REFERENCE, LOC_CREFERENCE:
|
||||||
|
begin
|
||||||
|
reg:=getfpuregister(list,tosize);
|
||||||
|
a_loadfpu_ref_reg(list,fromsize,tosize,loc.reference,reg);
|
||||||
|
a_loadfpu_reg_ref(list,tosize,tosize,reg,ref);
|
||||||
|
end;
|
||||||
|
LOC_FPUREGISTER, LOC_CFPUREGISTER:
|
||||||
|
begin
|
||||||
|
a_loadfpu_reg_ref(list,fromsize,tosize,loc.register,ref);
|
||||||
|
end;
|
||||||
|
else
|
||||||
|
internalerror(2014080802);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure thlcgobj.a_loadfpu_reg_loc(list: TAsmList; fromsize, tosize: tdef; const reg: tregister; const loc: tlocation);
|
procedure thlcgobj.a_loadfpu_reg_loc(list: TAsmList; fromsize, tosize: tdef; const reg: tregister; const loc: tlocation);
|
||||||
begin
|
begin
|
||||||
case loc.loc of
|
case loc.loc of
|
||||||
@ -2504,6 +2526,39 @@ implementation
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure thlcgobj.a_loadmm_loc_ref(list: TAsmList; fromsize, tosize: tdef; const loc: tlocation; const ref: treference; shuffle: pmmshuffle);
|
||||||
|
var
|
||||||
|
intreg, reg: tregister;
|
||||||
|
begin
|
||||||
|
case loc.loc of
|
||||||
|
LOC_MMREGISTER,LOC_CMMREGISTER:
|
||||||
|
a_loadmm_reg_ref(list,fromsize,tosize,loc.register,ref,shuffle);
|
||||||
|
LOC_REFERENCE,LOC_CREFERENCE:
|
||||||
|
begin
|
||||||
|
reg:=getmmregister(list,tosize);
|
||||||
|
a_loadmm_ref_reg(list,fromsize,tosize,loc.reference,reg,shuffle);
|
||||||
|
a_loadmm_reg_ref(list,tosize,tosize,reg,ref,shuffle);
|
||||||
|
end;
|
||||||
|
LOC_REGISTER,LOC_CREGISTER:
|
||||||
|
begin
|
||||||
|
reg:=getmmregister(list,tosize);
|
||||||
|
a_loadmm_intreg_reg(list,fromsize,tosize,loc.register,reg,shuffle);
|
||||||
|
a_loadmm_reg_ref(list,tosize,tosize,reg,ref,shuffle);
|
||||||
|
end;
|
||||||
|
LOC_SUBSETREG,LOC_CSUBSETREG,
|
||||||
|
LOC_SUBSETREF,LOC_CSUBSETREF:
|
||||||
|
begin
|
||||||
|
intreg:=getintregister(list,fromsize);
|
||||||
|
reg:=getmmregister(list,tosize);
|
||||||
|
a_load_loc_reg(list,fromsize,fromsize,loc,intreg);
|
||||||
|
a_loadmm_intreg_reg(list,fromsize,tosize,intreg,reg,shuffle);
|
||||||
|
a_loadmm_reg_ref(list,tosize,tosize,reg,ref,shuffle);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
internalerror(2014080803);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure thlcgobj.a_loadmm_reg_cgpara(list: TAsmList; fromsize: tdef; reg: tregister; const cgpara: TCGPara; shuffle: pmmshuffle);
|
procedure thlcgobj.a_loadmm_reg_cgpara(list: TAsmList; fromsize: tdef; reg: tregister; const cgpara: TCGPara; shuffle: pmmshuffle);
|
||||||
var
|
var
|
||||||
href : treference;
|
href : treference;
|
||||||
|
Loading…
Reference in New Issue
Block a user