+ Xtensa: make use of the LSX/SSX instructions

git-svn-id: trunk@47564 -
This commit is contained in:
florian 2020-11-24 21:22:20 +00:00
parent 9dcf85a8ef
commit 4a05053650
2 changed files with 17 additions and 6 deletions

View File

@ -100,8 +100,13 @@ unit agcpugas;
begin
s:=gas_regname(base);
if index<>NR_NO then
Internalerror(2020030802);
s:=s+','+tostr(offset);
begin
s:=s+','+gas_regname(index);
if offset<>0 then
Internalerror(2020112402);
end
else
s:=s+','+tostr(offset);
end;
end;
getreferencestring:=s;

View File

@ -1179,11 +1179,14 @@ implementation
InternalError(2020032602);
href:=ref;
if assigned(href.symbol) or
(href.index<>NR_NO) or
((href.index<>NR_NO) and (href.offset<>0)) or
(((href.offset<0) or (href.offset>1020) or (href.offset mod 4<>0))) then
fixref(list,href);
list.concat(taicpu.op_reg_ref(A_LSI,reg,href));
if (href.base<>NR_NO) and (href.index<>NR_NO) then
list.concat(taicpu.op_reg_ref(A_LSX,reg,href))
else
list.concat(taicpu.op_reg_ref(A_LSI,reg,href));
if fromsize<>tosize then
a_loadfpu_reg_reg(list,fromsize,tosize,reg,reg);
@ -1198,11 +1201,14 @@ implementation
InternalError(2020032604);
href:=ref;
if assigned(href.symbol) or
(href.index<>NR_NO) or
((href.index<>NR_NO) and (href.offset<>0)) or
(((href.offset<0) or (href.offset>1020) or (href.offset mod 4<>0))) then
fixref(list,href);
list.concat(taicpu.op_reg_ref(A_SSI,reg,href));
if (href.base<>NR_NO) and (href.index<>NR_NO) then
list.concat(taicpu.op_reg_ref(A_SSX,reg,href))
else
list.concat(taicpu.op_reg_ref(A_SSI,reg,href));
end;