nios2.h (enum reg_class): Add IJMP_REGS enum value.

2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
	    Sandra Loosemore <sandra@codesourcery.com>

	gcc/
	* config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
	value.
	(REG_CLASS_NAMES): Add "IJMP_REGS".
	(REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
	* config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
	use new "c" register constraint.
	* config/nios2/constraint.md (c): New register constraint
	corresponding to IJMP_REGS.


Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com>

From-SVN: r223082
This commit is contained in:
Chung-Lin Tang 2015-05-12 15:57:22 +00:00 committed by Sandra Loosemore
parent a92a1c274c
commit 3c8c9f0daf
4 changed files with 24 additions and 6 deletions

View File

@ -1,3 +1,15 @@
2015-05-12 Chung-Lin Tang <cltang@codesourcery.com>
Sandra Loosemore <sandra@codesourcery.com>
* config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
value.
(REG_CLASS_NAMES): Add "IJMP_REGS".
(REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
* config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
use new "c" register constraint.
* config/nios2/constraint.md (c): New register constraint
corresponding to IJMP_REGS.
2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,

View File

@ -39,6 +39,9 @@
;; Register constraints
(define_register_constraint "c" "IJMP_REGS"
"A register suitable for an indirect jump.")
(define_register_constraint "j" "SIB_REGS"
"A register suitable for an indirect sibcall.")

View File

@ -173,6 +173,7 @@ enum reg_class
{
NO_REGS,
SIB_REGS,
IJMP_REGS,
GP_REGS,
ALL_REGS,
LIM_REG_CLASSES
@ -183,6 +184,7 @@ enum reg_class
#define REG_CLASS_NAMES \
{ "NO_REGS", \
"SIB_REGS", \
"IJMP_REGS", \
"GP_REGS", \
"ALL_REGS" }
@ -190,10 +192,11 @@ enum reg_class
#define REG_CLASS_CONTENTS \
{ \
/* NO_REGS */ { 0, 0}, \
/* SIB_REGS */ { 0xfe0c, 0}, \
/* GP_REGS */ {~0, 0}, \
/* ALL_REGS */ {~0,~0} \
/* NO_REGS */ { 0, 0}, \
/* SIB_REGS */ { 0xfe0c, 0}, \
/* IJMP_REGS */ { 0x7fffffff, 0}, \
/* GP_REGS */ {~0, 0}, \
/* ALL_REGS */ {~0,~0} \
}

View File

@ -697,7 +697,7 @@
; check or adjust for overflow.
(define_insn "indirect_jump"
[(set (pc) (match_operand:SI 0 "register_operand" "r"))]
[(set (pc) (match_operand:SI 0 "register_operand" "c"))]
""
"jmp\\t%0"
[(set_attr "type" "control")])
@ -811,7 +811,7 @@
(define_insn "*tablejump"
[(set (pc)
(match_operand:SI 0 "register_operand" "r"))
(match_operand:SI 0 "register_operand" "c"))
(use (label_ref (match_operand 1 "" "")))]
""
"jmp\\t%0"