mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-28 21:20:29 +02:00
* check for 64 bit registers in TX86AsmOptimizer.RegReadByInstruction as well for sanity reasons
This commit is contained in:
parent
ba8554fcf5
commit
f75de6c340
@ -904,49 +904,49 @@ unit aoptx86;
|
|||||||
begin
|
begin
|
||||||
case getsupreg(reg) of
|
case getsupreg(reg) of
|
||||||
RS_EAX:
|
RS_EAX:
|
||||||
if [Ch_REAX,Ch_RWEAX,Ch_MEAX]*Ch<>[] then
|
if [Ch_REAX,Ch_RWEAX,Ch_MEAX,Ch_WRAX,Ch_RWRAX,Ch_MRAX]*Ch<>[] then
|
||||||
begin
|
begin
|
||||||
RegReadByInstruction := true;
|
RegReadByInstruction := true;
|
||||||
exit
|
exit
|
||||||
end;
|
end;
|
||||||
RS_ECX:
|
RS_ECX:
|
||||||
if [Ch_RECX,Ch_RWECX,Ch_MECX]*Ch<>[] then
|
if [Ch_RECX,Ch_RWECX,Ch_MECX,Ch_WRCX,Ch_RWRCX,Ch_MRCX]*Ch<>[] then
|
||||||
begin
|
begin
|
||||||
RegReadByInstruction := true;
|
RegReadByInstruction := true;
|
||||||
exit
|
exit
|
||||||
end;
|
end;
|
||||||
RS_EDX:
|
RS_EDX:
|
||||||
if [Ch_REDX,Ch_RWEDX,Ch_MEDX]*Ch<>[] then
|
if [Ch_REDX,Ch_RWEDX,Ch_MEDX,Ch_WRDX,Ch_RWRDX,Ch_MRDX]*Ch<>[] then
|
||||||
begin
|
begin
|
||||||
RegReadByInstruction := true;
|
RegReadByInstruction := true;
|
||||||
exit
|
exit
|
||||||
end;
|
end;
|
||||||
RS_EBX:
|
RS_EBX:
|
||||||
if [Ch_REBX,Ch_RWEBX,Ch_MEBX]*Ch<>[] then
|
if [Ch_REBX,Ch_RWEBX,Ch_MEBX,Ch_WRBX,Ch_RWRBX,Ch_MRBX]*Ch<>[] then
|
||||||
begin
|
begin
|
||||||
RegReadByInstruction := true;
|
RegReadByInstruction := true;
|
||||||
exit
|
exit
|
||||||
end;
|
end;
|
||||||
RS_ESP:
|
RS_ESP:
|
||||||
if [Ch_RESP,Ch_RWESP,Ch_MESP]*Ch<>[] then
|
if [Ch_RESP,Ch_RWESP,Ch_MESP,Ch_WRSP,Ch_RWRSP,Ch_MRSP]*Ch<>[] then
|
||||||
begin
|
begin
|
||||||
RegReadByInstruction := true;
|
RegReadByInstruction := true;
|
||||||
exit
|
exit
|
||||||
end;
|
end;
|
||||||
RS_EBP:
|
RS_EBP:
|
||||||
if [Ch_REBP,Ch_RWEBP,Ch_MEBP]*Ch<>[] then
|
if [Ch_REBP,Ch_RWEBP,Ch_MEBP,Ch_WRBP,Ch_RWRBP,Ch_MRBP]*Ch<>[] then
|
||||||
begin
|
begin
|
||||||
RegReadByInstruction := true;
|
RegReadByInstruction := true;
|
||||||
exit
|
exit
|
||||||
end;
|
end;
|
||||||
RS_ESI:
|
RS_ESI:
|
||||||
if [Ch_RESI,Ch_RWESI,Ch_MESI]*Ch<>[] then
|
if [Ch_RESI,Ch_RWESI,Ch_MESI,Ch_WRSI,Ch_RWRSI,Ch_MRSI]*Ch<>[] then
|
||||||
begin
|
begin
|
||||||
RegReadByInstruction := true;
|
RegReadByInstruction := true;
|
||||||
exit
|
exit
|
||||||
end;
|
end;
|
||||||
RS_EDI:
|
RS_EDI:
|
||||||
if [Ch_REDI,Ch_RWEDI,Ch_MEDI]*Ch<>[] then
|
if [Ch_REDI,Ch_RWEDI,Ch_MEDI,Ch_WRDI,Ch_RWRDI,Ch_MRDI]*Ch<>[] then
|
||||||
begin
|
begin
|
||||||
RegReadByInstruction := true;
|
RegReadByInstruction := true;
|
||||||
exit
|
exit
|
||||||
|
Loading…
Reference in New Issue
Block a user