source: branches/libc-0.6/src/binutils/include/opcode/pj.h

Last change on this file was 610, checked in by bird, 22 years ago

This commit was generated by cvs2svn to compensate for changes in r609,
which included commits to RCS files with non-trunk default branches.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 1.7 KB
Line 
1/* Definitions for decoding the picoJava opcode table.
2 Copyright 1999 Free Software Foundation, Inc.
3 Contributed by Steve Chamberlain of Transmeta (sac@pobox.com).
4
5This program is free software; you can redistribute it and/or modify
6it under the terms of the GNU General Public License as published by
7the Free Software Foundation; either version 2 of the License, or
8(at your option) any later version.
9
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with this program; if not, write to the Free Software
17Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
18
19
20/* Names used to describe the type of instruction arguments, used by
21 the assembler and disassembler. Attributes are encoded in various fields. */
22
23/* reloc size pcrel uns */
24#define O_N 0
25#define O_16 (1<<4 | 2 | (0<<6) | (0<<3))
26#define O_U16 (1<<4 | 2 | (0<<6) | (1<<3))
27#define O_R16 (2<<4 | 2 | (1<<6) | (0<<3))
28#define O_8 (3<<4 | 1 | (0<<6) | (0<<3))
29#define O_U8 (3<<4 | 1 | (0<<6) | (1<<3))
30#define O_R8 (4<<4 | 1 | (0<<6) | (0<<3))
31#define O_R32 (5<<4 | 4 | (1<<6) | (0<<3))
32#define O_32 (6<<4 | 4 | (0<<6) | (0<<3))
33
34#define ASIZE(x) ((x) & 0x7)
35#define PCREL(x) (!!((x) & (1<<6)))
36#define UNS(x) (!!((x) & (1<<3)))
37
38
39typedef struct pj_opc_info_t
40{
41 short opcode;
42 short opcode_next;
43 char len;
44 unsigned char arg[2];
45 union {
46 const char *name;
47 void (*func) PARAMS ((struct pj_opc_info_t *, char *));
48 } u;
49} pj_opc_info_t;
Note: See TracBrowser for help on using the repository browser.