mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-16 13:39:26 +02:00
- method CheckNonCommutativeOpcode removed as not used
This commit is contained in:
parent
e94e497653
commit
60e724a520
@ -51,36 +51,35 @@ type
|
||||
constructor op_ref_ref(op:tasmop;_size:topsize;const _op1,_op2:treference);
|
||||
constructor op_reg_reg_reg(op:tasmop;_op1,_op2,_op3:tregister);
|
||||
constructor op_reg_const_reg(Op:TAsmOp;SrcReg:TRegister;value:aWord;DstReg:TRegister);
|
||||
constructor op_const_ref_reg(op:tasmop;_size:topsize;_op1:aword;const _op2:treference;_op3:tregister);
|
||||
constructor op_const_reg_ref(op:tasmop;_size:topsize;_op1:aword;_op2:tregister;const _op3:treference);
|
||||
constructor op_const_ref_reg(op:tasmop;_size:topsize;_op1:aword;const _op2:treference;_op3:tregister);
|
||||
constructor op_const_reg_ref(op:tasmop;_size:topsize;_op1:aword;_op2:tregister;const _op3:treference);
|
||||
|
||||
{ this is for Jmp instructions }
|
||||
constructor op_cond_sym(op:tasmop;cond:TAsmCond;_size:topsize;_op1:tasmsymbol);
|
||||
constructor op_sym(op:tasmop;_size:topsize;_op1:tasmsymbol);
|
||||
constructor op_sym_ofs(op:tasmop;_size:topsize;_op1:tasmsymbol;_op1ofs:longint);
|
||||
constructor op_sym_ofs_reg(op:tasmop;_size:topsize;_op1:tasmsymbol;_op1ofs:longint;_op2:tregister);
|
||||
constructor op_sym_ofs_ref(op:tasmop;_size:topsize;_op1:tasmsymbol;_op1ofs:longint;const _op2:treference);
|
||||
constructor op_caddr_reg(op:TAsmOp;rgb:TRegister;cnst:Integer;reg:TRegister);
|
||||
constructor op_raddr_reg(op:TAsmOp;rg1,rg2:TRegister;reg:TRegister);
|
||||
procedure changeopsize(siz:topsize);
|
||||
procedure CheckNonCommutativeOpcodes;
|
||||
procedure loadcaddr(opidx:longint;aReg:TRegister;cnst:Integer);
|
||||
procedure loadraddr(opidx:longint;rg1,rg2:TRegister);
|
||||
constructor op_cond_sym(op:tasmop;cond:TAsmCond;_size:topsize;_op1:tasmsymbol);
|
||||
constructor op_sym(op:tasmop;_size:topsize;_op1:tasmsymbol);
|
||||
constructor op_sym_ofs(op:tasmop;_size:topsize;_op1:tasmsymbol;_op1ofs:longint);
|
||||
constructor op_sym_ofs_reg(op:tasmop;_size:topsize;_op1:tasmsymbol;_op1ofs:longint;_op2:tregister);
|
||||
constructor op_sym_ofs_ref(op:tasmop;_size:topsize;_op1:tasmsymbol;_op1ofs:longint;const _op2:treference);
|
||||
constructor op_caddr_reg(op:TAsmOp;rgb:TRegister;cnst:Integer;reg:TRegister);
|
||||
constructor op_raddr_reg(op:TAsmOp;rg1,rg2:TRegister;reg:TRegister);
|
||||
procedure changeopsize(siz:topsize);
|
||||
procedure loadcaddr(opidx:longint;aReg:TRegister;cnst:Integer);
|
||||
procedure loadraddr(opidx:longint;rg1,rg2:TRegister);
|
||||
private
|
||||
procedure init(_size:topsize);{this need to be called by all constructor}
|
||||
public
|
||||
{ the next will reset all instructions that can change in pass 2 }
|
||||
procedure SetCondition(const c:TAsmCond);
|
||||
procedure init(_size:topsize);{this need to be called by all constructor}
|
||||
public
|
||||
{ the next will reset all instructions that can change in pass 2 }
|
||||
procedure SetCondition(const c:TAsmCond);
|
||||
private
|
||||
{ next fields are filled in pass1, so pass2 is faster }
|
||||
insentry : PInsEntry;
|
||||
insoffset,
|
||||
inssize : longint;
|
||||
LastInsOffset : longint; { need to be public to be reset }
|
||||
function InsEnd:longint;
|
||||
function calcsize(p:PInsEntry):longint;
|
||||
function NeedAddrPrefix(opidx:byte):boolean;
|
||||
procedure Swatoperands;
|
||||
{ next fields are filled in pass1, so pass2 is faster }
|
||||
insentry : PInsEntry;
|
||||
insoffset,
|
||||
inssize : longint;
|
||||
LastInsOffset : longint; { need to be public to be reset }
|
||||
function InsEnd:longint;
|
||||
function calcsize(p:PInsEntry):longint;
|
||||
function NeedAddrPrefix(opidx:byte):boolean;
|
||||
procedure Swatoperands;
|
||||
end;
|
||||
PROCEDURE DoneAsm;
|
||||
PROCEDURE InitAsm;
|
||||
@ -310,43 +309,6 @@ procedure taicpu.Swatoperands;
|
||||
{ This check must be done with the operand in ATT order
|
||||
i.e.after swapping in the intel reader
|
||||
but before swapping in the NASM and TASM writers PM }
|
||||
procedure taicpu.CheckNonCommutativeOpcodes;
|
||||
begin
|
||||
{ if ((ops=2) and
|
||||
(oper[0].typ=top_reg) and
|
||||
(oper[1].typ=top_reg) and
|
||||
(oper[0].reg IN [R_F0..RF31])) or
|
||||
(ops=0) then
|
||||
if opcode=A_FSUBR then
|
||||
opcode:=A_FSUB
|
||||
else if opcode=A_FSUB then
|
||||
opcode:=A_FSUBR
|
||||
else if opcode=A_FDIVR then
|
||||
opcode:=A_FDIV
|
||||
else if opcode=A_FDIV then
|
||||
opcode:=A_FDIVR
|
||||
else if opcode=A_FSUBRP then
|
||||
opcode:=A_FSUBP
|
||||
else if opcode=A_FSUBP then
|
||||
opcode:=A_FSUBRP
|
||||
else if opcode=A_FDIVRP then
|
||||
opcode:=A_FDIVP
|
||||
else if opcode=A_FDIVP then
|
||||
opcode:=A_FDIVRP;
|
||||
if ((ops=1) and
|
||||
(oper[0].typ=top_reg) and
|
||||
(oper[0].reg in [R_ST1..R_ST7])) then
|
||||
if opcode=A_FSUBRP then
|
||||
opcode:=A_FSUBP
|
||||
else if opcode=A_FSUBP then
|
||||
opcode:=A_FSUBRP
|
||||
else if opcode=A_FDIVRP then
|
||||
opcode:=A_FDIVP
|
||||
else if opcode=A_FDIVP then
|
||||
opcode:=A_FDIVRP;}
|
||||
end;
|
||||
|
||||
|
||||
{*****************************************************************************
|
||||
Assembler
|
||||
*****************************************************************************}
|
||||
@ -698,7 +660,10 @@ procedure InitAsm;
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.23 2003-05-06 20:27:43 mazen
|
||||
Revision 1.24 2003-05-07 11:28:26 mazen
|
||||
- method CheckNonCommutativeOpcode removed as not used
|
||||
|
||||
Revision 1.23 2003/05/06 20:27:43 mazen
|
||||
* A_BI changed to A_BL
|
||||
|
||||
Revision 1.22 2003/05/06 15:00:36 mazen
|
||||
|
Loading…
Reference in New Issue
Block a user