Commit 8a0b86f5 by Stephane Carrez Committed by Stephane Carrez

invoke.texi: Document -minmax for 68HC12.

	* doc/invoke.texi: Document -minmax for 68HC12.

	* config/m68hc11/m68hc11.md ("umaxqi3"): Use TARGET_MIN_MAX.
	("uminqi3"): Likewise.
	("uminhi3", "umaxhi3"): Likewise.

	* config/m68hc11/m68hc11.h (MASK_MIN_MAX): Define.
	(TARGET_MIN_MAX): Define.
	(TARGET_SWITCHES): New option -minmax/-mnominmax.

From-SVN: r56284
parent d6381f4e
2002-08-14 Stephane Carrez <stcarrez@nerim.fr> 2002-08-14 Stephane Carrez <stcarrez@nerim.fr>
* doc/invoke.texi: Document -minmax for 68HC12.
* config/m68hc11/m68hc11.md ("umaxqi3"): Use TARGET_MIN_MAX.
("uminqi3"): Likewise.
("uminhi3", "umaxhi3"): Likewise.
* config/m68hc11/m68hc11.h (MASK_MIN_MAX): Define.
(TARGET_MIN_MAX): Define.
(TARGET_SWITCHES): New option -minmax/-mnominmax.
2002-08-14 Stephane Carrez <stcarrez@nerim.fr>
* config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Build __far_trampoline. * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Build __far_trampoline.
(MULTILIB_OPTIONS): Must also generate for -mlong-calls. (MULTILIB_OPTIONS): Must also generate for -mlong-calls.
......
...@@ -253,7 +253,7 @@ m68hc11_override_options () ...@@ -253,7 +253,7 @@ m68hc11_override_options ()
target_flags &= ~TARGET_DEFAULT; target_flags &= ~TARGET_DEFAULT;
if (!TARGET_M6812) if (!TARGET_M6812)
target_flags &= ~TARGET_AUTO_INC_DEC; target_flags &= ~(TARGET_AUTO_INC_DEC | TARGET_MIN_MAX);
m68hc11_cost = &m6811_cost; m68hc11_cost = &m6811_cost;
m68hc11_min_offset = 0; m68hc11_min_offset = 0;
m68hc11_max_offset = 256; m68hc11_max_offset = 256;
...@@ -284,7 +284,7 @@ m68hc11_override_options () ...@@ -284,7 +284,7 @@ m68hc11_override_options ()
m68hc11_sp_correction = 0; m68hc11_sp_correction = 0;
m68hc11_tmp_regs_class = TMP_REGS; m68hc11_tmp_regs_class = TMP_REGS;
target_flags &= ~MASK_M6811; target_flags &= ~MASK_M6811;
target_flags |= MASK_NO_DIRECT_MODE; target_flags |= MASK_NO_DIRECT_MODE | MASK_MIN_MAX;
if (m68hc11_soft_reg_count == 0) if (m68hc11_soft_reg_count == 0)
m68hc11_soft_reg_count = "0"; m68hc11_soft_reg_count = "0";
......
...@@ -120,6 +120,7 @@ extern short *reg_renumber; /* def in local_alloc.c */ ...@@ -120,6 +120,7 @@ extern short *reg_renumber; /* def in local_alloc.c */
#define MASK_M6811 0010 #define MASK_M6811 0010
#define MASK_M6812 0020 #define MASK_M6812 0020
#define MASK_NO_DIRECT_MODE 0040 #define MASK_NO_DIRECT_MODE 0040
#define MASK_MIN_MAX 0100
#define MASK_LONG_CALLS 0200 #define MASK_LONG_CALLS 0200
#define TARGET_OP_TIME (optimize && optimize_size == 0) #define TARGET_OP_TIME (optimize && optimize_size == 0)
...@@ -127,6 +128,7 @@ extern short *reg_renumber; /* def in local_alloc.c */ ...@@ -127,6 +128,7 @@ extern short *reg_renumber; /* def in local_alloc.c */
#define TARGET_M6811 (target_flags & MASK_M6811) #define TARGET_M6811 (target_flags & MASK_M6811)
#define TARGET_M6812 (target_flags & MASK_M6812) #define TARGET_M6812 (target_flags & MASK_M6812)
#define TARGET_AUTO_INC_DEC (target_flags & MASK_AUTO_INC_DEC) #define TARGET_AUTO_INC_DEC (target_flags & MASK_AUTO_INC_DEC)
#define TARGET_MIN_MAX (target_flags & MASK_MIN_MAX)
#define TARGET_NO_DIRECT_MODE (target_flags & MASK_NO_DIRECT_MODE) #define TARGET_NO_DIRECT_MODE (target_flags & MASK_NO_DIRECT_MODE)
#define TARGET_RELAX (TARGET_NO_DIRECT_MODE) #define TARGET_RELAX (TARGET_NO_DIRECT_MODE)
#define TARGET_LONG_CALLS (target_flags & MASK_LONG_CALLS) #define TARGET_LONG_CALLS (target_flags & MASK_LONG_CALLS)
...@@ -162,6 +164,10 @@ extern short *reg_renumber; /* def in local_alloc.c */ ...@@ -162,6 +164,10 @@ extern short *reg_renumber; /* def in local_alloc.c */
N_("Auto pre/post decrement increment allowed")}, \ N_("Auto pre/post decrement increment allowed")}, \
{ "noauto-incdec", - MASK_AUTO_INC_DEC, \ { "noauto-incdec", - MASK_AUTO_INC_DEC, \
N_("Auto pre/post decrement increment not allowed")}, \ N_("Auto pre/post decrement increment not allowed")}, \
{ "inmax", MASK_MIN_MAX, \
N_("Min/max instructions allowed")}, \
{ "nominmax", MASK_MIN_MAX, \
N_("Min/max instructions not allowed")}, \
{ "long-calls", MASK_LONG_CALLS, \ { "long-calls", MASK_LONG_CALLS, \
N_("Use call and rtc for function calls and returns")}, \ N_("Use call and rtc for function calls and returns")}, \
{ "nolong-calls", - MASK_LONG_CALLS, \ { "nolong-calls", - MASK_LONG_CALLS, \
......
...@@ -1666,7 +1666,7 @@ ...@@ -1666,7 +1666,7 @@
[(set (match_operand:QI 0 "nonimmediate_operand" "=d,m") [(set (match_operand:QI 0 "nonimmediate_operand" "=d,m")
(umin:QI (match_operand:QI 1 "nonimmediate_operand" "%0,0") (umin:QI (match_operand:QI 1 "nonimmediate_operand" "%0,0")
(match_operand:QI 2 "general_operand" "m,d")))] (match_operand:QI 2 "general_operand" "m,d")))]
"TARGET_M6812" "TARGET_M6812 && TARGET_MIN_MAX"
"* "*
{ {
/* Flags are set according to (sub:QI (operand 1) (operand2)). /* Flags are set according to (sub:QI (operand 1) (operand2)).
...@@ -1688,7 +1688,7 @@ ...@@ -1688,7 +1688,7 @@
[(set (match_operand:QI 0 "nonimmediate_operand" "=d,m") [(set (match_operand:QI 0 "nonimmediate_operand" "=d,m")
(umax:QI (match_operand:QI 1 "nonimmediate_operand" "%0,0") (umax:QI (match_operand:QI 1 "nonimmediate_operand" "%0,0")
(match_operand:QI 2 "general_operand" "m,d")))] (match_operand:QI 2 "general_operand" "m,d")))]
"TARGET_M6812" "TARGET_M6812 && TARGET_MIN_MAX"
"* "*
{ {
/* Flags are set according to (sub:QI (operand 1) (operand2)). /* Flags are set according to (sub:QI (operand 1) (operand2)).
...@@ -1710,7 +1710,7 @@ ...@@ -1710,7 +1710,7 @@
[(set (match_operand:HI 0 "nonimmediate_operand" "=d,m") [(set (match_operand:HI 0 "nonimmediate_operand" "=d,m")
(umin:HI (match_operand:HI 1 "nonimmediate_operand" "%0,0") (umin:HI (match_operand:HI 1 "nonimmediate_operand" "%0,0")
(match_operand:HI 2 "general_operand" "m,d")))] (match_operand:HI 2 "general_operand" "m,d")))]
"TARGET_M6812" "TARGET_M6812 && TARGET_MIN_MAX"
"* "*
{ {
/* Flags are set according to (sub:HI (operand 1) (operand2)). */ /* Flags are set according to (sub:HI (operand 1) (operand2)). */
...@@ -1729,7 +1729,7 @@ ...@@ -1729,7 +1729,7 @@
[(set (match_operand:HI 0 "nonimmediate_operand" "=d,m") [(set (match_operand:HI 0 "nonimmediate_operand" "=d,m")
(umax:HI (match_operand:HI 1 "nonimmediate_operand" "%0,0") (umax:HI (match_operand:HI 1 "nonimmediate_operand" "%0,0")
(match_operand:HI 2 "general_operand" "m,d")))] (match_operand:HI 2 "general_operand" "m,d")))]
"TARGET_M6812" "TARGET_M6812 && TARGET_MIN_MAX"
"* "*
{ {
/* Flags are set according to (sub:HI (operand 1) (operand2)). */ /* Flags are set according to (sub:HI (operand 1) (operand2)). */
......
...@@ -338,7 +338,7 @@ in the following sections. ...@@ -338,7 +338,7 @@ in the following sections.
@emph{M68hc1x Options} @emph{M68hc1x Options}
@gccoptlist{ @gccoptlist{
-m6811 -m6812 -m68hc11 -m68hc12 @gol -m6811 -m6812 -m68hc11 -m68hc12 @gol
-mauto-incdec -mlong-calls -mshort -msoft-reg-count=@var{count}} -mauto-incdec -minmax -mlong-calls -mshort -msoft-reg-count=@var{count}}
@emph{VAX Options} @emph{VAX Options}
@gccoptlist{ @gccoptlist{
...@@ -5171,6 +5171,12 @@ when the compiler is configured for 68HC12-based systems. ...@@ -5171,6 +5171,12 @@ when the compiler is configured for 68HC12-based systems.
Enable the use of 68HC12 pre and post auto-increment and auto-decrement Enable the use of 68HC12 pre and post auto-increment and auto-decrement
addressing modes. addressing modes.
@item -minmax
@itemx -nominmax
@opindex minmax
@opindex mnominmax
Enable the use of 68HC12 min and max instructions.
@item -mlong-calls @item -mlong-calls
@itemx -mno-long-calls @itemx -mno-long-calls
@opindex mlong-calls @opindex mlong-calls
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment