Move sparc opcode hwcaps out of sparc_opcode flags field.
authorDavid S. Miller <davem@redhat.com>
Fri, 27 Apr 2012 18:01:35 +0000 (18:01 +0000)
committerDavid S. Miller <davem@redhat.com>
Fri, 27 Apr 2012 18:01:35 +0000 (18:01 +0000)
commitec668d69b9517c6344f8c659f2014197b780f2da
tree0e4ec531f9bb313be503395288c7cb8a0858229c
parent4d29644716886a249209e5aaf493bde6fe3b1e31
Move sparc opcode hwcaps out of sparc_opcode flags field.

include/opcode/

* sparc.h (struct sparc_opcode): New field 'hwcaps'.
F_MUL32, F_DIV32, F_FDMULD, F_V8PLUS, F_POPC, F_VIS, F_VIS2,
F_ASI_BLK_INIT, F_FMAF, F_VIS3, F_HPC, F_RANDOM, F_TRANS,
F_FJFMAU, F_IMA, F_ASI_CACHE_SPARING, F_HWCAP_MASK): Delete.
(HWCAP_MUL32, HWCAP_DIV32, HWCAP_FSMULD, HWCAP_V8PLUS, HWCAP_POPC,
HWCAP_VIS, HWCAP_VIS2, HWCAP_ASI_BLK_INIT, HWCAP_FMAF,
HWCAP_VIS3, HWCAP_HPC, HWCAP_RANDOM, HWCAP_TRANS, HWCAP_FJFMAU,
HWCAP_IMA, HWCAP_ASI_CACHE_SPARING, HWCAP_AES, HWCAP_DES,
HWCAP_KASUMI, HWCAP_CAMELLIA, HWCAP_MD5, HWCAP_SHA1,
HWCAP_SHA256, HWCAP_SHA512, HWCAP_MPMUL, HWCAP_MONT, HWCAP_PAUSE,
HWCAP_CBCOND, HWCAP_CRC32): New defines.

opcodes/

* sparc-opc.c (sparc_opcodes): Rework table to put HWCAP values
into new struct sparc_opcode 'hwcaps' field instead of 'flags'.

gas/

* config/tc-sparc.c (sparc_arch_table): Rework to use HWCAP_*
masks.
(sparc_md_end): No longer need to translate hwcap_seen values into
ELF hwcap bits, they now match exactly.
(get_hwcap_name): Use HWCAP_* and handle new values.
(sparc_ip): Fetch hwcaps from insn->hwcaps instead of insn->flags.
gas/ChangeLog
gas/config/tc-sparc.c
include/opcode/ChangeLog
include/opcode/sparc.h
opcodes/ChangeLog
opcodes/sparc-opc.c