From 7a3c93362ec9db804300ed0687ca4efdbdf1f799 Mon Sep 17 00:00:00 2001 From: "J.T. Conklin" Date: Tue, 20 Aug 1996 21:52:59 +0000 Subject: [PATCH] * v850.h: New file. --- include/opcode/.Sanitize | 37 +++++++++++++++++++++++++ include/opcode/ChangeLog | 15 ++++++++++ include/opcode/v850.h | 71 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 123 insertions(+) create mode 100644 include/opcode/v850.h diff --git a/include/opcode/.Sanitize b/include/opcode/.Sanitize index b5a4ca8..2c8521c 100644 --- a/include/opcode/.Sanitize +++ b/include/opcode/.Sanitize @@ -31,6 +31,14 @@ else lose_these_too="${d10v_files} ${lose_these_too}" fi +v850_files="v850.h" + +if ( echo $* | grep keep\-v850 > /dev/null ) ; then + keep_these_too="${v850_files} ${keep_these_too}" +else + lose_these_too="${v850_files} ${lose_these_too}" +fi + # All files listed between the "Things-to-keep:" line and the # "Files-to-sed:" line will be kept. All other files will be removed. @@ -123,6 +131,35 @@ else done fi +v850_files="ChangeLog" +if ( echo $* | grep keep\-v850 > /dev/null ) ; then + for i in $v850_files ; do + if test ! -d $i && (grep sanitize-v850 $i > /dev/null) ; then + if [ -n "${verbose}" ] ; then + echo Keeping v850 stuff in $i + fi + fi + done +else + for i in $v850_files ; do + if test ! -d $i && (grep sanitize-v850 $i > /dev/null) ; then + if [ -n "${verbose}" ] ; then + echo Removing traces of \"v850\" from $i... + fi + cp $i new + sed '/start\-sanitize\-v850/,/end-\sanitize\-v850/d' < $i > new + if [ -n "${safe}" -a ! -f .Recover/$i ] ; then + if [ -n "${verbose}" ] ; then + echo Caching $i in .Recover... + fi + mv $i .Recover + fi + mv new $i + fi + done +fi + + for i in * ; do if test ! -d $i && (grep sanitize $i > /dev/null) ; then echo '***' Some mentions of Sanitize are still left in $i! 1>&2 diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index 1ca28f3..4582cf3 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,3 +1,18 @@ +start-sanitize-v850 +Tue Aug 20 14:52:02 1996 J.T. Conklin + + * v850.h: New file. + +end-sanitize-v850 +Fri Aug 16 14:44:15 1996 James G. Smith + + * mips.h (OP_SH_LOCC, OP_SH_HICC, OP_MASK_CC, OP_SH_COP1NORM, + OP_MASK_COP1NORM, OP_SH_COP1SPEC, OP_MASK_COP1SPEC, + OP_MASK_COP1SCLR, OP_MASK_COP1CMP, OP_SH_COP1CMP, OP_SH_FORMAT, + OP_MASK_FORMAT, OP_SH_TRUE, OP_MASK_TRUE, OP_SH_GE, OP_MASK_GE, + OP_SH_UNSIGNED, OP_MASK_UNSIGNED, OP_SH_HINT, OP_MASK_HINT): + Defined. + Fri Aug 16 00:15:15 1996 Jeffrey A Law (law@cygnus.com) * hppa.h (pitlb, pitlbe, iitlba, iitlbp, fic, fice): Accept diff --git a/include/opcode/v850.h b/include/opcode/v850.h new file mode 100644 index 0000000..0373e38 --- /dev/null +++ b/include/opcode/v850.h @@ -0,0 +1,71 @@ +/* v850.h -- Header file for NEC V850 opcode table + Copyright 1996 Free Software Foundation, Inc. + Written by J.T. Conklin, Cygnus Support + +This file is part of GDB, GAS, and the GNU binutils. + +GDB, GAS, and the GNU binutils are free software; you can redistribute +them and/or modify them under the terms of the GNU General Public +License as published by the Free Software Foundation; either version +1, or (at your option) any later version. + +GDB, GAS, and the GNU binutils are distributed in the hope that they +will be useful, but WITHOUT ANY WARRANTY; without even the implied +warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See +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. */ + +#ifndef V850_H +#define V850_H + +/* The opcode table is an array of struct v850_opcode. */ + +struct v850_opcode +{ + /* The opcode name. */ + const char *name; + + /* The opcode itself. Those bits which will be filled in with + operands are zeroes. */ + unsigned long opcode; + + /* The opcode mask. This is used by the disassembler. This is a + mask containing ones indicating those bits which must match the + opcode field, and zeroes indicating those bits which need not + match (and are presumably filled in by operands). */ + unsigned long mask; + + /* An array of operand codes. Each code is an index into the + operand table. They appear in the order which the operands must + appear in assembly code, and are terminated by a zero. */ + unsigned char operands[8]; +}; + +/* The table itself is sorted by major opcode number, and is otherwise + in the order in which the disassembler should consider + instructions. */ +extern const struct v850_opcode v850_opcodes[]; +extern const int v850_num_opcodes; + + +/* The operands table is an array of struct powerpc_operand. */ + +struct v850_operand +{ + /* The number of bits in the operand. */ + int bits; + + /* How far the operand is left shifted in the instruction. */ + int shift; +}; + +/* Elements in the table are retrieved by indexing with values from + the operands field of the v850_opcodes table. */ + +extern const struct v850_operand v850_operands[]; + + +#endif /* V850_H */ -- 2.7.4