X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=include%2Fopcode%2Fv850.h;h=436ff3996844d09fd76b90e3e32f4dce730dd4af;hb=081ba1b3c08bce14fac7c6c240734f7bd230f784;hp=a9b8590319f9717427f72b26d38451714376a19f;hpb=1f5595a6f0101767c801ca5533fea5c803045c57;p=deliverable%2Fbinutils-gdb.git diff --git a/include/opcode/v850.h b/include/opcode/v850.h index a9b8590319..436ff39968 100644 --- a/include/opcode/v850.h +++ b/include/opcode/v850.h @@ -1,5 +1,5 @@ /* v850.h -- Header file for NEC V850 opcode table - Copyright 1996 Free Software Foundation, Inc. + Copyright 1996, 1997, 2001, 2003 Free Software Foundation, Inc. Written by J.T. Conklin, Cygnus Support This file is part of GDB, GAS, and the GNU binutils. @@ -16,7 +16,7 @@ the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this file; see the file COPYING. If not, write to the Free -Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef V850_H #define V850_H @@ -45,8 +45,22 @@ struct v850_opcode /* Which (if any) operand is a memory operand. */ unsigned int memop; + + /* Target processor(s). A bit field of processors which support + this instruction. Note a bit field is used as some instructions + are available on multiple, different processor types, whereas + other instructions are only available on one specific type. */ + unsigned int processors; }; +/* Values for the processors field in the v850_opcode structure. */ +#define PROCESSOR_V850 (1 << 0) /* Just the V850. */ +#define PROCESSOR_ALL -1 /* Any processor. */ +#define PROCESSOR_V850E (1 << 1) /* Just the V850E. */ +#define PROCESSOR_NOT_V850 (~ PROCESSOR_V850) /* Any processor except the V850. */ +#define PROCESSOR_V850EA (1 << 2) /* Just the V850EA. */ +#define PROCESSOR_V850E1 (1 << 3) /* Just the V850E1. */ + /* The table itself is sorted by major opcode number, and is otherwise in the order in which the disassembler should consider instructions. */ @@ -82,8 +96,8 @@ struct v850_operand string (the operand will be inserted in any case). If the operand value is legal, *ERRMSG will be unchanged (most operands can accept any value). */ - unsigned long (* insert) PARAMS ((unsigned long instruction, long op, - const char ** errmsg)); + unsigned long (* insert) + (unsigned long instruction, long op, const char ** errmsg); /* Extraction function. This is used by the disassembler. To extract this operand type from an instruction, check this field. @@ -101,7 +115,7 @@ struct v850_operand non-zero if this operand type can not actually be extracted from this operand (i.e., the instruction does not match). If the operand is valid, *INVALID will not be changed. */ - unsigned long (* extract) PARAMS ((unsigned long instruction, int * invalid)); + unsigned long (* extract) (unsigned long instruction, int * invalid); /* One bit syntax flags. */ int flags; @@ -140,7 +154,6 @@ extern const struct v850_operand v850_operands[]; /* The register specified must not be r0 */ #define V850_NOT_R0 0x80 -/* start-sanitize-v850e */ /* push/pop type instruction, V850E specific. */ #define V850E_PUSH_POP 0x100 @@ -149,6 +162,5 @@ extern const struct v850_operand v850_operands[]; /* 32 bit immediate follows instruction, V850E specific. */ #define V850E_IMMEDIATE32 0x400 -/* end-sanitize-v850e */ #endif /* V850_H */