From 44c3b54ab2f84cce59ff20b7419b35bbd76dda25 Mon Sep 17 00:00:00 2001 From: William Chen Date: Mon, 11 Jul 2022 11:21:52 -0700 Subject: [PATCH] Not propagating x16 which should be used as temp. --- src/mapleall/maple_be/src/cg/aarch64/aarch64_global.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mapleall/maple_be/src/cg/aarch64/aarch64_global.cpp b/src/mapleall/maple_be/src/cg/aarch64/aarch64_global.cpp index cb198c6b06..7f9df1e093 100644 --- a/src/mapleall/maple_be/src/cg/aarch64/aarch64_global.cpp +++ b/src/mapleall/maple_be/src/cg/aarch64/aarch64_global.cpp @@ -2212,6 +2212,9 @@ bool SameRHSPropPattern::CheckCondition(Insn &insn) { return false; } CHECK_FATAL(prevInsn->GetOperand(kInsnFirstOpnd).IsRegister(), "prevInsn first operand must be register"); + if (static_cast(prevInsn->GetOperand(kInsnFirstOpnd)).GetRegisterNumber() == R16) { + return false; + } if (prevInsn->GetOperand(kInsnSecondOpnd).IsRegister() && RegOperand::IsSameReg(prevInsn->GetOperand(kInsnFirstOpnd), prevInsn->GetOperand(kInsnSecondOpnd))) { return false; -- Gitee