diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2020-12-17 00:15:04 +0000 |
---|---|---|
committer | Richard Sandiford <richard.sandiford@arm.com> | 2020-12-17 00:15:04 +0000 |
commit | b665081f577d875903570ad64f40278faf0f79a0 (patch) | |
tree | 80017d507a06471713351db5993f09d66c359aac /gcc/rtlanal.c | |
parent | d6c9781e073c359552d361ad34eb07c6c9231573 (diff) | |
download | gcc-b665081f577d875903570ad64f40278faf0f79a0.zip gcc-b665081f577d875903570ad64f40278faf0f79a0.tar.gz gcc-b665081f577d875903570ad64f40278faf0f79a0.tar.bz2 |
recog: Split out a register_asm_p function
verify_changes has a test for whether a particular hard register
is a user-defined register asm. A later patch needs to test the
same thing, so this patch splits it out into a helper.
gcc/
* rtl.h (register_asm_p): Declare.
* recog.c (verify_changes): Split out the test for whether
a hard register is a register asm to...
* rtlanal.c (register_asm_p): ...this new function.
Diffstat (limited to 'gcc/rtlanal.c')
-rw-r--r-- | gcc/rtlanal.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index 6f52150..30d5b0c 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -6617,3 +6617,15 @@ add_auto_inc_notes (rtx_insn *insn, rtx x) add_auto_inc_notes (insn, XVECEXP (x, i, j)); } } + +/* Return true if X is register asm. */ + +bool +register_asm_p (const_rtx x) +{ + return (REG_P (x) + && REG_EXPR (x) != NULL_TREE + && HAS_DECL_ASSEMBLER_NAME_P (REG_EXPR (x)) + && DECL_ASSEMBLER_NAME_SET_P (REG_EXPR (x)) + && DECL_REGISTER (REG_EXPR (x))); +} |