* [PATCH]: New option -minmax for HC12
@ 2002-08-14 0:54 Stephane Carrez
0 siblings, 0 replies; only message in thread
From: Stephane Carrez @ 2002-08-14 0:54 UTC (permalink / raw)
To: gcc-patches
[-- Attachment #1: Type: text/plain, Size: 508 bytes --]
Hi!
This patch adds a -minmax and -mnominmax option to HC12 to enable or
not the use of the min and max instructions.
Committed on mainline.
Stephane
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.
[-- Attachment #2: m68hc11.diffs --]
[-- Type: text/plain, Size: 5365 bytes --]
Index: doc/invoke.texi
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doc/invoke.texi,v
retrieving revision 1.171
diff -u -p -r1.171 invoke.texi
--- doc/invoke.texi 14 Aug 2002 07:14:03 -0000 1.171
+++ doc/invoke.texi 14 Aug 2002 07:47:35 -0000
@@ -338,7 +338,7 @@ in the following sections.
@emph{M68hc1x Options}
@gccoptlist{
-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}
@gccoptlist{
@@ -5170,6 +5170,12 @@ when the compiler is configured for 68HC
@opindex mauto-incdec
Enable the use of 68HC12 pre and post auto-increment and auto-decrement
addressing modes.
+
+@item -minmax
+@itemx -nominmax
+@opindex minmax
+@opindex mnominmax
+Enable the use of 68HC12 min and max instructions.
@item -mlong-calls
@itemx -mno-long-calls
Index: config/m68hc11/m68hc11.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/m68hc11/m68hc11.c,v
retrieving revision 1.52
diff -u -p -r1.52 m68hc11.c
--- config/m68hc11/m68hc11.c 14 Aug 2002 07:14:03 -0000 1.52
+++ config/m68hc11/m68hc11.c 14 Aug 2002 07:47:37 -0000
@@ -253,7 +253,7 @@ m68hc11_override_options ()
target_flags &= ~TARGET_DEFAULT;
if (!TARGET_M6812)
- target_flags &= ~TARGET_AUTO_INC_DEC;
+ target_flags &= ~(TARGET_AUTO_INC_DEC | TARGET_MIN_MAX);
m68hc11_cost = &m6811_cost;
m68hc11_min_offset = 0;
m68hc11_max_offset = 256;
@@ -284,7 +284,7 @@ m68hc11_override_options ()
m68hc11_sp_correction = 0;
m68hc11_tmp_regs_class = TMP_REGS;
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)
m68hc11_soft_reg_count = "0";
Index: config/m68hc11/m68hc11.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/m68hc11/m68hc11.h,v
retrieving revision 1.51
diff -u -p -r1.51 m68hc11.h
--- config/m68hc11/m68hc11.h 14 Aug 2002 07:14:03 -0000 1.51
+++ config/m68hc11/m68hc11.h 14 Aug 2002 07:47:39 -0000
@@ -120,6 +120,7 @@ extern short *reg_renumber; /* def in lo
#define MASK_M6811 0010
#define MASK_M6812 0020
#define MASK_NO_DIRECT_MODE 0040
+#define MASK_MIN_MAX 0100
#define MASK_LONG_CALLS 0200
#define TARGET_OP_TIME (optimize && optimize_size == 0)
@@ -127,6 +128,7 @@ extern short *reg_renumber; /* def in lo
#define TARGET_M6811 (target_flags & MASK_M6811)
#define TARGET_M6812 (target_flags & MASK_M6812)
#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_RELAX (TARGET_NO_DIRECT_MODE)
#define TARGET_LONG_CALLS (target_flags & MASK_LONG_CALLS)
@@ -162,6 +164,10 @@ extern short *reg_renumber; /* def in lo
N_("Auto pre/post decrement increment allowed")}, \
{ "noauto-incdec", - MASK_AUTO_INC_DEC, \
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, \
N_("Use call and rtc for function calls and returns")}, \
{ "nolong-calls", - MASK_LONG_CALLS, \
Index: config/m68hc11/m68hc11.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/m68hc11/m68hc11.md,v
retrieving revision 1.37
diff -u -p -r1.37 m68hc11.md
--- config/m68hc11/m68hc11.md 14 Aug 2002 07:14:03 -0000 1.37
+++ config/m68hc11/m68hc11.md 14 Aug 2002 07:47:40 -0000
@@ -1666,7 +1666,7 @@
[(set (match_operand:QI 0 "nonimmediate_operand" "=d,m")
(umin:QI (match_operand:QI 1 "nonimmediate_operand" "%0,0")
(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)).
@@ -1688,7 +1688,7 @@
[(set (match_operand:QI 0 "nonimmediate_operand" "=d,m")
(umax:QI (match_operand:QI 1 "nonimmediate_operand" "%0,0")
(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)).
@@ -1710,7 +1710,7 @@
[(set (match_operand:HI 0 "nonimmediate_operand" "=d,m")
(umin:HI (match_operand:HI 1 "nonimmediate_operand" "%0,0")
(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)). */
@@ -1729,7 +1729,7 @@
[(set (match_operand:HI 0 "nonimmediate_operand" "=d,m")
(umax:HI (match_operand:HI 1 "nonimmediate_operand" "%0,0")
(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)). */
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2002-08-14 7:54 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-08-14 0:54 [PATCH]: New option -minmax for HC12 Stephane Carrez
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).