mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-19 21:19:31 +02:00
+ a_load_loc_subsetreg
git-svn-id: trunk@3638 -
This commit is contained in:
parent
50ee3a96ad
commit
7131a2beb6
@ -212,6 +212,7 @@ unit cgobj;
|
||||
procedure a_load_ref_ref(list : TAsmList;fromsize,tosize : tcgsize;const sref : treference;const dref : treference);virtual;
|
||||
procedure a_load_loc_reg(list : TAsmList;tosize: tcgsize; const loc: tlocation; reg : tregister);
|
||||
procedure a_load_loc_ref(list : TAsmList;tosize: tcgsize; const loc: tlocation; const ref : treference);
|
||||
procedure a_load_loc_subsetreg(list : TAsmList;subsetregsize,subsetsize: tcgsize; startbit: byte; const loc: tlocation; subsetreg : tregister);
|
||||
procedure a_loadaddr_ref_reg(list : TAsmList;const ref : treference;r : tregister);virtual; abstract;
|
||||
|
||||
procedure a_load_subsetreg_reg(list : TAsmList; subsetregsize, subsetsize: tcgsize; startbit: byte; tosize: tcgsize; subsetreg, destreg: tregister); virtual;
|
||||
@ -1054,6 +1055,23 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
procedure tcg.a_load_loc_subsetreg(list : TAsmList;subsetregsize,subsetsize: tcgsize; startbit: byte; const loc: tlocation; subsetreg : tregister);
|
||||
begin
|
||||
case loc.loc of
|
||||
LOC_REFERENCE,LOC_CREFERENCE:
|
||||
a_load_ref_subsetreg(list,loc.size,subsetregsize,subsetsize,startbit,loc.reference,subsetreg);
|
||||
LOC_REGISTER,LOC_CREGISTER:
|
||||
a_load_reg_subsetreg(list,loc.size,subsetregsize,subsetsize,startbit,loc.register,subsetreg);
|
||||
LOC_CONSTANT:
|
||||
a_load_const_subsetreg(list,subsetregsize,subsetsize,startbit,loc.value,subsetreg);
|
||||
LOC_SUBSETREG,LOC_CSUBSETREG:
|
||||
a_load_subsetreg_subsetreg(list,loc.subsetregsize,loc.size,loc.startbit,subsetregsize,subsetsize,startbit,loc.subsetreg,subsetreg);
|
||||
else
|
||||
internalerror(2006052310);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure tcg.a_load_subsetreg_loc(list: TAsmlist; subsetregsize, subsetsize: tcgsize; startbit: byte; subsetreg: tregister; const loc: tlocation);
|
||||
begin
|
||||
case loc.loc of
|
||||
|
Loading…
Reference in New Issue
Block a user