summaryrefslogtreecommitdiff
path: root/compiler/jvm/hlcgcpu.pas
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/jvm/hlcgcpu.pas')
-rw-r--r--compiler/jvm/hlcgcpu.pas10
1 files changed, 4 insertions, 6 deletions
diff --git a/compiler/jvm/hlcgcpu.pas b/compiler/jvm/hlcgcpu.pas
index 844a0a1632..43ba820671 100644
--- a/compiler/jvm/hlcgcpu.pas
+++ b/compiler/jvm/hlcgcpu.pas
@@ -559,8 +559,6 @@ implementation
begin
maybepreparedivu32(list,op,size,trunc32);
case op of
- OP_NEG,OP_NOT:
- ;
OP_SHL,OP_SHR,OP_SAR:
if not is_64bitint(size) then
a_load_reg_stack(list,size,reg)
@@ -590,8 +588,6 @@ implementation
internalerror(2010121102);
maybepreparedivu32(list,op,size,trunc32);
case op of
- OP_NEG,OP_NOT:
- ;
OP_SHL,OP_SHR,OP_SAR:
begin
if not is_64bitint(size) then
@@ -1157,14 +1153,16 @@ implementation
procedure thlcgjvm.a_op_ref_reg(list: TAsmList; Op: TOpCG; size: tdef; const ref: TReference; reg: TRegister);
begin
- a_load_reg_stack(list,size,reg);
+ if not(op in [OP_NOT,OP_NEG]) then
+ a_load_reg_stack(list,size,reg);
a_op_ref_stack(list,op,size,ref);
a_load_stack_reg(list,size,reg);
end;
procedure thlcgjvm.a_op_reg_reg_reg(list: TAsmList; op: TOpCg; size: tdef; src1, src2, dst: tregister);
begin
- a_load_reg_stack(list,size,src2);
+ if not(op in [OP_NOT,OP_NEG]) then
+ a_load_reg_stack(list,size,src2);
a_op_reg_stack(list,op,size,src1);
a_load_stack_reg(list,size,dst);
end;