From b28c01ab9aa51aaa9329af2bdb581afd67a6a639 Mon Sep 17 00:00:00 2001 From: Chung-Ju Wu Date: Sat, 19 May 2018 15:10:08 +0000 Subject: [PATCH] [NDS32] New option -minline-asm-r15. gcc/ * config/nds32/nds32.c (nds32_md_asm_adjust): Consider flag_inline_asm_r15 variable. * config/nds32/nds32.opt (minline-asm-r15): New option. From-SVN: r260400 --- gcc/ChangeLog | 6 ++++++ gcc/config/nds32/nds32.c | 7 +++++-- gcc/config/nds32/nds32.opt | 4 ++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fb259255a16..97aa4e782f2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2018-05-19 Chung-Ju Wu + + * config/nds32/nds32.c + (nds32_md_asm_adjust): Consider flag_inline_asm_r15 variable. + * config/nds32/nds32.opt (minline-asm-r15): New option. + 2018-05-19 Chung-Ju Wu * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS): Add diff --git a/gcc/config/nds32/nds32.c b/gcc/config/nds32/nds32.c index b705ae6a77a..632a54477c3 100644 --- a/gcc/config/nds32/nds32.c +++ b/gcc/config/nds32/nds32.c @@ -4066,8 +4066,11 @@ nds32_md_asm_adjust (vec &outputs ATTRIBUTE_UNUSED, vec &constraints ATTRIBUTE_UNUSED, vec &clobbers, HARD_REG_SET &clobbered_regs) { - clobbers.safe_push (gen_rtx_REG (SImode, TA_REGNUM)); - SET_HARD_REG_BIT (clobbered_regs, TA_REGNUM); + if (!flag_inline_asm_r15) + { + clobbers.safe_push (gen_rtx_REG (SImode, TA_REGNUM)); + SET_HARD_REG_BIT (clobbered_regs, TA_REGNUM); + } return NULL; } diff --git a/gcc/config/nds32/nds32.opt b/gcc/config/nds32/nds32.opt index 9e481549d9d..a9cd72c422b 100644 --- a/gcc/config/nds32/nds32.opt +++ b/gcc/config/nds32/nds32.opt @@ -446,3 +446,7 @@ Always save $lp in the stack. munaligned-access Target Report Var(flag_unaligned_access) Init(0) Enable unaligned word and halfword accesses to packed data. + +minline-asm-r15 +Target Report Var(flag_inline_asm_r15) Init(0) +Allow use r15 for inline ASM. -- 2.30.2