Use ldc1 and sdc1 for big endian mips CPU directly

git-svn-id: trunk@21670 -
This commit is contained in:
pierre 2012-06-21 11:51:07 +00:00
parent d2dc860b1b
commit f9930e3f46

View File

@ -228,6 +228,13 @@ unit cpugas;
owner.AsmWriteLn(s);
end;
A_LDC1:
begin
if (target_info.endian = endian_big) then
begin
s := #9 + gas_op2str[A_LDC1] + #9 + getopstr(taicpu(hp).oper[0]^)
+ ',' + getopstr(taicpu(hp).oper[1]^);
end
else
begin
tmpfpu := getopstr(taicpu(hp).oper[0]^);
s := #9 + gas_op2str[A_LWC1] + #9 + tmpfpu + ',' + getopstr(taicpu(hp).oper[1]^); // + '(' + getopstr(taicpu(hp).oper[1]^) + ')';
@ -242,9 +249,17 @@ unit cpugas;
setsupreg(r, getsupreg(r) + 1);
tmpfpu := gas_regname(r);
s := #9 + gas_op2str[A_LWC1] + #9 + tmpfpu + ',' + getopstr_4(taicpu(hp).oper[1]^); // + '(' + getopstr(taicpu(hp).oper[1]^) + ')';
end;
owner.AsmWriteLn(s);
end;
A_SDC1:
begin
if (target_info.endian = endian_big) then
begin
s := #9 + gas_op2str[A_SDC1] + #9 + getopstr(taicpu(hp).oper[0]^)
+ ',' + getopstr(taicpu(hp).oper[1]^);
end
else
begin
tmpfpu := getopstr(taicpu(hp).oper[0]^);
s := #9 + gas_op2str[A_SWC1] + #9 + tmpfpu + ',' + getopstr(taicpu(hp).oper[1]^); //+ ',' + getopstr(taicpu(hp).oper[2]^) + '(' + getopstr(taicpu(hp).oper[1]^) + ')';
@ -258,6 +273,7 @@ unit cpugas;
setsupreg(r, getsupreg(r) + 1);
tmpfpu := gas_regname(r);
s := #9 + gas_op2str[A_SWC1] + #9 + tmpfpu + ',' + getopstr_4(taicpu(hp).oper[1]^); //+ ',' + getopstr(taicpu(hp).oper[2]^) + '(' + getopstr(taicpu(hp).oper[1]^) + ')';
end;
owner.AsmWriteLn(s);
end;
else