From 323bb75874942c820781095f0be9c4145b1f48a7 Mon Sep 17 00:00:00 2001 From: Taylor R Campbell Date: Wed, 16 Jan 2019 04:47:13 +0000 Subject: [PATCH] Save an instruction in multiplication with CSETM. --- src/compiler/machines/aarch64/rulfix.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/compiler/machines/aarch64/rulfix.scm b/src/compiler/machines/aarch64/rulfix.scm index 4c8bb82aa..82349f134 100644 --- a/src/compiler/machines/aarch64/rulfix.scm +++ b/src/compiler/machines/aarch64/rulfix.scm @@ -182,9 +182,8 @@ USA. ;; mask is equal to the high 64 bits of a non-overflowing ;; multiply, so its xor with the high 64 bits is zero iff no ;; overflow. - (LAP (MOVZ X ,mask (&U 0)) - (CMP X ,source1 (&U 0)) - (CINV X LT ,mask ,mask) + (LAP (CMP X ,source1 (&U 0)) + (CSETM X LT ,mask) (CMP X ,source2 (&U 0)) (CINV X LT ,mask ,mask) (ASR X ,regnum:scratch-0 ,source1 (&U ,scheme-type-width)) -- 2.25.1