[PATCH] PR57377: Fix mnemonic attribute
Andreas Krebbel
krebbel@linux.vnet.ibm.com
Thu May 23 13:53:00 GMT 2013
Hi,
when looking for user defined "mnemonic" attribute definitions the
code so far only handles (set_attr ...).
Fixed with the attached patch.
Tested on s390x.
Ok?
Bye,
-Andreas-
2013-05-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
PR target/57377
* gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and
(set_attr_alternative x ...) when searching for user defined
mnemonic attribute.
---
gcc/gensupport.c | 27 !!!!!!!!!!!!!!!!!!!!!!!!!!!
1 file changed, 27 modifications(!)
Index: gcc/gensupport.c
===================================================================
*** gcc/gensupport.c.orig
--- gcc/gensupport.c
*************** gen_mnemonic_attr (void)
*** 2430,2443 ****
bool found = false;
/* Check if the insn definition already has
! (set_attr "mnemonic" ...). */
if (XVEC (insn, 4))
for (i = 0; i < XVECLEN (insn, 4); i++)
! if (strcmp (XSTR (XVECEXP (insn, 4, i), 0), MNEMONIC_ATTR_NAME) == 0)
! {
! found = true;
! break;
! }
if (!found)
gen_mnemonic_setattr (mnemonic_htab, insn);
--- 2430,2458 ----
bool found = false;
/* Check if the insn definition already has
! (set_attr "mnemonic" ...) or (set (attr "mnemonic") ...). */
if (XVEC (insn, 4))
for (i = 0; i < XVECLEN (insn, 4); i++)
! {
! rtx set_attr = XVECEXP (insn, 4, i);
!
! switch (GET_CODE (set_attr))
! {
! case SET_ATTR:
! case SET_ATTR_ALTERNATIVE:
! if (strcmp (XSTR (set_attr, 0), MNEMONIC_ATTR_NAME) == 0)
! found = true;
! break;
! case SET:
! if (GET_CODE (SET_DEST (set_attr)) == ATTR
! && strcmp (XSTR (SET_DEST (set_attr), 0),
! MNEMONIC_ATTR_NAME) == 0)
! found = true;
! break;
! default:
! break;
! }
! }
if (!found)
gen_mnemonic_setattr (mnemonic_htab, insn);
More information about the Gcc-patches
mailing list