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
This commit is contained in:
parent
af434fa7a1
commit
62d4592363
|
@ -1,3 +1,13 @@
|
|||
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")
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue