* mips.h: Document new field descriptors +Q.
(OP_SH_SEQI, OP_MASK_SEQI): New bit mask and shift count for SEQI. opcodes/ * mips-dis.c (print_insn_args): Handle field descriptor +Q. * mips-opc.c (mips_builtin_opcodes): Add Octeon instructions seq, seqi, sne and snei. gas/ * config/tc-mips.c (validate_mips_insn): Handle field descriptor +Q. (mips_ip): Likewise. (macro_build): Likewise. (CPU_HAS_SEQ): New macro. (macro2) <M_SEQ_I, M_SNE_I>: Use it. Emit seq/sne and seqi/snei. gas/testsuite/ * gas/mips/octeon.s, gas/mips/octeon.d: Add tests for seq* and sne*. * gas/mips/octeon-ill.s, gas/mips/octeon-ill.s: Add tests for seqi and snei.
This commit is contained in:
parent
637fe5e44f
commit
dc70030aba
|
@ -7,6 +7,9 @@
|
||||||
(OP_SH_CINSPOS, OP_MASK_CINSPOS, OP_SH_CINSLM1, OP_MASK_CINSLM1):
|
(OP_SH_CINSPOS, OP_MASK_CINSPOS, OP_SH_CINSLM1, OP_MASK_CINSLM1):
|
||||||
New bit masks and shift counts for cins and exts.
|
New bit masks and shift counts for cins and exts.
|
||||||
|
|
||||||
|
* mips.h: Document new field descriptors +Q.
|
||||||
|
(OP_SH_SEQI, OP_MASK_SEQI): New bit mask and shift count for SEQI.
|
||||||
|
|
||||||
2008-04-28 Adam Nemet <anemet@caviumnetworks.com>
|
2008-04-28 Adam Nemet <anemet@caviumnetworks.com>
|
||||||
|
|
||||||
* mips.h (INSN_MACRO): Move it up to the the pinfo macros.
|
* mips.h (INSN_MACRO): Move it up to the the pinfo macros.
|
||||||
|
|
|
@ -222,6 +222,8 @@ Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, US
|
||||||
#define OP_MASK_CINSPOS 0x1f
|
#define OP_MASK_CINSPOS 0x1f
|
||||||
#define OP_SH_CINSLM1 11
|
#define OP_SH_CINSLM1 11
|
||||||
#define OP_MASK_CINSLM1 0x1f
|
#define OP_MASK_CINSLM1 0x1f
|
||||||
|
#define OP_SH_SEQI 6
|
||||||
|
#define OP_MASK_SEQI 0x3ff
|
||||||
|
|
||||||
/* This structure holds information for a particular instruction. */
|
/* This structure holds information for a particular instruction. */
|
||||||
|
|
||||||
|
@ -385,6 +387,7 @@ struct mips_opcode
|
||||||
"+p" Position field of cins/cins32/exts/exts32. Enforces 0 <= pos < 32.
|
"+p" Position field of cins/cins32/exts/exts32. Enforces 0 <= pos < 32.
|
||||||
"+P" Position field of cins/exts aliasing cins32/exts32. Matches if
|
"+P" Position field of cins/exts aliasing cins32/exts32. Matches if
|
||||||
32 <= pos < 64, otherwise skips to next candidate.
|
32 <= pos < 64, otherwise skips to next candidate.
|
||||||
|
"+Q" Immediate field of seqi/snei. Enforces -512 <= imm < 512.
|
||||||
"+s" Length-minus-one field of cins/exts. Enforces: 0 <= lenm1 < 32.
|
"+s" Length-minus-one field of cins/exts. Enforces: 0 <= lenm1 < 32.
|
||||||
"+S" Length-minus-one field of cins32/exts32 or cins/exts aliasing
|
"+S" Length-minus-one field of cins32/exts32 or cins/exts aliasing
|
||||||
cint32/exts32. Enforces non-negative value and that
|
cint32/exts32. Enforces non-negative value and that
|
||||||
|
@ -406,7 +409,7 @@ struct mips_opcode
|
||||||
Extension character sequences used so far ("+" followed by the
|
Extension character sequences used so far ("+" followed by the
|
||||||
following), for quick reference when adding more:
|
following), for quick reference when adding more:
|
||||||
"1234"
|
"1234"
|
||||||
"ABCDEFGHIPSTX"
|
"ABCDEFGHIPQSTX"
|
||||||
"pstx"
|
"pstx"
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue