diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2015-05-19 07:10:30 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2015-05-19 07:10:30 +0000 |
commit | 8deccbb7c8e1a654f96a396125fd55a06d908de8 (patch) | |
tree | e80e5feb9d03c58ba2389923025b96b099c6ff0e /gcc/emit-rtl.c | |
parent | 5d2446b1ed3a1b5342eebc4bc6da93740c400428 (diff) | |
download | gcc-8deccbb7c8e1a654f96a396125fd55a06d908de8.tar.gz |
rtl.h (PUT_MODE_RAW): New macro.
gcc/
* rtl.h (PUT_MODE_RAW): New macro.
(PUT_REG_NOTE_KIND): Use it.
(set_mode_and_regno): Declare.
(gen_raw_REG): Change regno to "unsigned int".
(gen_rtx_REG): Change "unsigned" to "unsigned int".
(PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
use set_mode_and_regno to change the mode of registers.
* gengenrtl.c (gendef): Use PUT_MODE_RAW.
* emit-rtl.c (set_mode_and_regno): New function.
(gen_raw_REG): Change regno to unsigned int. Use set_mode_and_regno.
* caller-save.c (reg_save_code): Use set_mode_and_regno.
* expr.c (init_expr_target): Likewise.
* ira.c (setup_prohibited_mode_move_regs): Likewise.
* postreload.c (reload_cse_simplify_operands): Likewise.
From-SVN: r223341
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r-- | gcc/emit-rtl.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index ae67e7a66df..03bd76a206b 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -430,16 +430,24 @@ gen_blockage (void) #endif +/* Set the mode and register number of X to MODE and REGNO. */ + +void +set_mode_and_regno (rtx x, machine_mode mode, unsigned int regno) +{ + PUT_MODE_RAW (x, mode); + SET_REGNO_RAW (x, regno); +} + /* Generate a new REG rtx. Make sure ORIGINAL_REGNO is set properly, and don't attempt to share with the various global pieces of rtl (such as frame_pointer_rtx). */ rtx -gen_raw_REG (machine_mode mode, int regno) +gen_raw_REG (machine_mode mode, unsigned int regno) { rtx x = rtx_alloc_stat (REG PASS_MEM_STAT); - PUT_MODE (x, mode); - SET_REGNO_RAW (x, regno); + set_mode_and_regno (x, mode, regno); REG_ATTRS (x) = NULL; ORIGINAL_REGNO (x) = regno; return x; |