- cga.pas redueced to an empty unit

This commit is contained in:
mazen 2002-10-22 13:43:01 +00:00
parent db9dcd1bc3
commit 351c11d2a8
5 changed files with 130 additions and 116 deletions

View File

@ -40,18 +40,16 @@ type
function getfillbuf:pchar;override;
end;
taicpu = class(taicpu_abstract)
opsize:topsize;
constructor op_none(op:tasmop;_size:topsize);
constructor op_reg(op:tasmop;_size:topsize;_op1:tregister);
constructor op_const(op:tasmop;_size:topsize;_op1:aword);
constructor op_ref(op:tasmop;_size:topsize;const _op1:treference);
constructor op_reg_reg(op:tasmop;_size:topsize;_op1,_op2:tregister);
constructor op_reg_ref(op:tasmop;_size:topsize;_op1:tregister;const _op2:treference);
constructor op_reg_const(op:tasmop; _size:topsize; _op1:tregister; _op2:aword);
constructor op_const_reg(op:tasmop;_size:topsize;_op1:aword;_op2:tregister);
constructor op_const_const(op:tasmop;_size:topsize;_op1,_op2:aword);
constructor op_const_ref(op:tasmop;_size:topsize;_op1:aword;const _op2:treference);
constructor op_ref_reg(op:tasmop;_size:topsize;const _op1:treference;_op2:tregister);
opsize:topsize;
constructor op_none(op:tasmop);
constructor op_reg(op:tasmop;reg:tregister);
constructor op_const(op:tasmop;_op1:aword);
constructor op_ref(op:tasmop;const _op1:treference);
constructor op_reg_reg(op:tasmop;_op1,_op2:tregister);
constructor op_reg_ref(op:tasmop;_op1:tregister;const _op2:treference);
constructor op_reg_const(op:tasmop;_op1:tregister;_op2:aword);
constructor op_const_reg(op:tasmop;_op1:aword;_op2:tregister);
constructor op_ref_reg(op:tasmop;const _op1:treference;_op2:tregister);
{ this is only allowed if _op1 is an int value (_op1^.isintvalue=true) }
constructor op_ref_ref(op:tasmop;_size:topsize;const _op1,_op2:treference);
constructor op_reg_reg_reg(op:tasmop;_size:topsize;_op1,_op2,_op3:tregister);
@ -102,6 +100,8 @@ implementation
uses
cutils,
CpuGas;
const
_size=S_L;{To be removed soon}
{****************************************************************************
TAI_ALIGN
****************************************************************************}
@ -158,33 +158,33 @@ procedure taicpu.init(_size:topsize);
{segprefix:=R_NONE;}{This may be only for I386 architecture!}
opsize:=_size;
end;
constructor taicpu.op_none(op:tasmop;_size:topsize);
constructor taicpu.op_none(op:tasmop);
begin
inherited create(op);
init(_size);
end;
constructor taicpu.op_reg(op:tasmop;_size:topsize;_op1:tregister);
constructor taicpu.op_reg(op:tasmop;reg:tregister);
begin
inherited create(op);
init(_size);
ops:=1;
loadreg(0,_op1);
loadreg(0,reg);
end;
constructor taicpu.op_const(op:tasmop;_size:topsize;_op1:aword);
constructor taicpu.op_const(op:tasmop;_op1:aword);
begin
inherited create(op);
init(_size);
ops:=1;
loadconst(0,_op1);
end;
constructor taicpu.op_ref(op:tasmop;_size:topsize;const _op1:treference);
constructor taicpu.op_ref(op:tasmop;const _op1:treference);
begin
inherited create(op);
init(_size);
ops:=1;
loadref(0,_op1);
end;
constructor taicpu.op_reg_reg(op:tasmop;_size:topsize;_op1,_op2:tregister);
constructor taicpu.op_reg_reg(op:tasmop;_op1,_op2:tregister);
begin
inherited create(op);
init(_size);
@ -192,7 +192,7 @@ constructor taicpu.op_reg_reg(op:tasmop;_size:topsize;_op1,_op2:tregister);
loadreg(0,_op1);
loadreg(1,_op2);
end;
constructor taicpu.op_reg_const(op:tasmop; _size:topsize; _op1:tregister; _op2:aword);
constructor taicpu.op_reg_const(op:tasmop;_op1:tregister; _op2:aword);
begin
inherited create(op);
init(_size);
@ -200,7 +200,7 @@ constructor taicpu.op_reg_const(op:tasmop; _size:topsize; _op1:tregister; _op2:a
loadreg(0,_op1);
loadconst(1,_op2);
end;
constructor taicpu.op_reg_ref(op:tasmop;_size:topsize;_op1:tregister;const _op2:treference);
constructor taicpu.op_reg_ref(op:tasmop;_op1:tregister;const _op2:treference);
begin
inherited create(op);
init(_size);
@ -208,7 +208,7 @@ constructor taicpu.op_reg_ref(op:tasmop;_size:topsize;_op1:tregister;const _op2:
loadreg(0,_op1);
loadref(1,_op2);
end;
constructor taicpu.op_const_reg(op:tasmop;_size:topsize;_op1:aword;_op2:tregister);
constructor taicpu.op_const_reg(op:tasmop;_op1:aword;_op2:tregister);
begin
inherited create(op);
init(_size);
@ -216,26 +216,10 @@ constructor taicpu.op_const_reg(op:tasmop;_size:topsize;_op1:aword;_op2:tregiste
loadconst(0,_op1);
loadreg(1,_op2);
end;
constructor taicpu.op_const_const(op:tasmop;_size:topsize;_op1,_op2:aword);
begin
inherited create(op);
init(_size);
ops:=2;
loadconst(0,_op1);
loadconst(1,_op2);
end;
constructor taicpu.op_const_ref(op:tasmop;_size:topsize;_op1:aword;const _op2:treference);
begin
inherited create(op);
init(_size);
ops:=2;
loadconst(0,_op1);
loadref(1,_op2);
end;
constructor taicpu.op_ref_reg(op:tasmop;_size:topsize;const _op1:treference;_op2:tregister);
constructor taicpu.op_ref_reg(op:tasmop;const _op1:treference;_op2:tregister);
begin
inherited create(op);
init(_size);
init(S_L);
ops:=2;
loadref(0,_op1);
loadreg(1,_op2);
@ -1154,7 +1138,10 @@ procedure InitAsm;
end.
{
$Log$
Revision 1.7 2002-10-20 19:01:38 mazen
Revision 1.8 2002-10-22 13:43:01 mazen
- cga.pas redueced to an empty unit
Revision 1.7 2002/10/20 19:01:38 mazen
+ op_raddr_reg and op_caddr_reg added to fix functions prologue
Revision 1.6 2002/10/19 20:35:07 mazen

View File

@ -83,49 +83,50 @@ procedure emitjmp(c:tasmcond;var l:tasmlabel);
end;
procedure emit_none(i:tasmop;s:topsize);
begin
exprasmList.concat(Taicpu.Op_none(i,s));
exprasmList.concat(Taicpu.Op_none(i));
end;
procedure emit_reg(i:tasmop;s:topsize;reg:tregister);
begin
exprasmList.concat(Taicpu.Op_reg(i,s,reg));
exprasmList.concat(Taicpu.Op_reg(i,reg));
end;
procedure emit_ref(i:tasmop;s:topsize;const ref:treference);
begin
exprasmList.concat(Taicpu.Op_ref(i,s,ref));
exprasmList.concat(Taicpu.Op_ref(i,ref));
end;
procedure emit_const(i:tasmop;s:topsize;c:longint);
begin
exprasmList.concat(Taicpu.Op_const(i,s,aword(c)));
exprasmList.concat(Taicpu.Op_const(i,aword(c)));
end;
procedure emit_const_reg(i:tasmop;s:topsize;c:longint;reg:tregister);
begin
exprasmList.concat(Taicpu.Op_const_reg(i,s,aword(c),reg));
exprasmList.concat(Taicpu.Op_const_reg(i,aword(c),reg));
end;
procedure emit_const_ref(i:tasmop;s:topsize;c:longint;const ref:treference);
begin
exprasmList.concat(Taicpu.Op_const_ref(i,s,aword(c),ref));
//exprasmList.concat(Taicpu.Op_const_ref(i,s,aword(c),ref));
InternalError(2002102102);
end;
procedure emit_ref_reg(i:tasmop;s:topsize;const ref:treference;reg:tregister);
begin
exprasmList.concat(Taicpu.Op_ref_reg(i,s,ref,reg));
exprasmList.concat(Taicpu.Op_ref_reg(i,ref,reg));
end;
procedure emit_reg_ref(i:tasmop;s:topsize;reg:tregister;const ref:treference);
begin
exprasmList.concat(Taicpu.Op_reg_ref(i,s,reg,ref));
exprasmList.concat(Taicpu.Op_reg_ref(i,reg,ref));
end;
procedure emit_reg_reg(i:tasmop;s:topsize;reg1,reg2:tregister);
begin
if reg1<>reg2
then
exprasmList.concat(Taicpu.Op_reg_reg(i,s,reg1,reg2));
exprasmList.concat(Taicpu.Op_reg_reg(i,reg1,reg2));
end;
procedure emit_const_reg_reg(i:tasmop;s:topsize;c:longint;reg1,reg2:tregister);
begin
exprasmList.concat(Taicpu.Op_reg_const_reg(i,s,reg1,c,reg2));
exprasmList.concat(Taicpu.Op_reg_const_reg(i,S_L,reg1,c,reg2));
end;
procedure emit_reg_reg_reg(i:tasmop;s:topsize;reg1,reg2,reg3:tregister);
begin
exprasmList.concat(Taicpu.Op_reg_reg_reg(i,s,reg1,reg2,reg3));
exprasmList.concat(Taicpu.Op_reg_reg_reg(i,S_L,reg1,reg2,reg3));
end;
procedure emit_sym(i:tasmop;s:topsize;op:tasmsymbol);
begin
@ -134,7 +135,10 @@ procedure emit_sym(i:tasmop;s:topsize;op:tasmsymbol);
end.
{
$Log$
Revision 1.2 2002-10-13 19:47:34 mazen
Revision 1.3 2002-10-22 13:43:01 mazen
- cga.pas redueced to an empty unit
Revision 1.2 2002/10/13 19:47:34 mazen
- logs removed
Revision 1.1 2002/08/22 08:30:50 mazen

View File

@ -128,10 +128,15 @@ procedure tcgSPARC.a_param_reg(list:TAasmOutput;size:tcgsize;r:tregister;CONST L
end;
procedure tcgSPARC.a_param_const(list:TAasmOutput;size:tcgsize;a:aword;CONST LocPara:TParaLocation);
BEGIN
IF(Size<>OS_32)AND(Size<>OS_S32)
THEN
InternalError(2002032213);
List.Concat(taicpu.op_const(A_LD,S_L,a));
with List do
case Size of
OS_32,OS_S32:
Concat(taicpu.op_const(A_LD,a));
OS_64,OS_S64:
Concat(taicpu.op_const(A_LDD,a));
else
InternalError(2002032213);
end;
END;
procedure tcgSPARC.a_param_ref(list:TAasmOutput;size:tcgsize;const r:TReference;const LocPara:TParaLocation);
var
@ -183,16 +188,16 @@ procedure tcgSPARC.a_paramaddr_ref(list:TAasmOutput;CONST r:TReference;CONST Loc
ELSE IF(r.base=R_NO)AND(r.index<>R_NO)AND
(r.offset=0)AND(r.scalefactor=0)AND(r.symbol=nil)
THEN
list.concat(Taicpu.Op_reg(A_LD,S_L,r.index))
list.concat(Taicpu.Op_reg(A_LD,r.index))
ELSE IF(r.base<>R_NO)AND(r.index=R_NO)AND
(r.offset=0)AND(r.symbol=nil)
THEN
list.concat(Taicpu.Op_reg(A_LD,S_L,r.base))
list.concat(Taicpu.Op_reg(A_LD,r.base))
ELSE
BEGIN
tmpreg:=get_scratch_reg_address(list);
a_loadaddr_ref_reg(list,r,tmpreg);
list.concat(taicpu.op_reg(A_LD,S_L,tmpreg));
list.concat(taicpu.op_reg(A_LD,tmpreg));
free_scratch_reg(list,tmpreg);
END;
END;
@ -200,14 +205,14 @@ procedure tcgSPARC.a_call_name(list:TAasmOutput;CONST s:string);
BEGIN
WITH List,objectlibrary DO
BEGIN
concat(taicpu.op_sym(A_CALL,S_NO,newasmsymbol(s)));
concat(taicpu.op_none(A_NOP,S_NO));
concat(taicpu.op_sym(A_CALL,S_L,newasmsymbol(s)));
concat(taicpu.op_none(A_NOP));
END;
END;
procedure tcgSPARC.a_call_ref(list:TAasmOutput;CONST ref:TReference);
BEGIN
list.concat(taicpu.op_ref(A_CALL,S_NO,ref));
list.concat(taicpu.op_none(A_NOP,S_NO));
list.concat(taicpu.op_ref(A_CALL,ref));
list.concat(taicpu.op_none(A_NOP));
END;
{********************** load instructions ********************}
procedure tcgSPARC.a_load_const_reg(list:TAasmOutput;size:TCGSize;a:aword;reg:TRegister);
@ -224,16 +229,23 @@ procedure tcgSPARC.a_load_const_ref(list:TAasmOutput;size:tcgsize;a:aword;CONST
WITH List DO
IF a=0
THEN
Concat(taicpu.op_reg_ref(A_ST,TCGSize2OpSize[size],R_G0,ref))
Concat(taicpu.op_reg_ref(A_ST,R_G0,ref))
ELSE
BEGIN
a_load_const_reg(list,size,a,R_G1);
list.concat(taicpu.op_reg_ref(A_ST,TCGSize2OpSize[size],R_G1,ref));
case size of
OS_32,OS_S32:
Concat(taicpu.op_reg_ref(A_ST,R_G1,ref));
OS_64,OS_S64:
Concat(taicpu.op_reg_ref(A_STD,R_G1,ref));
else
InternalError(2002102100);
end;
END;
END;
procedure tcgSPARC.a_load_reg_ref(list:TAasmOutput;size:TCGSize;reg:tregister;CONST ref:TReference);
BEGIN
list.concat(taicpu.op_reg_ref(A_LD,TCGSize2OpSize[size],reg,ref));
list.concat(taicpu.op_reg_ref(A_LD,reg,ref));
END;
procedure tcgSPARC.a_load_ref_reg(list:TAasmOutput;size:tcgsize;const ref:TReference;reg:tregister);
var
@ -241,7 +253,7 @@ procedure tcgSPARC.a_load_ref_reg(list:TAasmOutput;size:tcgsize;const ref:TRefer
s:topsize;
begin
sizes2load(size,S_L,op,s);
list.concat(taicpu.op_ref_reg(op,s,ref,reg));
list.concat(taicpu.op_ref_reg(op,ref,reg));
end;
procedure tcgSPARC.a_load_reg_reg(list:TAasmOutput;fromsize,tosize:tcgsize;reg1,reg2:tregister);
var
@ -676,7 +688,7 @@ procedure tcgSPARC.a_op_const_reg(list:TAasmOutput;Op:TOpCG;a:AWord;reg:TRegiste
tmpref.offset := LongInt(a);
if op = OP_SUB then
tmpref.offset := -tmpref.offset;
list.concat(taicpu.op_ref_reg(A_NONE,S_L,tmpref,dst));
list.concat(taicpu.op_ref_reg(A_NONE,tmpref,dst));
end
else internalerror(200112302);
end;
@ -710,7 +722,7 @@ procedure tcgSPARC.a_op_const_reg(list:TAasmOutput;Op:TOpCG;a:AWord;reg:TRegiste
tmpref.base := src1;
tmpref.index := src2;
tmpref.scalefactor := 1;
list.concat(taicpu.op_ref_reg(A_NONE,S_L,tmpref,dst));
list.concat(taicpu.op_ref_reg(A_NONE,tmpref,dst));
end
else internalerror(200112303);
end;
@ -723,19 +735,21 @@ procedure tcgSPARC.a_op_const_reg(list:TAasmOutput;Op:TOpCG;a:AWord;reg:TRegiste
begin
if (a = 0) then
list.concat(taicpu.op_reg_reg(A_CMP,S_L,reg,reg))
list.concat(taicpu.op_reg_reg(A_CMP,reg,reg))
else
list.concat(taicpu.op_const_reg(A_CMP,S_L,a,reg));
list.concat(taicpu.op_const_reg(A_CMP,a,reg));
a_jmp_cond(list,cmp_op,l);
end;
procedure tcgSPARC.a_cmp_const_ref_label(list:TAasmOutput;size:tcgsize;cmp_op:topcmp;a:aword;CONST ref:TReference;
l:tasmlabel);
begin
list.concat(taicpu.op_const_ref(A_CMP,TCgSize2OpSize[size],a,ref));
a_jmp_cond(list,cmp_op,l);
end;
procedure tcgSPARC.a_cmp_const_ref_label(list:TAasmOutput;size:tcgsize;cmp_op:topcmp;a:aword;const ref:TReference;l:tasmlabel);
begin
with List do
begin
Concat(taicpu.op_const(A_LD,a));
Concat(taicpu.op_ref(A_CMP,ref));
end;
a_jmp_cond(list,cmp_op,l);
end;
procedure tcgSPARC.a_cmp_reg_reg_label(list:TAasmOutput;size:tcgsize;cmp_op:topcmp;
reg1,reg2:tregister;l:tasmlabel);
@ -754,7 +768,7 @@ procedure tcgSPARC.a_op_const_reg(list:TAasmOutput;Op:TOpCG;a:AWord;reg:TRegiste
begin
opsize := S_Q{makeregsize(reg,size)};
list.concat(taicpu.op_ref_reg(A_CMP,opsize,ref,reg));
list.concat(taicpu.op_ref_reg(A_CMP,ref,reg));
a_jmp_cond(list,cmp_op,l);
end;
@ -902,10 +916,10 @@ procedure tcgSPARC.a_loadaddr_ref_reg(list:TAasmOutput;CONST ref:TReference;r:tr
tempref:TReference;
begin
get_64bit_ops(op,op1,op2);
list.concat(taicpu.op_ref_reg(op1,S_L,ref,reg.reglo));
list.concat(taicpu.op_ref_reg(op1,ref,reg.reglo));
tempref:=ref;
inc(tempref.offset,4);
list.concat(taicpu.op_ref_reg(op2,S_L,tempref,reg.reghi));
list.concat(taicpu.op_ref_reg(op2,tempref,reg.reghi));
end;
@ -914,8 +928,8 @@ procedure tcgSPARC.a_loadaddr_ref_reg(list:TAasmOutput;CONST ref:TReference;r:tr
op1,op2:TAsmOp;
begin
get_64bit_ops(op,op1,op2);
list.concat(taicpu.op_reg_reg(op1,S_L,regsrc.reglo,regdst.reglo));
list.concat(taicpu.op_reg_reg(op2,S_L,regsrc.reghi,regdst.reghi));
list.concat(taicpu.op_reg_reg(op1,regsrc.reglo,regdst.reglo));
list.concat(taicpu.op_reg_reg(op2,regsrc.reghi,regdst.reghi));
end;
@ -934,8 +948,8 @@ procedure tcgSPARC.a_loadaddr_ref_reg(list:TAasmOutput;CONST ref:TReference;r:tr
begin
// can't use a_op_const_ref because this may use dec/inc
get_64bit_ops(op,op1,op2);
list.concat(taicpu.op_const_reg(op1,S_L,Lo(Value),regdst.reglo));
list.concat(taicpu.op_const_reg(op2,S_L,Hi(Value),regdst.reghi));
list.concat(taicpu.op_const_reg(op1,Lo(Value),regdst.reglo));
list.concat(taicpu.op_const_reg(op2,Hi(Value),regdst.reghi));
end;
else
internalerror(200204021);
@ -943,28 +957,29 @@ procedure tcgSPARC.a_loadaddr_ref_reg(list:TAasmOutput;CONST ref:TReference;r:tr
end;
procedure TCg64fSPARC.a_op64_const_ref(list:TAasmOutput;op:TOpCG;value:qWord;CONST ref:TReference);
var
op1,op2:TAsmOp;
tempref:TReference;
begin
case op of
OP_AND,OP_OR,OP_XOR:
WITH cg DO
begin
a_op_const_ref(list,op,OS_32,Lo(Value),ref);
tempref:=ref;
inc(tempref.offset,4);
a_op_const_ref(list,op,OS_32,Hi(Value),tempref);
end;
OP_ADD, OP_SUB:
procedure TCg64fSPARC.a_op64_const_ref(list:TAasmOutput;op:TOpCG;value:qWord;const ref:TReference);
var
op1,op2:TAsmOp;
tempref:TReference;
begin
case op of
OP_AND,OP_OR,OP_XOR:
with cg do
begin
a_op_const_ref(list,op,OS_32,Lo(Value),ref);
tempref:=ref;
inc(tempref.offset,4);
a_op_const_ref(list,op,OS_32,Hi(Value),tempref);
end;
OP_ADD, OP_SUB:
begin
get_64bit_ops(op,op1,op2);
// can't use a_op_const_ref because this may use dec/inc
list.concat(taicpu.op_const_ref(op1,S_L,Lo(Value),ref));
{ list.concat(taicpu.op_const_ref(op1,Lo(Value),ref));
tempref:=ref;
inc(tempref.offset,4);
list.concat(taicpu.op_const_ref(op2,S_L,Hi(Value),tempref));
list.concat(taicpu.op_const_ref(op2,S_L,Hi(Value),tempref));}
InternalError(2002102101);
end;
else
internalerror(200204022);
@ -1068,8 +1083,8 @@ procedure TCgSparc.g_concatcopy(list:taasmoutput;const source,dest:treference;le
objectlibrary.getlabel(lab);
a_label(list, lab);
list.concat(taicpu.op_reg_const_reg(A_SUB,S_L,countreg,1,countreg));
list.concat(taicpu.op_reg_ref(A_LDF,S_L,R_F0,src));
list.concat(taicpu.op_reg_ref(A_STD,S_L,R_F0,dst));
list.concat(taicpu.op_reg_ref(A_LDF,R_F0,src));
list.concat(taicpu.op_reg_ref(A_STD,R_F0,dst));
//a_jmp(list,A_BC,C_NE,0,lab);
free_scratch_reg(list,countreg);
a_reg_dealloc(list,R_F0);
@ -1221,7 +1236,7 @@ procedure tcgSPARC.floatload(list:TAasmOutput;t:tcgsize;CONST ref:TReference);
s:topsize;
BEGIN
floatloadops(t,op,s);
list.concat(Taicpu.Op_ref(op,s,ref));
list.concat(Taicpu.Op_ref(op,ref));
{ inc(trgcpu(rg).fpuvaroffset);}
END;
procedure tcgSPARC.floatstoreops(t:tcgsize;var op:tasmop;var s:topsize);
@ -1253,7 +1268,7 @@ procedure tcgSPARC.floatstore(list:TAasmOutput;t:tcgsize;CONST ref:TReference);
s:topsize;
BEGIN
floatstoreops(t,op,s);
list.concat(Taicpu.Op_ref(op,s,ref));
list.concat(Taicpu.Op_ref(op,ref));
{ dec(trgcpu(rg).fpuvaroffset);}
END;
BEGIN
@ -1261,7 +1276,10 @@ BEGIN
END.
{
$Log$
Revision 1.17 2002-10-20 19:01:38 mazen
Revision 1.18 2002-10-22 13:43:01 mazen
- cga.pas redueced to an empty unit
Revision 1.17 2002/10/20 19:01:38 mazen
+ op_raddr_reg and op_caddr_reg added to fix functions prologue
Revision 1.16 2002/10/13 21:46:07 mazen

View File

@ -238,11 +238,11 @@ procedure TSparcAddNode.emit_op_right_left(op:TAsmOp;OpSize:TOpsize);
with exprasmlist do
case right.location.loc of
LOC_REGISTER,LOC_CREGISTER:
concat(taicpu.op_reg_reg(op,opsize,right.location.register,left.location.register));
concat(taicpu.op_reg_reg(op,right.location.register,left.location.register));
LOC_REFERENCE,LOC_CREFERENCE :
concat(taicpu.op_ref_reg(op,opsize,right.location.reference,left.location.register));
concat(taicpu.op_ref_reg(op,right.location.reference,left.location.register));
LOC_CONSTANT:
concat(taicpu.op_const_reg(op,opsize,right.location.value,left.location.register));
concat(taicpu.op_const_reg(op,right.location.value,left.location.register));
else
InternalError(200203232);
end;
@ -526,7 +526,10 @@ begin
end.
{
$Log$
Revision 1.4 2002-10-10 20:23:57 mazen
Revision 1.5 2002-10-22 13:43:01 mazen
- cga.pas redueced to an empty unit
Revision 1.4 2002/10/10 20:23:57 mazen
* tabs replaces by spaces
}

View File

@ -263,7 +263,7 @@ implementation
location.register := rg.getregisterfpu(exprasmlist);
{$WARNING FIXME what reallty should be done?}
exprasmlist.concat(taicpu.op_reg_ref(A_LD,S_L,location.register,ref));
exprasmlist.concat(taicpu.op_reg_ref(A_LD,location.register,ref));
tg.ungetiftemp(exprasmlist,ref);
@ -274,8 +274,7 @@ implementation
{ work around bug in some PowerPC processors }
if (tfloatdef(resulttype.def).typ = s32real) then
{$WARNING FIXME what reallty should be done?}
exprasmlist.concat(taicpu.op_reg_reg(A_ADD,S_L,location.register,
location.register));
exprasmlist.concat(taicpu.op_reg_reg(A_ADD,location.register,location.register));
end;
@ -287,7 +286,7 @@ implementation
if (tfloatdef(left.resulttype.def).typ = s64real) and
(tfloatdef(resulttype.def).typ = s32real) then
{$WARNING FIXME what reallty should be done?}
exprasmlist.concat(taicpu.op_reg_reg(A_ADD,S_L,location.register,location.register));
exprasmlist.concat(taicpu.op_reg_reg(A_ADD,location.register,location.register));
end;
@ -422,7 +421,10 @@ begin
end.
{
$Log$
Revision 1.4 2002-10-10 19:57:52 mazen
Revision 1.5 2002-10-22 13:43:01 mazen
- cga.pas redueced to an empty unit
Revision 1.4 2002/10/10 19:57:52 mazen
* Just to update repsitory
Revision 1.3 2002/09/07 15:25:14 peter