From 591451812acb0ff96018fc92f79e8689beb5d868 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Tue, 21 Oct 2014 17:13:48 -0700 Subject: [PATCH] gcc: fix ICE on atomic test-and-set on globals --- gcc/gcc/config/riscv/sync.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/gcc/config/riscv/sync.md b/gcc/gcc/config/riscv/sync.md index 80105efa..cdf22c65 100644 --- a/gcc/gcc/config/riscv/sync.md +++ b/gcc/gcc/config/riscv/sync.md @@ -166,7 +166,7 @@ rtx result = operands[0]; rtx mem = operands[1]; rtx model = operands[2]; - rtx addr = XEXP (mem, 0); + rtx addr = force_reg (Pmode, XEXP (mem, 0)); rtx aligned_addr = gen_reg_rtx (Pmode); emit_move_insn (aligned_addr, gen_rtx_AND (Pmode, addr, GEN_INT (-4)));