From 0106a4a537fa2dcea74ce22b207fdf6c9765148a Mon Sep 17 00:00:00 2001 From: peter Date: Sun, 1 Jun 2003 01:03:41 +0000 Subject: [PATCH] * remove unsupported combinations * reg_ref_reg only allowed for refs_lo,refs_hi --- compiler/sparc/aasmcpu.pas | 34 ++++++++-------------------------- 1 file changed, 8 insertions(+), 26 deletions(-) diff --git a/compiler/sparc/aasmcpu.pas b/compiler/sparc/aasmcpu.pas index 9b51ee81c1..7d5a5995e5 100644 --- a/compiler/sparc/aasmcpu.pas +++ b/compiler/sparc/aasmcpu.pas @@ -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)