Commit 62d45923 by Richard Sandiford Committed by Richard Sandiford

read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted, treating missing ones as "".

	* read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
	treating missing ones as "".
	* config/mips/mips.md: Remove constraints from match_operands and
	match_scratches if they appear in define_expands (except reload*),
	define_peephole2s, define_splits or attribute specifications.
	* config/mips/7000.md, config/mips/sb1.md: Remove match_operand
	constraint strings.

From-SVN: r81676
parent af434fa7
2004-05-10 Richard Sandiford <rsandifo@redhat.com>
* read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
treating missing ones as "".
* config/mips/mips.md: Remove constraints from match_operands and
match_scratches if they appear in define_expands (except reload*),
define_peephole2s, define_splits or attribute specifications.
* config/mips/7000.md, config/mips/sb1.md: Remove match_operand
constraint strings.
2004-05-10 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/rs6000.c (function_arg_boundary): Always align
......
......@@ -113,7 +113,7 @@
(and (eq_attr "cpu" "r7000")
(and (eq_attr "type" "imul,imadd")
(and (eq_attr "mode" "SI")
(match_operand 0 "hilo_operand" ""))))
(match_operand 0 "hilo_operand"))))
"rm7_impydiv+(rm7_impydiv_iter*3)")
;; There are an additional 2 stall cycles.
......@@ -121,7 +121,7 @@
(and (eq_attr "cpu" "r7000")
(and (eq_attr "type" "imul,imadd")
(and (eq_attr "mode" "SI")
(not (match_operand 0 "hilo_operand" "")))))
(not (match_operand 0 "hilo_operand")))))
"rm7_impydiv")
(define_insn_reservation "rm7_impy_di" 9 (and (eq_attr "cpu" "r7000")
......
......@@ -269,13 +269,13 @@
(define_insn_reservation "ir_sb1_mfhi" 1
(and (eq_attr "cpu" "sb1")
(and (eq_attr "type" "mfhilo")
(not (match_operand 1 "lo_operand" ""))))
(not (match_operand 1 "lo_operand"))))
"sb1_ex1")
(define_insn_reservation "ir_sb1_mflo" 1
(and (eq_attr "cpu" "sb1")
(and (eq_attr "type" "mfhilo")
(match_operand 1 "lo_operand" "")))
(match_operand 1 "lo_operand")))
"sb1_ex1")
;; mt{hi,lo} to mul/div is 4 cycles.
......@@ -390,7 +390,7 @@
(define_insn_reservation "ir_sb1_mtxfer" 5
(and (eq_attr "cpu" "sb1")
(and (eq_attr "type" "xfer")
(match_operand 0 "fp_register_operand" "")))
(match_operand 0 "fp_register_operand")))
"sb1_fp0")
;; mfc1 latency 1 cycle.
......@@ -398,7 +398,7 @@
(define_insn_reservation "ir_sb1_mfxfer" 1
(and (eq_attr "cpu" "sb1")
(and (eq_attr "type" "xfer")
(not (match_operand 0 "fp_register_operand" ""))))
(not (match_operand 0 "fp_register_operand"))))
"sb1_fp0")
;; ??? Can deliver at most 1 result per every 6 cycles because of issue
......
......@@ -651,26 +651,28 @@ again:
break;
case 'S':
/* 'S' is an optional string: if a closeparen follows,
just store NULL for this element. */
c = read_skip_spaces (infile);
ungetc (c, infile);
if (c == ')')
{
XSTR (return_rtx, i) = 0;
break;
}
case 'T':
case 's':
{
char *stringbuf;
int star_if_braced;
c = read_skip_spaces (infile);
ungetc (c, infile);
if (c == ')')
{
/* 'S' fields are optional and should be NULL if no string
was given. Also allow normal 's' and 'T' strings to be
omitted, treating them in the same way as empty strings. */
XSTR (return_rtx, i) = (format_ptr[-1] == 'S' ? NULL : "");
break;
}
/* The output template slot of a DEFINE_INSN,
DEFINE_INSN_AND_SPLIT, or DEFINE_PEEPHOLE automatically
gets a star inserted as its first character, if it is
written with a brace block instead of a string constant. */
int star_if_braced = (format_ptr[-1] == 'T');
star_if_braced = (format_ptr[-1] == 'T');
stringbuf = read_string (&rtl_obstack, infile, star_if_braced);
......
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