* remove unsupported combinations

* reg_ref_reg only allowed for refs_lo,refs_hi
This commit is contained in:
peter 2003-06-01 01:03:41 +00:00
parent 948ef20ecc
commit 0106a4a537

View File

@ -48,8 +48,6 @@ uses
constructor op_reg_reg_reg(op : tasmop;_op1,_op2,_op3 : tregister);
constructor op_reg_ref_reg(op:tasmop;_op1:TRegister;_op2:TReference;_op3:tregister);
constructor op_reg_const_reg(op:tasmop;_op1:TRegister;_op2:aword;_op3:tregister);
constructor op_const_ref_reg(op:tasmop;_op1:aword;const _op2:treference;_op3:tregister);
constructor op_const_reg_ref(op:tasmop;_op1:aword;_op2:tregister;const _op3:treference);
{ this is for Jmp instructions }
constructor op_cond_sym(op : tasmop;cond:TAsmCond;_op1 : tasmsymbol);
@ -181,6 +179,9 @@ implementation
internalerror(2003031214);
if (_op3.enum = R_INTREGISTER) and (_op3.number = NR_NO) then
internalerror(2003031215);
{ only allowed to load the address }
if not(_op2.symaddr in [refs_lo,refs_hi]) then
internalerror(200305311);
ops:=3;
loadreg(0,_op1);
loadref(1,_op2);
@ -202,29 +203,6 @@ implementation
end;
constructor taicpu.op_const_ref_reg(op:tasmop;_op1:aword;const _op2:treference;_op3:tregister);
begin
inherited create(op);
if (_op3.enum = R_INTREGISTER) and (_op3.number = NR_NO) then
internalerror(2003031218);
ops:=3;
loadconst(0,_op1);
loadref(1,_op2);
loadreg(2,_op3);
end;
constructor taicpu.op_const_reg_ref(op:tasmop;_op1:aword;_op2:tregister;const _op3:treference);
begin
inherited create(op);
if (_op2.enum = R_INTREGISTER) and (_op2.number = NR_NO) then
internalerror(2003031219);
ops:=3;
loadconst(0,_op1);
loadreg(1,_op2);
loadref(2,_op3);
end;
constructor taicpu.op_cond_sym(op:tasmop;cond:TAsmCond;_op1:tasmsymbol);
begin
inherited create(op);
@ -262,7 +240,11 @@ implementation
end.
{
$Log$
Revision 1.27 2003-05-30 23:57:08 peter
Revision 1.28 2003-06-01 01:03:41 peter
* remove unsupported combinations
* reg_ref_reg only allowed for refs_lo,refs_hi
Revision 1.27 2003/05/30 23:57:08 peter
* more sparc cleanup
* accumulator removed, splitted in function_return_reg (called) and
function_result_reg (caller)