|
@@ -142,10 +142,10 @@ unit cgcpu;
|
|
|
|
|
|
|
|
|
|
const
|
|
const
|
|
- TOpCG2AsmOpConstLo: Array[topcg] of TAsmOp = (A_NONE,A_ADDI,A_ANDI_,A_DIVWU,
|
|
|
|
|
|
+ TOpCG2AsmOpConstLo: Array[topcg] of TAsmOp = (A_NONE,A_MR,A_ADDI,A_ANDI_,A_DIVWU,
|
|
A_DIVW,A_MULLW, A_MULLW, A_NONE,A_NONE,A_ORI,
|
|
A_DIVW,A_MULLW, A_MULLW, A_NONE,A_NONE,A_ORI,
|
|
A_SRAWI,A_SLWI,A_SRWI,A_SUBI,A_XORI);
|
|
A_SRAWI,A_SLWI,A_SRWI,A_SUBI,A_XORI);
|
|
- TOpCG2AsmOpConstHi: Array[topcg] of TAsmOp = (A_NONE,A_ADDIS,A_ANDIS_,
|
|
|
|
|
|
+ TOpCG2AsmOpConstHi: Array[topcg] of TAsmOp = (A_NONE,A_MR,A_ADDIS,A_ANDIS_,
|
|
A_DIVWU,A_DIVW, A_MULLW,A_MULLW,A_NONE,A_NONE,
|
|
A_DIVWU,A_DIVW, A_MULLW,A_MULLW,A_NONE,A_NONE,
|
|
A_ORIS,A_NONE, A_NONE,A_NONE,A_SUBIS,A_XORIS);
|
|
A_ORIS,A_NONE, A_NONE,A_NONE,A_SUBIS,A_XORIS);
|
|
|
|
|
|
@@ -653,6 +653,8 @@ const
|
|
end;
|
|
end;
|
|
|
|
|
|
begin
|
|
begin
|
|
|
|
+ if (op = OP_MOVE) then
|
|
|
|
+ internalerror(2006031401);
|
|
if op = OP_SUB then
|
|
if op = OP_SUB then
|
|
begin
|
|
begin
|
|
a_op_const_reg_reg(list,OP_ADD,size,-a,src,dst);
|
|
a_op_const_reg_reg(list,OP_ADD,size,-a,src,dst);
|
|
@@ -815,10 +817,12 @@ const
|
|
|
|
|
|
const
|
|
const
|
|
op_reg_reg_opcg2asmop: array[TOpCG] of tasmop =
|
|
op_reg_reg_opcg2asmop: array[TOpCG] of tasmop =
|
|
- (A_NONE,A_ADD,A_AND,A_DIVWU,A_DIVW,A_MULLW,A_MULLW,A_NEG,A_NOT,A_OR,
|
|
|
|
|
|
+ (A_NONE,A_MR,A_ADD,A_AND,A_DIVWU,A_DIVW,A_MULLW,A_MULLW,A_NEG,A_NOT,A_OR,
|
|
A_SRAW,A_SLW,A_SRW,A_SUB,A_XOR);
|
|
A_SRAW,A_SLW,A_SRW,A_SUB,A_XOR);
|
|
|
|
|
|
begin
|
|
begin
|
|
|
|
+ if (op = OP_MOVE) then
|
|
|
|
+ internalerror(2006031402);
|
|
case op of
|
|
case op of
|
|
OP_NEG,OP_NOT:
|
|
OP_NEG,OP_NOT:
|
|
begin
|
|
begin
|