mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-16 05:59:28 +02:00
+ a_loadmm_intreg_reg() and a_loadmm_reg_intreg() implementations
git-svn-id: trunk@29939 -
This commit is contained in:
parent
41fba0c4f7
commit
966a851997
@ -74,6 +74,9 @@ interface
|
||||
procedure a_loadmm_reg_reg(list: TAsmList; fromsize, tosize: tcgsize; reg1, reg2: tregister;shuffle : pmmshuffle);override;
|
||||
procedure a_loadmm_ref_reg(list: TAsmList; fromsize, tosize: tcgsize; const ref: TReference; reg: tregister; shuffle: pmmshuffle);override;
|
||||
procedure a_loadmm_reg_ref(list: TAsmList; fromsize, tosize: tcgsize; reg: tregister; const ref: TReference; shuffle: pmmshuffle);override;
|
||||
|
||||
procedure a_loadmm_intreg_reg(list: TAsmList; fromsize, tosize: tcgsize; intreg, mmreg: tregister; shuffle: pmmshuffle); override;
|
||||
procedure a_loadmm_reg_intreg(list: TAsmList; fromsize, tosize: tcgsize; mmreg, intreg: tregister; shuffle: pmmshuffle); override;
|
||||
{ comparison operations }
|
||||
procedure a_cmp_const_reg_label(list: TAsmList; size: tcgsize; cmp_op: topcmp; a: tcgint; reg: tregister; l: tasmlabel);override;
|
||||
procedure a_cmp_reg_reg_label(list: TAsmList; size: tcgsize; cmp_op: topcmp; reg1, reg2: tregister; l: tasmlabel);override;
|
||||
@ -996,6 +999,28 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
procedure tcgaarch64.a_loadmm_intreg_reg(list: TAsmList; fromsize, tosize: tcgsize; intreg, mmreg: tregister; shuffle: pmmshuffle);
|
||||
begin
|
||||
if not shufflescalar(shuffle) then
|
||||
internalerror(2014122801);
|
||||
if not(tcgsize2size[fromsize] in [4,8]) or
|
||||
(tcgsize2size[fromsize]<>tcgsize2size[tosize]) then
|
||||
internalerror(2014122803);
|
||||
list.concat(taicpu.op_reg_reg(A_INS,mmreg,intreg));
|
||||
end;
|
||||
|
||||
|
||||
procedure tcgaarch64.a_loadmm_reg_intreg(list: TAsmList; fromsize, tosize: tcgsize; mmreg, intreg: tregister; shuffle: pmmshuffle);
|
||||
begin
|
||||
if not shufflescalar(shuffle) then
|
||||
internalerror(2014122802);
|
||||
if not(tcgsize2size[fromsize] in [4,8]) or
|
||||
(tcgsize2size[fromsize]<>tcgsize2size[tosize]) then
|
||||
internalerror(2014122804);
|
||||
list.concat(taicpu.op_reg_reg(A_UMOV,intreg,mmreg));
|
||||
end;
|
||||
|
||||
|
||||
procedure tcgaarch64.a_load_reg_ref_unaligned(list: TAsmList; fromsize, tosize: tcgsize; register: tregister; const ref: treference);
|
||||
var
|
||||
href: treference;
|
||||
|
Loading…
Reference in New Issue
Block a user