diff options
author | laksen <laksen@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2018-07-23 10:20:32 +0000 |
---|---|---|
committer | laksen <laksen@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2018-07-23 10:20:32 +0000 |
commit | 1db72037b6344c54b058337d2ce7d4b3ba3b2870 (patch) | |
tree | 539847d1f5301be5e0b84c7672e925f9e6efee9e | |
parent | 3d513c151f7b60e80febeb2640bb7b05cad7e776 (diff) | |
download | fpc-1db72037b6344c54b058337d2ce7d4b3ba3b2870.tar.gz |
Fixed missing maybeadjust calls after not operation.
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/laksen@39493 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r-- | riscv_new/compiler/riscv/cgrv.pas | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/riscv_new/compiler/riscv/cgrv.pas b/riscv_new/compiler/riscv/cgrv.pas index 63c1d453ea..d73c800549 100644 --- a/riscv_new/compiler/riscv/cgrv.pas +++ b/riscv_new/compiler/riscv/cgrv.pas @@ -233,9 +233,15 @@ unit cgrv; procedure tcgrv.a_op_reg_reg_reg(list: TAsmList; op: TOpCg; size: tcgsize; src1, src2, dst: tregister); begin if op=OP_NOT then - a_op_const_reg_reg(list,OP_XOR,size,-1,src1,dst) + begin + list.concat(taicpu.op_reg_reg_const(A_XORI,dst,src1,-1)); + maybeadjustresult(list,op,size,dst); + end else if op=OP_NEG then - a_op_reg_reg_reg(list,OP_SUB,size,src1,NR_X0,dst) + begin + list.concat(taicpu.op_reg_reg_reg(A_SUB,dst,NR_X0,src1)); + maybeadjustresult(list,op,size,dst); + end else case op of OP_MOVE: |