diff options
author | cvs2svn <> | 2011-09-22 00:49:18 +0400 |
---|---|---|
committer | cvs2svn <> | 2011-09-22 00:49:18 +0400 |
commit | 497a19a06251f9eecb3775ed70600eadf84cc5ea (patch) | |
tree | b193c1b9fcc876c56a0dd8cb5bc64fcaab9ba4f2 /include/opcode/bfin.h | |
parent | f4f02a260cd697c595ba8216364c4e9e6081663b (diff) |
This commit was manufactured by cvs2svn to create tag 'cgen-cgen-snapshot-20110701
snapshot-20110701'.
Sprout from binutils-2_22-branch 2011-09-21 20:49:16 UTC cvs2svn 'This commit was manufactured by cvs2svn to create branch 'binutils-'
Cherrypick from master 2011-06-13 15:24:43 UTC Nick Clifton <nickc@redhat.com> ' * configure.ac (tilepro-*-*) New case.':
ChangeLog
Makefile.def
Makefile.in
Makefile.tpl
config/ChangeLog
config/elf.m4
configure
configure.ac
src-release
Delete:
config/picflag.m4
include/COPYING
include/COPYING3
include/ChangeLog
include/ChangeLog-9103
include/MAINTAINERS
include/alloca-conf.h
include/ansidecl.h
include/aout/ChangeLog
include/aout/adobe.h
include/aout/aout64.h
include/aout/ar.h
include/aout/dynix3.h
include/aout/encap.h
include/aout/host.h
include/aout/hp.h
include/aout/hp300hpux.h
include/aout/hppa.h
include/aout/ranlib.h
include/aout/reloc.h
include/aout/stab.def
include/aout/stab_gnu.h
include/aout/sun4.h
include/bfdlink.h
include/binary-io.h
include/bout.h
include/cgen/ChangeLog
include/cgen/basic-modes.h
include/cgen/basic-ops.h
include/cgen/bitset.h
include/coff/ChangeLog
include/coff/ChangeLog-9103
include/coff/alpha.h
include/coff/apollo.h
include/coff/arm.h
include/coff/aux-coff.h
include/coff/ecoff.h
include/coff/external.h
include/coff/go32exe.h
include/coff/h8300.h
include/coff/h8500.h
include/coff/i386.h
include/coff/i860.h
include/coff/i960.h
include/coff/ia64.h
include/coff/internal.h
include/coff/m68k.h
include/coff/m88k.h
include/coff/mcore.h
include/coff/mips.h
include/coff/mipspe.h
include/coff/or32.h
include/coff/pe.h
include/coff/powerpc.h
include/coff/rs6000.h
include/coff/rs6k64.h
include/coff/sh.h
include/coff/sparc.h
include/coff/sym.h
include/coff/symconst.h
include/coff/ti.h
include/coff/tic30.h
include/coff/tic4x.h
include/coff/tic54x.h
include/coff/tic80.h
include/coff/w65.h
include/coff/we32k.h
include/coff/x86_64.h
include/coff/xcoff.h
include/coff/z80.h
include/coff/z8k.h
include/demangle.h
include/dis-asm.h
include/dwarf2.h
include/dyn-string.h
include/elf/ChangeLog
include/elf/ChangeLog-9103
include/elf/alpha.h
include/elf/arc.h
include/elf/arm.h
include/elf/avr.h
include/elf/bfin.h
include/elf/common.h
include/elf/cr16.h
include/elf/cr16c.h
include/elf/cris.h
include/elf/crx.h
include/elf/d10v.h
include/elf/d30v.h
include/elf/dlx.h
include/elf/dwarf.h
include/elf/external.h
include/elf/fr30.h
include/elf/frv.h
include/elf/h8.h
include/elf/hppa.h
include/elf/i370.h
include/elf/i386.h
include/elf/i860.h
include/elf/i960.h
include/elf/ia64.h
include/elf/internal.h
include/elf/ip2k.h
include/elf/iq2000.h
include/elf/lm32.h
include/elf/m32c.h
include/elf/m32r.h
include/elf/m68hc11.h
include/elf/m68k.h
include/elf/mcore.h
include/elf/mep.h
include/elf/microblaze.h
include/elf/mips.h
include/elf/mmix.h
include/elf/mn10200.h
include/elf/mn10300.h
include/elf/moxie.h
include/elf/msp430.h
include/elf/mt.h
include/elf/openrisc.h
include/elf/or32.h
include/elf/pj.h
include/elf/ppc.h
include/elf/ppc64.h
include/elf/reloc-macros.h
include/elf/rx.h
include/elf/s390.h
include/elf/score.h
include/elf/sh.h
include/elf/sparc.h
include/elf/spu.h
include/elf/tic6x-attrs.h
include/elf/tic6x.h
include/elf/tilegx.h
include/elf/tilepro.h
include/elf/v850.h
include/elf/vax.h
include/elf/vxworks.h
include/elf/x86-64.h
include/elf/xc16x.h
include/elf/xstormy16.h
include/elf/xtensa.h
include/fibheap.h
include/filenames.h
include/floatformat.h
include/fnmatch.h
include/fopen-bin.h
include/fopen-same.h
include/fopen-vms.h
include/gdb/ChangeLog
include/gdb/callback.h
include/gdb/fileio.h
include/gdb/remote-sim.h
include/gdb/signals.def
include/gdb/signals.h
include/gdb/sim-arm.h
include/gdb/sim-bfin.h
include/gdb/sim-cr16.h
include/gdb/sim-d10v.h
include/gdb/sim-frv.h
include/gdb/sim-h8300.h
include/gdb/sim-lm32.h
include/gdb/sim-m32c.h
include/gdb/sim-ppc.h
include/gdb/sim-rx.h
include/gdb/sim-sh.h
include/gdbm.h
include/getopt.h
include/hashtab.h
include/hp-symtab.h
include/ieee.h
include/libiberty.h
include/lto-symtab.h
include/mach-o/ChangeLog
include/mach-o/external.h
include/mach-o/loader.h
include/mach-o/reloc.h
include/mach-o/x86-64.h
include/md5.h
include/nlm/ChangeLog
include/nlm/alpha-ext.h
include/nlm/common.h
include/nlm/external.h
include/nlm/i386-ext.h
include/nlm/internal.h
include/nlm/ppc-ext.h
include/nlm/sparc32-ext.h
include/oasys.h
include/objalloc.h
include/obstack.h
include/opcode/ChangeLog
include/opcode/ChangeLog-9103
include/opcode/alpha.h
include/opcode/arc.h
include/opcode/arm.h
include/opcode/avr.h
include/opcode/bfin.h
include/opcode/cgen.h
include/opcode/convex.h
include/opcode/cr16.h
include/opcode/cris.h
include/opcode/crx.h
include/opcode/d10v.h
include/opcode/d30v.h
include/opcode/dlx.h
include/opcode/h8300.h
include/opcode/hppa.h
include/opcode/i370.h
include/opcode/i386.h
include/opcode/i860.h
include/opcode/i960.h
include/opcode/ia64.h
include/opcode/m68hc11.h
include/opcode/m68k.h
include/opcode/m88k.h
include/opcode/mips.h
include/opcode/mmix.h
include/opcode/mn10200.h
include/opcode/mn10300.h
include/opcode/moxie.h
include/opcode/msp430.h
include/opcode/np1.h
include/opcode/ns32k.h
include/opcode/or32.h
include/opcode/pdp11.h
include/opcode/pj.h
include/opcode/pn.h
include/opcode/ppc.h
include/opcode/pyr.h
include/opcode/rx.h
include/opcode/s390.h
include/opcode/score-datadep.h
include/opcode/score-inst.h
include/opcode/sparc.h
include/opcode/spu-insns.h
include/opcode/spu.h
include/opcode/tahoe.h
include/opcode/tic30.h
include/opcode/tic4x.h
include/opcode/tic54x.h
include/opcode/tic6x-control-registers.h
include/opcode/tic6x-insn-formats.h
include/opcode/tic6x-opcode-table.h
include/opcode/tic6x.h
include/opcode/tic80.h
include/opcode/tilegx.h
include/opcode/tilepro.h
include/opcode/v850.h
include/opcode/vax.h
include/os9k.h
include/partition.h
include/plugin-api.h
include/progress.h
include/safe-ctype.h
include/sha1.h
include/simple-object.h
include/som/ChangeLog
include/som/aout.h
include/som/clock.h
include/som/internal.h
include/som/lst.h
include/som/reloc.h
include/sort.h
include/splay-tree.h
include/symcat.h
include/vms/ChangeLog
include/vms/dcx.h
include/vms/dmt.h
include/vms/dsc.h
include/vms/dst.h
include/vms/eeom.h
include/vms/egps.h
include/vms/egsd.h
include/vms/egst.h
include/vms/egsy.h
include/vms/eiaf.h
include/vms/eicp.h
include/vms/eidc.h
include/vms/eiha.h
include/vms/eihd.h
include/vms/eihi.h
include/vms/eihs.h
include/vms/eihvn.h
include/vms/eisd.h
include/vms/emh.h
include/vms/eobjrec.h
include/vms/esdf.h
include/vms/esdfm.h
include/vms/esdfv.h
include/vms/esgps.h
include/vms/esrf.h
include/vms/etir.h
include/vms/internal.h
include/vms/lbr.h
include/vms/prt.h
include/vms/shl.h
include/xregex.h
include/xregex2.h
include/xtensa-config.h
include/xtensa-isa-internal.h
include/xtensa-isa.h
texinfo/texinfo.tex
Diffstat (limited to 'include/opcode/bfin.h')
-rwxr-xr-x | include/opcode/bfin.h | 1761 |
1 files changed, 0 insertions, 1761 deletions
diff --git a/include/opcode/bfin.h b/include/opcode/bfin.h deleted file mode 100755 index 26f019381..000000000 --- a/include/opcode/bfin.h +++ /dev/null @@ -1,1761 +0,0 @@ -/* bfin.h -- Header file for ADI Blackfin opcode table - Copyright 2005, 2010, 2011 Free Software Foundation, Inc. - - 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 3, - 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 COPYING3. If not, write to the Free - Software Foundation, 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#ifndef OPCODE_BFIN_H -#define OPCODE_BFIN_H - -/* Common to all DSP32 instructions. */ -#define BIT_MULTI_INS 0x0800 - -/* This just sets the multi instruction bit of a DSP32 instruction. */ -#define SET_MULTI_INSTRUCTION_BIT(x) x->value |= BIT_MULTI_INS; - - -/* DSP instructions (32 bit) */ - -/* mmod field. */ -#define M_S2RND 1 -#define M_T 2 -#define M_W32 3 -#define M_FU 4 -#define M_TFU 6 -#define M_IS 8 -#define M_ISS2 9 -#define M_IH 11 -#define M_IU 12 - -static inline int is_macmod_pmove (int x) -{ - return (x == 0) || (x == M_IS) || (x == M_FU) || (x == M_S2RND) - || (x == M_ISS2) || (x == M_IU); -} - -static inline int is_macmod_hmove (int x) -{ - return (x == 0) || (x == M_IS) || (x == M_FU) || (x == M_IU) || (x == M_T) - || (x == M_TFU) || (x == M_S2RND) || (x == M_ISS2) || (x == M_IH); -} - -static inline int is_macmod_signed (int x) -{ - return (x == 0) || (x == M_IS) || (x == M_T) || (x == M_S2RND) - || (x == M_ISS2) || (x == M_IH) || (x == M_W32); -} - -/* dsp32mac -+----+----+---+---|---+----+----+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 0 | 0 |.M.| 0 | 0 |.mmod..........|.MM|.P.|.w1|.op1...| -|.h01|.h11|.w0|.op0...|.h00|.h10|.dst.......|.src0......|.src1......| -+----+----+---+---|---+----+----+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned long opcode; - int bits_src1; - int mask_src1; - int bits_src0; - int mask_src0; - int bits_dst; - int mask_dst; - int bits_h10; - int mask_h10; - int bits_h00; - int mask_h00; - int bits_op0; - int mask_op0; - int bits_w0; - int mask_w0; - int bits_h11; - int mask_h11; - int bits_h01; - int mask_h01; - int bits_op1; - int mask_op1; - int bits_w1; - int mask_w1; - int bits_P; - int mask_P; - int bits_MM; - int mask_MM; - int bits_mmod; - int mask_mmod; - int bits_code2; - int mask_code2; - int bits_M; - int mask_M; - int bits_code; - int mask_code; -} DSP32Mac; - -#define DSP32Mac_opcode 0xc0000000 -#define DSP32Mac_src1_bits 0 -#define DSP32Mac_src1_mask 0x7 -#define DSP32Mac_src0_bits 3 -#define DSP32Mac_src0_mask 0x7 -#define DSP32Mac_dst_bits 6 -#define DSP32Mac_dst_mask 0x7 -#define DSP32Mac_h10_bits 9 -#define DSP32Mac_h10_mask 0x1 -#define DSP32Mac_h00_bits 10 -#define DSP32Mac_h00_mask 0x1 -#define DSP32Mac_op0_bits 11 -#define DSP32Mac_op0_mask 0x3 -#define DSP32Mac_w0_bits 13 -#define DSP32Mac_w0_mask 0x1 -#define DSP32Mac_h11_bits 14 -#define DSP32Mac_h11_mask 0x1 -#define DSP32Mac_h01_bits 15 -#define DSP32Mac_h01_mask 0x1 -#define DSP32Mac_op1_bits 16 -#define DSP32Mac_op1_mask 0x3 -#define DSP32Mac_w1_bits 18 -#define DSP32Mac_w1_mask 0x1 -#define DSP32Mac_p_bits 19 -#define DSP32Mac_p_mask 0x1 -#define DSP32Mac_MM_bits 20 -#define DSP32Mac_MM_mask 0x1 -#define DSP32Mac_mmod_bits 21 -#define DSP32Mac_mmod_mask 0xf -#define DSP32Mac_code2_bits 25 -#define DSP32Mac_code2_mask 0x3 -#define DSP32Mac_M_bits 27 -#define DSP32Mac_M_mask 0x1 -#define DSP32Mac_code_bits 28 -#define DSP32Mac_code_mask 0xf - -#define init_DSP32Mac \ -{ \ - DSP32Mac_opcode, \ - DSP32Mac_src1_bits, DSP32Mac_src1_mask, \ - DSP32Mac_src0_bits, DSP32Mac_src0_mask, \ - DSP32Mac_dst_bits, DSP32Mac_dst_mask, \ - DSP32Mac_h10_bits, DSP32Mac_h10_mask, \ - DSP32Mac_h00_bits, DSP32Mac_h00_mask, \ - DSP32Mac_op0_bits, DSP32Mac_op0_mask, \ - DSP32Mac_w0_bits, DSP32Mac_w0_mask, \ - DSP32Mac_h11_bits, DSP32Mac_h11_mask, \ - DSP32Mac_h01_bits, DSP32Mac_h01_mask, \ - DSP32Mac_op1_bits, DSP32Mac_op1_mask, \ - DSP32Mac_w1_bits, DSP32Mac_w1_mask, \ - DSP32Mac_p_bits, DSP32Mac_p_mask, \ - DSP32Mac_MM_bits, DSP32Mac_MM_mask, \ - DSP32Mac_mmod_bits, DSP32Mac_mmod_mask, \ - DSP32Mac_code2_bits, DSP32Mac_code2_mask, \ - DSP32Mac_M_bits, DSP32Mac_M_mask, \ - DSP32Mac_code_bits, DSP32Mac_code_mask \ -}; - -/* dsp32mult -+----+----+---+---|---+----+----+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 0 | 0 |.M.| 0 | 1 |.mmod..........|.MM|.P.|.w1|.op1...| -|.h01|.h11|.w0|.op0...|.h00|.h10|.dst.......|.src0......|.src1......| -+----+----+---+---|---+----+----+---|---+---+---+---|---+---+---+---+ -*/ - -typedef DSP32Mac DSP32Mult; -#define DSP32Mult_opcode 0xc2000000 - -#define init_DSP32Mult \ -{ \ - DSP32Mult_opcode, \ - DSP32Mac_src1_bits, DSP32Mac_src1_mask, \ - DSP32Mac_src0_bits, DSP32Mac_src0_mask, \ - DSP32Mac_dst_bits, DSP32Mac_dst_mask, \ - DSP32Mac_h10_bits, DSP32Mac_h10_mask, \ - DSP32Mac_h00_bits, DSP32Mac_h00_mask, \ - DSP32Mac_op0_bits, DSP32Mac_op0_mask, \ - DSP32Mac_w0_bits, DSP32Mac_w0_mask, \ - DSP32Mac_h11_bits, DSP32Mac_h11_mask, \ - DSP32Mac_h01_bits, DSP32Mac_h01_mask, \ - DSP32Mac_op1_bits, DSP32Mac_op1_mask, \ - DSP32Mac_w1_bits, DSP32Mac_w1_mask, \ - DSP32Mac_p_bits, DSP32Mac_p_mask, \ - DSP32Mac_MM_bits, DSP32Mac_MM_mask, \ - DSP32Mac_mmod_bits, DSP32Mac_mmod_mask, \ - DSP32Mac_code2_bits, DSP32Mac_code2_mask, \ - DSP32Mac_M_bits, DSP32Mac_M_mask, \ - DSP32Mac_code_bits, DSP32Mac_code_mask \ -}; - -/* dsp32alu -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 0 | 0 |.M.| 1 | 0 | - | - | - |.HL|.aopcde............| -|.aop...|.s.|.x.|.dst0......|.dst1......|.src0......|.src1......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned long opcode; - int bits_src1; - int mask_src1; - int bits_src0; - int mask_src0; - int bits_dst1; - int mask_dst1; - int bits_dst0; - int mask_dst0; - int bits_x; - int mask_x; - int bits_s; - int mask_s; - int bits_aop; - int mask_aop; - int bits_aopcde; - int mask_aopcde; - int bits_HL; - int mask_HL; - int bits_dontcare; - int mask_dontcare; - int bits_code2; - int mask_code2; - int bits_M; - int mask_M; - int bits_code; - int mask_code; -} DSP32Alu; - -#define DSP32Alu_opcode 0xc4000000 -#define DSP32Alu_src1_bits 0 -#define DSP32Alu_src1_mask 0x7 -#define DSP32Alu_src0_bits 3 -#define DSP32Alu_src0_mask 0x7 -#define DSP32Alu_dst1_bits 6 -#define DSP32Alu_dst1_mask 0x7 -#define DSP32Alu_dst0_bits 9 -#define DSP32Alu_dst0_mask 0x7 -#define DSP32Alu_x_bits 12 -#define DSP32Alu_x_mask 0x1 -#define DSP32Alu_s_bits 13 -#define DSP32Alu_s_mask 0x1 -#define DSP32Alu_aop_bits 14 -#define DSP32Alu_aop_mask 0x3 -#define DSP32Alu_aopcde_bits 16 -#define DSP32Alu_aopcde_mask 0x1f -#define DSP32Alu_HL_bits 21 -#define DSP32Alu_HL_mask 0x1 -#define DSP32Alu_dontcare_bits 22 -#define DSP32Alu_dontcare_mask 0x7 -#define DSP32Alu_code2_bits 25 -#define DSP32Alu_code2_mask 0x3 -#define DSP32Alu_M_bits 27 -#define DSP32Alu_M_mask 0x1 -#define DSP32Alu_code_bits 28 -#define DSP32Alu_code_mask 0xf - -#define init_DSP32Alu \ -{ \ - DSP32Alu_opcode, \ - DSP32Alu_src1_bits, DSP32Alu_src1_mask, \ - DSP32Alu_src0_bits, DSP32Alu_src0_mask, \ - DSP32Alu_dst1_bits, DSP32Alu_dst1_mask, \ - DSP32Alu_dst0_bits, DSP32Alu_dst0_mask, \ - DSP32Alu_x_bits, DSP32Alu_x_mask, \ - DSP32Alu_s_bits, DSP32Alu_s_mask, \ - DSP32Alu_aop_bits, DSP32Alu_aop_mask, \ - DSP32Alu_aopcde_bits, DSP32Alu_aopcde_mask, \ - DSP32Alu_HL_bits, DSP32Alu_HL_mask, \ - DSP32Alu_dontcare_bits, DSP32Alu_dontcare_mask, \ - DSP32Alu_code2_bits, DSP32Alu_code2_mask, \ - DSP32Alu_M_bits, DSP32Alu_M_mask, \ - DSP32Alu_code_bits, DSP32Alu_code_mask \ -}; - -/* dsp32shift -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 0 | 0 |.M.| 1 | 1 | 0 | 0 | - | - |.sopcde............| -|.sop...|.HLs...|.dst0......| - | - | - |.src0......|.src1......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned long opcode; - int bits_src1; - int mask_src1; - int bits_src0; - int mask_src0; - int bits_dst1; - int mask_dst1; - int bits_dst0; - int mask_dst0; - int bits_HLs; - int mask_HLs; - int bits_sop; - int mask_sop; - int bits_sopcde; - int mask_sopcde; - int bits_dontcare; - int mask_dontcare; - int bits_code2; - int mask_code2; - int bits_M; - int mask_M; - int bits_code; - int mask_code; -} DSP32Shift; - -#define DSP32Shift_opcode 0xc6000000 -#define DSP32Shift_src1_bits 0 -#define DSP32Shift_src1_mask 0x7 -#define DSP32Shift_src0_bits 3 -#define DSP32Shift_src0_mask 0x7 -#define DSP32Shift_dst1_bits 6 -#define DSP32Shift_dst1_mask 0x7 -#define DSP32Shift_dst0_bits 9 -#define DSP32Shift_dst0_mask 0x7 -#define DSP32Shift_HLs_bits 12 -#define DSP32Shift_HLs_mask 0x3 -#define DSP32Shift_sop_bits 14 -#define DSP32Shift_sop_mask 0x3 -#define DSP32Shift_sopcde_bits 16 -#define DSP32Shift_sopcde_mask 0x1f -#define DSP32Shift_dontcare_bits 21 -#define DSP32Shift_dontcare_mask 0x3 -#define DSP32Shift_code2_bits 23 -#define DSP32Shift_code2_mask 0xf -#define DSP32Shift_M_bits 27 -#define DSP32Shift_M_mask 0x1 -#define DSP32Shift_code_bits 28 -#define DSP32Shift_code_mask 0xf - -#define init_DSP32Shift \ -{ \ - DSP32Shift_opcode, \ - DSP32Shift_src1_bits, DSP32Shift_src1_mask, \ - DSP32Shift_src0_bits, DSP32Shift_src0_mask, \ - DSP32Shift_dst1_bits, DSP32Shift_dst1_mask, \ - DSP32Shift_dst0_bits, DSP32Shift_dst0_mask, \ - DSP32Shift_HLs_bits, DSP32Shift_HLs_mask, \ - DSP32Shift_sop_bits, DSP32Shift_sop_mask, \ - DSP32Shift_sopcde_bits, DSP32Shift_sopcde_mask, \ - DSP32Shift_dontcare_bits, DSP32Shift_dontcare_mask, \ - DSP32Shift_code2_bits, DSP32Shift_code2_mask, \ - DSP32Shift_M_bits, DSP32Shift_M_mask, \ - DSP32Shift_code_bits, DSP32Shift_code_mask \ -}; - -/* dsp32shiftimm -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 0 | 0 |.M.| 1 | 1 | 0 | 1 | - | - |.sopcde............| -|.sop...|.HLs...|.dst0......|.immag.................|.src1......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned long opcode; - int bits_src1; - int mask_src1; - int bits_immag; - int mask_immag; - int bits_dst0; - int mask_dst0; - int bits_HLs; - int mask_HLs; - int bits_sop; - int mask_sop; - int bits_sopcde; - int mask_sopcde; - int bits_dontcare; - int mask_dontcare; - int bits_code2; - int mask_code2; - int bits_M; - int mask_M; - int bits_code; - int mask_code; -} DSP32ShiftImm; - -#define DSP32ShiftImm_opcode 0xc6800000 -#define DSP32ShiftImm_src1_bits 0 -#define DSP32ShiftImm_src1_mask 0x7 -#define DSP32ShiftImm_immag_bits 3 -#define DSP32ShiftImm_immag_mask 0x3f -#define DSP32ShiftImm_dst0_bits 9 -#define DSP32ShiftImm_dst0_mask 0x7 -#define DSP32ShiftImm_HLs_bits 12 -#define DSP32ShiftImm_HLs_mask 0x3 -#define DSP32ShiftImm_sop_bits 14 -#define DSP32ShiftImm_sop_mask 0x3 -#define DSP32ShiftImm_sopcde_bits 16 -#define DSP32ShiftImm_sopcde_mask 0x1f -#define DSP32ShiftImm_dontcare_bits 21 -#define DSP32ShiftImm_dontcare_mask 0x3 -#define DSP32ShiftImm_code2_bits 23 -#define DSP32ShiftImm_code2_mask 0xf -#define DSP32ShiftImm_M_bits 27 -#define DSP32ShiftImm_M_mask 0x1 -#define DSP32ShiftImm_code_bits 28 -#define DSP32ShiftImm_code_mask 0xf - -#define init_DSP32ShiftImm \ -{ \ - DSP32ShiftImm_opcode, \ - DSP32ShiftImm_src1_bits, DSP32ShiftImm_src1_mask, \ - DSP32ShiftImm_immag_bits, DSP32ShiftImm_immag_mask, \ - DSP32ShiftImm_dst0_bits, DSP32ShiftImm_dst0_mask, \ - DSP32ShiftImm_HLs_bits, DSP32ShiftImm_HLs_mask, \ - DSP32ShiftImm_sop_bits, DSP32ShiftImm_sop_mask, \ - DSP32ShiftImm_sopcde_bits, DSP32ShiftImm_sopcde_mask, \ - DSP32ShiftImm_dontcare_bits, DSP32ShiftImm_dontcare_mask, \ - DSP32ShiftImm_code2_bits, DSP32ShiftImm_code2_mask, \ - DSP32ShiftImm_M_bits, DSP32ShiftImm_M_mask, \ - DSP32ShiftImm_code_bits, DSP32ShiftImm_code_mask \ -}; - -/* LOAD / STORE */ - -/* LDSTidxI -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 1 | 0 | 0 | 1 |.W.|.Z.|.sz....|.ptr.......|.reg.......| -|.offset........................................................| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned long opcode; - int bits_offset; - int mask_offset; - int bits_reg; - int mask_reg; - int bits_ptr; - int mask_ptr; - int bits_sz; - int mask_sz; - int bits_Z; - int mask_Z; - int bits_W; - int mask_W; - int bits_code; - int mask_code; -} LDSTidxI; - -#define LDSTidxI_opcode 0xe4000000 -#define LDSTidxI_offset_bits 0 -#define LDSTidxI_offset_mask 0xffff -#define LDSTidxI_reg_bits 16 -#define LDSTidxI_reg_mask 0x7 -#define LDSTidxI_ptr_bits 19 -#define LDSTidxI_ptr_mask 0x7 -#define LDSTidxI_sz_bits 22 -#define LDSTidxI_sz_mask 0x3 -#define LDSTidxI_Z_bits 24 -#define LDSTidxI_Z_mask 0x1 -#define LDSTidxI_W_bits 25 -#define LDSTidxI_W_mask 0x1 -#define LDSTidxI_code_bits 26 -#define LDSTidxI_code_mask 0x3f - -#define init_LDSTidxI \ -{ \ - LDSTidxI_opcode, \ - LDSTidxI_offset_bits, LDSTidxI_offset_mask, \ - LDSTidxI_reg_bits, LDSTidxI_reg_mask, \ - LDSTidxI_ptr_bits, LDSTidxI_ptr_mask, \ - LDSTidxI_sz_bits, LDSTidxI_sz_mask, \ - LDSTidxI_Z_bits, LDSTidxI_Z_mask, \ - LDSTidxI_W_bits, LDSTidxI_W_mask, \ - LDSTidxI_code_bits, LDSTidxI_code_mask \ -}; - - -/* LDST -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 0 | 0 | 1 |.sz....|.W.|.aop...|.Z.|.ptr.......|.reg.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_reg; - int mask_reg; - int bits_ptr; - int mask_ptr; - int bits_Z; - int mask_Z; - int bits_aop; - int mask_aop; - int bits_W; - int mask_W; - int bits_sz; - int mask_sz; - int bits_code; - int mask_code; -} LDST; - -#define LDST_opcode 0x9000 -#define LDST_reg_bits 0 -#define LDST_reg_mask 0x7 -#define LDST_ptr_bits 3 -#define LDST_ptr_mask 0x7 -#define LDST_Z_bits 6 -#define LDST_Z_mask 0x1 -#define LDST_aop_bits 7 -#define LDST_aop_mask 0x3 -#define LDST_W_bits 9 -#define LDST_W_mask 0x1 -#define LDST_sz_bits 10 -#define LDST_sz_mask 0x3 -#define LDST_code_bits 12 -#define LDST_code_mask 0xf - -#define init_LDST \ -{ \ - LDST_opcode, \ - LDST_reg_bits, LDST_reg_mask, \ - LDST_ptr_bits, LDST_ptr_mask, \ - LDST_Z_bits, LDST_Z_mask, \ - LDST_aop_bits, LDST_aop_mask, \ - LDST_W_bits, LDST_W_mask, \ - LDST_sz_bits, LDST_sz_mask, \ - LDST_code_bits, LDST_code_mask \ -}; - -/* LDSTii -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 0 | 1 |.W.|.op....|.offset........|.ptr.......|.reg.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_reg; - int mask_reg; - int bits_ptr; - int mask_ptr; - int bits_offset; - int mask_offset; - int bits_op; - int mask_op; - int bits_W; - int mask_W; - int bits_code; - int mask_code; -} LDSTii; - -#define LDSTii_opcode 0xa000 -#define LDSTii_reg_bit 0 -#define LDSTii_reg_mask 0x7 -#define LDSTii_ptr_bit 3 -#define LDSTii_ptr_mask 0x7 -#define LDSTii_offset_bit 6 -#define LDSTii_offset_mask 0xf -#define LDSTii_op_bit 10 -#define LDSTii_op_mask 0x3 -#define LDSTii_W_bit 12 -#define LDSTii_W_mask 0x1 -#define LDSTii_code_bit 13 -#define LDSTii_code_mask 0x7 - -#define init_LDSTii \ -{ \ - LDSTii_opcode, \ - LDSTii_reg_bit, LDSTii_reg_mask, \ - LDSTii_ptr_bit, LDSTii_ptr_mask, \ - LDSTii_offset_bit, LDSTii_offset_mask, \ - LDSTii_op_bit, LDSTii_op_mask, \ - LDSTii_W_bit, LDSTii_W_mask, \ - LDSTii_code_bit, LDSTii_code_mask \ -}; - - -/* LDSTiiFP -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 0 | 1 | 1 | 1 | 0 |.W.|.offset............|.reg...........| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_reg; - int mask_reg; - int bits_offset; - int mask_offset; - int bits_W; - int mask_W; - int bits_code; - int mask_code; -} LDSTiiFP; - -#define LDSTiiFP_opcode 0xb800 -#define LDSTiiFP_reg_bits 0 -#define LDSTiiFP_reg_mask 0xf -#define LDSTiiFP_offset_bits 4 -#define LDSTiiFP_offset_mask 0x1f -#define LDSTiiFP_W_bits 9 -#define LDSTiiFP_W_mask 0x1 -#define LDSTiiFP_code_bits 10 -#define LDSTiiFP_code_mask 0x3f - -#define init_LDSTiiFP \ -{ \ - LDSTiiFP_opcode, \ - LDSTiiFP_reg_bits, LDSTiiFP_reg_mask, \ - LDSTiiFP_offset_bits, LDSTiiFP_offset_mask, \ - LDSTiiFP_W_bits, LDSTiiFP_W_mask, \ - LDSTiiFP_code_bits, LDSTiiFP_code_mask \ -}; - -/* dspLDST -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 0 | 0 | 1 | 1 | 1 |.W.|.aop...|.m.....|.i.....|.reg.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_reg; - int mask_reg; - int bits_i; - int mask_i; - int bits_m; - int mask_m; - int bits_aop; - int mask_aop; - int bits_W; - int mask_W; - int bits_code; - int mask_code; -} DspLDST; - -#define DspLDST_opcode 0x9c00 -#define DspLDST_reg_bits 0 -#define DspLDST_reg_mask 0x7 -#define DspLDST_i_bits 3 -#define DspLDST_i_mask 0x3 -#define DspLDST_m_bits 5 -#define DspLDST_m_mask 0x3 -#define DspLDST_aop_bits 7 -#define DspLDST_aop_mask 0x3 -#define DspLDST_W_bits 9 -#define DspLDST_W_mask 0x1 -#define DspLDST_code_bits 10 -#define DspLDST_code_mask 0x3f - -#define init_DspLDST \ -{ \ - DspLDST_opcode, \ - DspLDST_reg_bits, DspLDST_reg_mask, \ - DspLDST_i_bits, DspLDST_i_mask, \ - DspLDST_m_bits, DspLDST_m_mask, \ - DspLDST_aop_bits, DspLDST_aop_mask, \ - DspLDST_W_bits, DspLDST_W_mask, \ - DspLDST_code_bits, DspLDST_code_mask \ -}; - - -/* LDSTpmod -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 0 | 0 | 0 |.W.|.aop...|.reg.......|.idx.......|.ptr.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_ptr; - int mask_ptr; - int bits_idx; - int mask_idx; - int bits_reg; - int mask_reg; - int bits_aop; - int mask_aop; - int bits_W; - int mask_W; - int bits_code; - int mask_code; -} LDSTpmod; - -#define LDSTpmod_opcode 0x8000 -#define LDSTpmod_ptr_bits 0 -#define LDSTpmod_ptr_mask 0x7 -#define LDSTpmod_idx_bits 3 -#define LDSTpmod_idx_mask 0x7 -#define LDSTpmod_reg_bits 6 -#define LDSTpmod_reg_mask 0x7 -#define LDSTpmod_aop_bits 9 -#define LDSTpmod_aop_mask 0x3 -#define LDSTpmod_W_bits 11 -#define LDSTpmod_W_mask 0x1 -#define LDSTpmod_code_bits 12 -#define LDSTpmod_code_mask 0xf - -#define init_LDSTpmod \ -{ \ - LDSTpmod_opcode, \ - LDSTpmod_ptr_bits, LDSTpmod_ptr_mask, \ - LDSTpmod_idx_bits, LDSTpmod_idx_mask, \ - LDSTpmod_reg_bits, LDSTpmod_reg_mask, \ - LDSTpmod_aop_bits, LDSTpmod_aop_mask, \ - LDSTpmod_W_bits, LDSTpmod_W_mask, \ - LDSTpmod_code_bits, LDSTpmod_code_mask \ -}; - - -/* LOGI2op -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 1 | 0 | 0 | 1 |.opc.......|.src...............|.dst.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_dst; - int mask_dst; - int bits_src; - int mask_src; - int bits_opc; - int mask_opc; - int bits_code; - int mask_code; -} LOGI2op; - -#define LOGI2op_opcode 0x4800 -#define LOGI2op_dst_bits 0 -#define LOGI2op_dst_mask 0x7 -#define LOGI2op_src_bits 3 -#define LOGI2op_src_mask 0x1f -#define LOGI2op_opc_bits 8 -#define LOGI2op_opc_mask 0x7 -#define LOGI2op_code_bits 11 -#define LOGI2op_code_mask 0x1f - -#define init_LOGI2op \ -{ \ - LOGI2op_opcode, \ - LOGI2op_dst_bits, LOGI2op_dst_mask, \ - LOGI2op_src_bits, LOGI2op_src_mask, \ - LOGI2op_opc_bits, LOGI2op_opc_mask, \ - LOGI2op_code_bits, LOGI2op_code_mask \ -}; - - -/* ALU2op -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 1 | 0 | 0 | 0 | 0 |.opc...........|.src.......|.dst.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_dst; - int mask_dst; - int bits_src; - int mask_src; - int bits_opc; - int mask_opc; - int bits_code; - int mask_code; -} ALU2op; - -#define ALU2op_opcode 0x4000 -#define ALU2op_dst_bits 0 -#define ALU2op_dst_mask 0x7 -#define ALU2op_src_bits 3 -#define ALU2op_src_mask 0x7 -#define ALU2op_opc_bits 6 -#define ALU2op_opc_mask 0xf -#define ALU2op_code_bits 10 -#define ALU2op_code_mask 0x3f - -#define init_ALU2op \ -{ \ - ALU2op_opcode, \ - ALU2op_dst_bits, ALU2op_dst_mask, \ - ALU2op_src_bits, ALU2op_src_mask, \ - ALU2op_opc_bits, ALU2op_opc_mask, \ - ALU2op_code_bits, ALU2op_code_mask \ -}; - - -/* BRCC -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 0 | 1 |.T.|.B.|.offset................................| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_offset; - int mask_offset; - int bits_B; - int mask_B; - int bits_T; - int mask_T; - int bits_code; - int mask_code; -} BRCC; - -#define BRCC_opcode 0x1000 -#define BRCC_offset_bits 0 -#define BRCC_offset_mask 0x3ff -#define BRCC_B_bits 10 -#define BRCC_B_mask 0x1 -#define BRCC_T_bits 11 -#define BRCC_T_mask 0x1 -#define BRCC_code_bits 12 -#define BRCC_code_mask 0xf - -#define init_BRCC \ -{ \ - BRCC_opcode, \ - BRCC_offset_bits, BRCC_offset_mask, \ - BRCC_B_bits, BRCC_B_mask, \ - BRCC_T_bits, BRCC_T_mask, \ - BRCC_code_bits, BRCC_code_mask \ -}; - - -/* UJUMP -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 1 | 0 |.offset........................................| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_offset; - int mask_offset; - int bits_code; - int mask_code; -} UJump; - -#define UJump_opcode 0x2000 -#define UJump_offset_bits 0 -#define UJump_offset_mask 0xfff -#define UJump_code_bits 12 -#define UJump_code_mask 0xf - -#define init_UJump \ -{ \ - UJump_opcode, \ - UJump_offset_bits, UJump_offset_mask, \ - UJump_code_bits, UJump_code_mask \ -}; - - -/* ProgCtrl -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |.prgfunc.......|.poprnd........| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_poprnd; - int mask_poprnd; - int bits_prgfunc; - int mask_prgfunc; - int bits_code; - int mask_code; -} ProgCtrl; - -#define ProgCtrl_opcode 0x0000 -#define ProgCtrl_poprnd_bits 0 -#define ProgCtrl_poprnd_mask 0xf -#define ProgCtrl_prgfunc_bits 4 -#define ProgCtrl_prgfunc_mask 0xf -#define ProgCtrl_code_bits 8 -#define ProgCtrl_code_mask 0xff - -#define init_ProgCtrl \ -{ \ - ProgCtrl_opcode, \ - ProgCtrl_poprnd_bits, ProgCtrl_poprnd_mask, \ - ProgCtrl_prgfunc_bits, ProgCtrl_prgfunc_mask, \ - ProgCtrl_code_bits, ProgCtrl_code_mask \ -}; - -/* CALLa -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 1 | 0 | 0 | 0 | 1 |.S.|.msw...........................| -|.lsw...........................................................| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - - -typedef struct -{ - unsigned long opcode; - int bits_addr; - int mask_addr; - int bits_S; - int mask_S; - int bits_code; - int mask_code; -} CALLa; - -#define CALLa_opcode 0xe2000000 -#define CALLa_addr_bits 0 -#define CALLa_addr_mask 0xffffff -#define CALLa_S_bits 24 -#define CALLa_S_mask 0x1 -#define CALLa_code_bits 25 -#define CALLa_code_mask 0x7f - -#define init_CALLa \ -{ \ - CALLa_opcode, \ - CALLa_addr_bits, CALLa_addr_mask, \ - CALLa_S_bits, CALLa_S_mask, \ - CALLa_code_bits, CALLa_code_mask \ -}; - - -/* pseudoDEBUG -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |.fn....|.grp.......|.reg.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_reg; - int mask_reg; - int bits_grp; - int mask_grp; - int bits_fn; - int mask_fn; - int bits_code; - int mask_code; -} PseudoDbg; - -#define PseudoDbg_opcode 0xf800 -#define PseudoDbg_reg_bits 0 -#define PseudoDbg_reg_mask 0x7 -#define PseudoDbg_grp_bits 3 -#define PseudoDbg_grp_mask 0x7 -#define PseudoDbg_fn_bits 6 -#define PseudoDbg_fn_mask 0x3 -#define PseudoDbg_code_bits 8 -#define PseudoDbg_code_mask 0xff - -#define init_PseudoDbg \ -{ \ - PseudoDbg_opcode, \ - PseudoDbg_reg_bits, PseudoDbg_reg_mask, \ - PseudoDbg_grp_bits, PseudoDbg_grp_mask, \ - PseudoDbg_fn_bits, PseudoDbg_fn_mask, \ - PseudoDbg_code_bits, PseudoDbg_code_mask \ -}; - -/* PseudoDbg_assert -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 1 | 1 | 0 | - | - | - | dbgop |.grp.......|.regtest...| -|.expected......................................................| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned long opcode; - int bits_expected; - int mask_expected; - int bits_regtest; - int mask_regtest; - int bits_grp; - int mask_grp; - int bits_dbgop; - int mask_dbgop; - int bits_dontcare; - int mask_dontcare; - int bits_code; - int mask_code; -} PseudoDbg_Assert; - -#define PseudoDbg_Assert_opcode 0xf0000000 -#define PseudoDbg_Assert_expected_bits 0 -#define PseudoDbg_Assert_expected_mask 0xffff -#define PseudoDbg_Assert_regtest_bits 16 -#define PseudoDbg_Assert_regtest_mask 0x7 -#define PseudoDbg_Assert_grp_bits 19 -#define PseudoDbg_Assert_grp_mask 0x7 -#define PseudoDbg_Assert_dbgop_bits 22 -#define PseudoDbg_Assert_dbgop_mask 0x3 -#define PseudoDbg_Assert_dontcare_bits 24 -#define PseudoDbg_Assert_dontcare_mask 0x7 -#define PseudoDbg_Assert_code_bits 27 -#define PseudoDbg_Assert_code_mask 0x1f - -#define init_PseudoDbg_Assert \ -{ \ - PseudoDbg_Assert_opcode, \ - PseudoDbg_Assert_expected_bits, PseudoDbg_Assert_expected_mask, \ - PseudoDbg_Assert_regtest_bits, PseudoDbg_Assert_regtest_mask, \ - PseudoDbg_Assert_grp_bits, PseudoDbg_Assert_grp_mask, \ - PseudoDbg_Assert_dbgop_bits, PseudoDbg_Assert_dbgop_mask, \ - PseudoDbg_Assert_dontcare_bits, PseudoDbg_Assert_dontcare_mask, \ - PseudoDbg_Assert_code_bits, PseudoDbg_Assert_code_mask \ -}; - -/* pseudoChr -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 |.ch............................| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_ch; - int mask_ch; - int bits_code; - int mask_code; -} PseudoChr; - -#define PseudoChr_opcode 0xf900 -#define PseudoChr_ch_bits 0 -#define PseudoChr_ch_mask 0xff -#define PseudoChr_code_bits 8 -#define PseudoChr_code_mask 0xff - -#define init_PseudoChr \ -{ \ - PseudoChr_opcode, \ - PseudoChr_ch_bits, PseudoChr_ch_mask, \ - PseudoChr_code_bits, PseudoChr_code_mask \ -}; - -/* CaCTRL -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |.a.|.op....|.reg.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_reg; - int mask_reg; - int bits_op; - int mask_op; - int bits_a; - int mask_a; - int bits_code; - int mask_code; -} CaCTRL; - -#define CaCTRL_opcode 0x0240 -#define CaCTRL_reg_bits 0 -#define CaCTRL_reg_mask 0x7 -#define CaCTRL_op_bits 3 -#define CaCTRL_op_mask 0x3 -#define CaCTRL_a_bits 5 -#define CaCTRL_a_mask 0x1 -#define CaCTRL_code_bits 6 -#define CaCTRL_code_mask 0x3fff - -#define init_CaCTRL \ -{ \ - CaCTRL_opcode, \ - CaCTRL_reg_bits, CaCTRL_reg_mask, \ - CaCTRL_op_bits, CaCTRL_op_mask, \ - CaCTRL_a_bits, CaCTRL_a_mask, \ - CaCTRL_code_bits, CaCTRL_code_mask \ -}; - -/* PushPopMultiple -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 0 | 0 | 0 | 1 | 0 |.d.|.p.|.W.|.dr........|.pr........| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_pr; - int mask_pr; - int bits_dr; - int mask_dr; - int bits_W; - int mask_W; - int bits_p; - int mask_p; - int bits_d; - int mask_d; - int bits_code; - int mask_code; -} PushPopMultiple; - -#define PushPopMultiple_opcode 0x0400 -#define PushPopMultiple_pr_bits 0 -#define PushPopMultiple_pr_mask 0x7 -#define PushPopMultiple_dr_bits 3 -#define PushPopMultiple_dr_mask 0x7 -#define PushPopMultiple_W_bits 6 -#define PushPopMultiple_W_mask 0x1 -#define PushPopMultiple_p_bits 7 -#define PushPopMultiple_p_mask 0x1 -#define PushPopMultiple_d_bits 8 -#define PushPopMultiple_d_mask 0x1 -#define PushPopMultiple_code_bits 8 -#define PushPopMultiple_code_mask 0x1 - -#define init_PushPopMultiple \ -{ \ - PushPopMultiple_opcode, \ - PushPopMultiple_pr_bits, PushPopMultiple_pr_mask, \ - PushPopMultiple_dr_bits, PushPopMultiple_dr_mask, \ - PushPopMultiple_W_bits, PushPopMultiple_W_mask, \ - PushPopMultiple_p_bits, PushPopMultiple_p_mask, \ - PushPopMultiple_d_bits, PushPopMultiple_d_mask, \ - PushPopMultiple_code_bits, PushPopMultiple_code_mask \ -}; - -/* PushPopReg -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |.W.|.grp.......|.reg.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_reg; - int mask_reg; - int bits_grp; - int mask_grp; - int bits_W; - int mask_W; - int bits_code; - int mask_code; -} PushPopReg; - -#define PushPopReg_opcode 0x0100 -#define PushPopReg_reg_bits 0 -#define PushPopReg_reg_mask 0x7 -#define PushPopReg_grp_bits 3 -#define PushPopReg_grp_mask 0x7 -#define PushPopReg_W_bits 6 -#define PushPopReg_W_mask 0x1 -#define PushPopReg_code_bits 7 -#define PushPopReg_code_mask 0x1ff - -#define init_PushPopReg \ -{ \ - PushPopReg_opcode, \ - PushPopReg_reg_bits, PushPopReg_reg_mask, \ - PushPopReg_grp_bits, PushPopReg_grp_mask, \ - PushPopReg_W_bits, PushPopReg_W_mask, \ - PushPopReg_code_bits, PushPopReg_code_mask, \ -}; - -/* linkage -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |.R.| -|.framesize.....................................................| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned long opcode; - int bits_framesize; - int mask_framesize; - int bits_R; - int mask_R; - int bits_code; - int mask_code; -} Linkage; - -#define Linkage_opcode 0xe8000000 -#define Linkage_framesize_bits 0 -#define Linkage_framesize_mask 0xffff -#define Linkage_R_bits 16 -#define Linkage_R_mask 0x1 -#define Linkage_code_bits 17 -#define Linkage_code_mask 0x7fff - -#define init_Linkage \ -{ \ - Linkage_opcode, \ - Linkage_framesize_bits, Linkage_framesize_mask, \ - Linkage_R_bits, Linkage_R_mask, \ - Linkage_code_bits, Linkage_code_mask \ -}; - -/* LoopSetup -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |.rop...|.c.|.soffset.......| -|.reg...........| - | - |.eoffset...............................| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned long opcode; - int bits_eoffset; - int mask_eoffset; - int bits_dontcare; - int mask_dontcare; - int bits_reg; - int mask_reg; - int bits_soffset; - int mask_soffset; - int bits_c; - int mask_c; - int bits_rop; - int mask_rop; - int bits_code; - int mask_code; -} LoopSetup; - -#define LoopSetup_opcode 0xe0800000 -#define LoopSetup_eoffset_bits 0 -#define LoopSetup_eoffset_mask 0x3ff -#define LoopSetup_dontcare_bits 10 -#define LoopSetup_dontcare_mask 0x3 -#define LoopSetup_reg_bits 12 -#define LoopSetup_reg_mask 0xf -#define LoopSetup_soffset_bits 16 -#define LoopSetup_soffset_mask 0xf -#define LoopSetup_c_bits 20 -#define LoopSetup_c_mask 0x1 -#define LoopSetup_rop_bits 21 -#define LoopSetup_rop_mask 0x3 -#define LoopSetup_code_bits 23 -#define LoopSetup_code_mask 0x1ff - -#define init_LoopSetup \ -{ \ - LoopSetup_opcode, \ - LoopSetup_eoffset_bits, LoopSetup_eoffset_mask, \ - LoopSetup_dontcare_bits, LoopSetup_dontcare_mask, \ - LoopSetup_reg_bits, LoopSetup_reg_mask, \ - LoopSetup_soffset_bits, LoopSetup_soffset_mask, \ - LoopSetup_c_bits, LoopSetup_c_mask, \ - LoopSetup_rop_bits, LoopSetup_rop_mask, \ - LoopSetup_code_bits, LoopSetup_code_mask \ -}; - -/* LDIMMhalf -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |.Z.|.H.|.S.|.grp...|.reg.......| -|.hword.........................................................| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned long opcode; - int bits_hword; - int mask_hword; - int bits_reg; - int mask_reg; - int bits_grp; - int mask_grp; - int bits_S; - int mask_S; - int bits_H; - int mask_H; - int bits_Z; - int mask_Z; - int bits_code; - int mask_code; -} LDIMMhalf; - -#define LDIMMhalf_opcode 0xe1000000 -#define LDIMMhalf_hword_bits 0 -#define LDIMMhalf_hword_mask 0xffff -#define LDIMMhalf_reg_bits 16 -#define LDIMMhalf_reg_mask 0x7 -#define LDIMMhalf_grp_bits 19 -#define LDIMMhalf_grp_mask 0x3 -#define LDIMMhalf_S_bits 21 -#define LDIMMhalf_S_mask 0x1 -#define LDIMMhalf_H_bits 22 -#define LDIMMhalf_H_mask 0x1 -#define LDIMMhalf_Z_bits 23 -#define LDIMMhalf_Z_mask 0x1 -#define LDIMMhalf_code_bits 24 -#define LDIMMhalf_code_mask 0xff - -#define init_LDIMMhalf \ -{ \ - LDIMMhalf_opcode, \ - LDIMMhalf_hword_bits, LDIMMhalf_hword_mask, \ - LDIMMhalf_reg_bits, LDIMMhalf_reg_mask, \ - LDIMMhalf_grp_bits, LDIMMhalf_grp_mask, \ - LDIMMhalf_S_bits, LDIMMhalf_S_mask, \ - LDIMMhalf_H_bits, LDIMMhalf_H_mask, \ - LDIMMhalf_Z_bits, LDIMMhalf_Z_mask, \ - LDIMMhalf_code_bits, LDIMMhalf_code_mask \ -}; - - -/* CC2dreg -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |.op....|.reg.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_reg; - int mask_reg; - int bits_op; - int mask_op; - int bits_code; - int mask_code; -} CC2dreg; - -#define CC2dreg_opcode 0x0200 -#define CC2dreg_reg_bits 0 -#define CC2dreg_reg_mask 0x7 -#define CC2dreg_op_bits 3 -#define CC2dreg_op_mask 0x3 -#define CC2dreg_code_bits 5 -#define CC2dreg_code_mask 0x7fff - -#define init_CC2dreg \ -{ \ - CC2dreg_opcode, \ - CC2dreg_reg_bits, CC2dreg_reg_mask, \ - CC2dreg_op_bits, CC2dreg_op_mask, \ - CC2dreg_code_bits, CC2dreg_code_mask \ -}; - - -/* PTR2op -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 1 | 0 | 0 | 0 | 1 | 0 |.opc.......|.src.......|.dst.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_dst; - int mask_dst; - int bits_src; - int mask_src; - int bits_opc; - int mask_opc; - int bits_code; - int mask_code; -} PTR2op; - -#define PTR2op_opcode 0x4400 -#define PTR2op_dst_bits 0 -#define PTR2op_dst_mask 0x7 -#define PTR2op_src_bits 3 -#define PTR2op_src_mask 0x7 -#define PTR2op_opc_bits 6 -#define PTR2op_opc_mask 0x7 -#define PTR2op_code_bits 9 -#define PTR2op_code_mask 0x7f - -#define init_PTR2op \ -{ \ - PTR2op_opcode, \ - PTR2op_dst_bits, PTR2op_dst_mask, \ - PTR2op_src_bits, PTR2op_src_mask, \ - PTR2op_opc_bits, PTR2op_opc_mask, \ - PTR2op_code_bits, PTR2op_code_mask \ -}; - - -/* COMP3op -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 1 | 0 | 1 |.opc.......|.dst.......|.src1......|.src0......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_src0; - int mask_src0; - int bits_src1; - int mask_src1; - int bits_dst; - int mask_dst; - int bits_opc; - int mask_opc; - int bits_code; - int mask_code; -} COMP3op; - -#define COMP3op_opcode 0x5000 -#define COMP3op_src0_bits 0 -#define COMP3op_src0_mask 0x7 -#define COMP3op_src1_bits 3 -#define COMP3op_src1_mask 0x7 -#define COMP3op_dst_bits 6 -#define COMP3op_dst_mask 0x7 -#define COMP3op_opc_bits 9 -#define COMP3op_opc_mask 0x7 -#define COMP3op_code_bits 12 -#define COMP3op_code_mask 0xf - -#define init_COMP3op \ -{ \ - COMP3op_opcode, \ - COMP3op_src0_bits, COMP3op_src0_mask, \ - COMP3op_src1_bits, COMP3op_src1_mask, \ - COMP3op_dst_bits, COMP3op_dst_mask, \ - COMP3op_opc_bits, COMP3op_opc_mask, \ - COMP3op_code_bits, COMP3op_code_mask \ -}; - -/* ccMV -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 0 | 0 | 0 | 1 | 1 |.T.|.d.|.s.|.dst.......|.src.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_src; - int mask_src; - int bits_dst; - int mask_dst; - int bits_s; - int mask_s; - int bits_d; - int mask_d; - int bits_T; - int mask_T; - int bits_code; - int mask_code; -} CCmv; - -#define CCmv_opcode 0x0600 -#define CCmv_src_bits 0 -#define CCmv_src_mask 0x7 -#define CCmv_dst_bits 3 -#define CCmv_dst_mask 0x7 -#define CCmv_s_bits 6 -#define CCmv_s_mask 0x1 -#define CCmv_d_bits 7 -#define CCmv_d_mask 0x1 -#define CCmv_T_bits 8 -#define CCmv_T_mask 0x1 -#define CCmv_code_bits 9 -#define CCmv_code_mask 0x7f - -#define init_CCmv \ -{ \ - CCmv_opcode, \ - CCmv_src_bits, CCmv_src_mask, \ - CCmv_dst_bits, CCmv_dst_mask, \ - CCmv_s_bits, CCmv_s_mask, \ - CCmv_d_bits, CCmv_d_mask, \ - CCmv_T_bits, CCmv_T_mask, \ - CCmv_code_bits, CCmv_code_mask \ -}; - - -/* CCflag -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 0 | 0 | 1 |.I.|.opc.......|.G.|.y.........|.x.........| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_x; - int mask_x; - int bits_y; - int mask_y; - int bits_G; - int mask_G; - int bits_opc; - int mask_opc; - int bits_I; - int mask_I; - int bits_code; - int mask_code; -} CCflag; - -#define CCflag_opcode 0x0800 -#define CCflag_x_bits 0 -#define CCflag_x_mask 0x7 -#define CCflag_y_bits 3 -#define CCflag_y_mask 0x7 -#define CCflag_G_bits 6 -#define CCflag_G_mask 0x1 -#define CCflag_opc_bits 7 -#define CCflag_opc_mask 0x7 -#define CCflag_I_bits 10 -#define CCflag_I_mask 0x1 -#define CCflag_code_bits 11 -#define CCflag_code_mask 0x1f - -#define init_CCflag \ -{ \ - CCflag_opcode, \ - CCflag_x_bits, CCflag_x_mask, \ - CCflag_y_bits, CCflag_y_mask, \ - CCflag_G_bits, CCflag_G_mask, \ - CCflag_opc_bits, CCflag_opc_mask, \ - CCflag_I_bits, CCflag_I_mask, \ - CCflag_code_bits, CCflag_code_mask, \ -}; - - -/* CC2stat -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |.D.|.op....|.cbit..............| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_cbit; - int mask_cbit; - int bits_op; - int mask_op; - int bits_D; - int mask_D; - int bits_code; - int mask_code; -} CC2stat; - -#define CC2stat_opcode 0x0300 -#define CC2stat_cbit_bits 0 -#define CC2stat_cbit_mask 0x1f -#define CC2stat_op_bits 5 -#define CC2stat_op_mask 0x3 -#define CC2stat_D_bits 7 -#define CC2stat_D_mask 0x1 -#define CC2stat_code_bits 8 -#define CC2stat_code_mask 0xff - -#define init_CC2stat \ -{ \ - CC2stat_opcode, \ - CC2stat_cbit_bits, CC2stat_cbit_mask, \ - CC2stat_op_bits, CC2stat_op_mask, \ - CC2stat_D_bits, CC2stat_D_mask, \ - CC2stat_code_bits, CC2stat_code_mask \ -}; - - -/* REGMV -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 0 | 1 | 1 |.gd........|.gs........|.dst.......|.src.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_src; - int mask_src; - int bits_dst; - int mask_dst; - int bits_gs; - int mask_gs; - int bits_gd; - int mask_gd; - int bits_code; - int mask_code; -} RegMv; - -#define RegMv_opcode 0x3000 -#define RegMv_src_bits 0 -#define RegMv_src_mask 0x7 -#define RegMv_dst_bits 3 -#define RegMv_dst_mask 0x7 -#define RegMv_gs_bits 6 -#define RegMv_gs_mask 0x7 -#define RegMv_gd_bits 9 -#define RegMv_gd_mask 0x7 -#define RegMv_code_bits 12 -#define RegMv_code_mask 0xf - -#define init_RegMv \ -{ \ - RegMv_opcode, \ - RegMv_src_bits, RegMv_src_mask, \ - RegMv_dst_bits, RegMv_dst_mask, \ - RegMv_gs_bits, RegMv_gs_mask, \ - RegMv_gd_bits, RegMv_gd_mask, \ - RegMv_code_bits, RegMv_code_mask \ -}; - - -/* COMPI2opD -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 1 | 1 | 0 | 0 |.op|.isrc......................|.dst.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_dst; - int mask_dst; - int bits_src; - int mask_src; - int bits_op; - int mask_op; - int bits_code; - int mask_code; -} COMPI2opD; - -#define COMPI2opD_opcode 0x6000 -#define COMPI2opD_dst_bits 0 -#define COMPI2opD_dst_mask 0x7 -#define COMPI2opD_src_bits 3 -#define COMPI2opD_src_mask 0x7f -#define COMPI2opD_op_bits 10 -#define COMPI2opD_op_mask 0x1 -#define COMPI2opD_code_bits 11 -#define COMPI2opD_code_mask 0x1f - -#define init_COMPI2opD \ -{ \ - COMPI2opD_opcode, \ - COMPI2opD_dst_bits, COMPI2opD_dst_mask, \ - COMPI2opD_src_bits, COMPI2opD_src_mask, \ - COMPI2opD_op_bits, COMPI2opD_op_mask, \ - COMPI2opD_code_bits, COMPI2opD_code_mask \ -}; - -/* COMPI2opP -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 0 | 1 | 1 | 0 | 1 |.op|.src.......................|.dst.......| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef COMPI2opD COMPI2opP; - -#define COMPI2opP_opcode 0x6800 -#define COMPI2opP_dst_bits 0 -#define COMPI2opP_dst_mask 0x7 -#define COMPI2opP_src_bits 3 -#define COMPI2opP_src_mask 0x7f -#define COMPI2opP_op_bits 10 -#define COMPI2opP_op_mask 0x1 -#define COMPI2opP_code_bits 11 -#define COMPI2opP_code_mask 0x1f - -#define init_COMPI2opP \ -{ \ - COMPI2opP_opcode, \ - COMPI2opP_dst_bits, COMPI2opP_dst_mask, \ - COMPI2opP_src_bits, COMPI2opP_src_mask, \ - COMPI2opP_op_bits, COMPI2opP_op_mask, \ - COMPI2opP_code_bits, COMPI2opP_code_mask \ -}; - - -/* dagMODim -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 |.br| 1 | 1 |.op|.m.....|.i.....| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_i; - int mask_i; - int bits_m; - int mask_m; - int bits_op; - int mask_op; - int bits_code2; - int mask_code2; - int bits_br; - int mask_br; - int bits_code; - int mask_code; -} DagMODim; - -#define DagMODim_opcode 0x9e60 -#define DagMODim_i_bits 0 -#define DagMODim_i_mask 0x3 -#define DagMODim_m_bits 2 -#define DagMODim_m_mask 0x3 -#define DagMODim_op_bits 4 -#define DagMODim_op_mask 0x1 -#define DagMODim_code2_bits 5 -#define DagMODim_code2_mask 0x3 -#define DagMODim_br_bits 7 -#define DagMODim_br_mask 0x1 -#define DagMODim_code_bits 8 -#define DagMODim_code_mask 0xff - -#define init_DagMODim \ -{ \ - DagMODim_opcode, \ - DagMODim_i_bits, DagMODim_i_mask, \ - DagMODim_m_bits, DagMODim_m_mask, \ - DagMODim_op_bits, DagMODim_op_mask, \ - DagMODim_code2_bits, DagMODim_code2_mask, \ - DagMODim_br_bits, DagMODim_br_mask, \ - DagMODim_code_bits, DagMODim_code_mask \ -}; - -/* dagMODik -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -| 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 |.op....|.i.....| -+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+ -*/ - -typedef struct -{ - unsigned short opcode; - int bits_i; - int mask_i; - int bits_op; - int mask_op; - int bits_code; - int mask_code; -} DagMODik; - -#define DagMODik_opcode 0x9f60 -#define DagMODik_i_bits 0 -#define DagMODik_i_mask 0x3 -#define DagMODik_op_bits 2 -#define DagMODik_op_mask 0x3 -#define DagMODik_code_bits 3 -#define DagMODik_code_mask 0xfff - -#define init_DagMODik \ -{ \ - DagMODik_opcode, \ - DagMODik_i_bits, DagMODik_i_mask, \ - DagMODik_op_bits, DagMODik_op_mask, \ - DagMODik_code_bits, DagMODik_code_mask \ -}; - -#endif |