Wolfgang Thallergcc16 merge934c3885 months agoHistory
100 lines · 4.8 KB · C
RawDownload
/* xgate.h -- Freescale XGATE opcode list   Copyright (C) 2010-2026 Free Software Foundation, Inc.   Written by Sean Keys (skeys@ipdatasys.com)    This file is part of the GNU opcodes library.    This library is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 3, or (at your option)   any later version.    It is distributed in the hope that it 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, 51 Franklin Street - Fifth Floor, Boston,   MA 02110-1301, USA. */ #ifndef _OPCODE_XGATE_H#define _OPCODE_XGATE_H /* XGATE CCR flag definitions.  */#define XGATE_N_BIT   0x08	/* XGN - Sign Flag */#define XGATE_Z_BIT   0x04	/* XGZ - Zero Flag */#define XGATE_V_BIT   0x02	/* XGV - Overflow Flag */#define XGATE_C_BIT   0x01	/* XGC - Carry Flag */ /* Access Detail Notation   V - Vector fetch: always an aligned word read, lasts for at least one RISC core cycle   P - Program word fetch: always an aligned word read, lasts for at least one RISC core cycle   r - 8-bit data read: lasts for at least one RISC core cycle   R - 16-bit data read: lasts for at least one RISC core cycle   w - 8-bit data write: lasts for at least one RISC core cycle   W - 16-bit data write: lasts for at least one RISC core cycle   A - Alignment cycle: no read or write, lasts for zero or one RISC core cycles   f - Free cycle: no read or write, lasts for one RISC core cycles.  */#define XGATE_CYCLE_V	0x01#define XGATE_CYCLE_P	0x02#define XGATE_CYCLE_r	0x04#define XGATE_CYCLE_R	0x08#define XGATE_CYCLE_w	0x10#define XGATE_CYCLE_W	0x20#define XGATE_CYCLE_A	0x40#define XGATE_CYCLE_f	0x80 /* XGATE operand formats as stored in the XGATE_opcode table.   They are only used by GAS to recognize operands.  */#define XGATE_OP_INH                  ""  /* Inherent.  */#define XGATE_OP_TRI		 "r,r,r"  /* Register followed by two registers.                    */#define XGATE_OP_DYA		   "r,r"  /* Register followed by a register.                       */#define XGATE_OP_IMM16            "r,if"  /* Register followed by 16-bit value.                    */#define XGATE_OP_IMM8	          "r,i8"  /* Register followed by 8-bit value.                      */#define XGATE_OP_IMM4             "r,i4"  /* Register followed by 4-bit value.                     */#define XGATE_OP_IMM3	            "i3"  /* Register followed by 3-bit value.                      */#define XGATE_OP_MON		     "r"  /* Single register.                                       */#define XGATE_OP_MON_R_C	   "r,c"  /* General register followed by ccr register.             */#define XGATE_OP_MON_C_R	   "c,r"  /* CCR register followed by a general register.           */#define XGATE_OP_MON_R_P	   "r,p"  /* General register followed by pc register.              */#define XGATE_OP_IDR		 "r,r,+"  /* Three registers with the third having a -/+ directive. */#define XGATE_OP_IDO5	        "r,r,i5"  /* Two general registers followed by an immediate value.  */#define XGATE_OP_REL9	            "b9"  /* 9-bit value that is relative to the current pc.        */#define XGATE_OP_REL10	            "ba"  /* 10-bit value that is relative to the current pc.       */#define XGATE_OP_DYA_MON	    "=r"/* Macro definitions.  */#define XGATE_OP_IMM16mADD    "r,if; addl addh"#define XGATE_OP_IMM16mAND    "r,if; andl andh"#define XGATE_OP_IMM16mCPC    "r,if; cmpl cpch"#define XGATE_OP_IMM16mSUB    "r,if; subl subh"#define XGATE_OP_IMM16mLDW    "r,if; ldl ldh" /* CPU variant identification.  */#define XGATE_V1 0x1#define XGATE_V2 0x2#define XGATE_V3 0x4 /* The opcode table definitions.  */struct xgate_opcode{  char * name;                  /* Op-code name.  */  char * constraints;           /* Constraint chars.  */  char * format;                /* Bit definitions.  */  unsigned int size;            /* Opcode size in bytes.  */  unsigned int bin_opcode;      /* Binary opcode with operands masked off.  */  unsigned char cycles_min;     /* Minimum cpu cycles needed.  */  unsigned char cycles_max;     /* Maximum cpu cycles needed.  */  unsigned char set_flags_mask; /* CCR flags set.  */  unsigned char clr_flags_mask; /* CCR flags cleared.  */  unsigned char chg_flags_mask; /* CCR flags changed.  */  unsigned char arch;           /* CPU variant.  */}; /* The opcode table.  The table contains all the opcodes (all pages).   You can't rely on the order.  */extern const struct xgate_opcode xgate_opcodes[];extern const int xgate_num_opcodes; #endif /* _OPCODE_XGATE_H */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t