From f21a6b181dded86ef0e5c7ab94f74e5b960fd510 Mon Sep 17 00:00:00 2001 From: Xavier Leroy Date: Sun, 2 Oct 2016 16:17:51 +0200 Subject: Improve code generation for 64-bit signed integer division Implement the 'shift right extended' trick, both in the generic implementation (backend/SplitLong) and in the IA32 port. Note that now SelectDiv depends on SelectLong, and that some work was moved from SelectLong to SelectDiv. --- ia32/ValueAOp.v | 1 + 1 file changed, 1 insertion(+) (limited to 'ia32/ValueAOp.v') diff --git a/ia32/ValueAOp.v b/ia32/ValueAOp.v index ce33341e..c8b3278e 100644 --- a/ia32/ValueAOp.v +++ b/ia32/ValueAOp.v @@ -132,6 +132,7 @@ Definition eval_static_operation (op: operation) (vl: list aval): aval := | Oshllimm n, v1::nil => shll v1 (I n) | Oshrl, v1::v2::nil => shrl v1 v2 | Oshrlimm n, v1::nil => shrl v1 (I n) + | Oshrxlimm n, v1::nil => shrxl v1 (I n) | Oshrlu, v1::v2::nil => shrlu v1 v2 | Oshrluimm n, v1::nil => shrlu v1 (I n) | Ororlimm n, v1::nil => rorl v1 (I n) -- cgit