mips-defs.h 1.6 KB
Newer Older
B
bellard 已提交
1 2 3 4 5 6 7 8
#if !defined (__QEMU_MIPS_DEFS_H__)
#define __QEMU_MIPS_DEFS_H__

/* If we want to use host float regs... */
//#define USE_HOST_FLOAT_REGS

/* real pages are variable size... */
#define TARGET_PAGE_BITS 12
9
#define MIPS_TLB_MAX 128
B
bellard 已提交
10

T
ths 已提交
11
#ifdef TARGET_MIPS64
12 13 14 15 16
#define TARGET_LONG_BITS 64
#else
#define TARGET_LONG_BITS 32
#endif

17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
/* Masks used to mark instructions to indicate which ISA level they
   were introduced in. */
#define		ISA_MIPS1	0x00000001
#define		ISA_MIPS2	0x00000002
#define		ISA_MIPS3	0x00000004
#define		ISA_MIPS4	0x00000008
#define		ISA_MIPS5	0x00000010
#define		ISA_MIPS32	0x00000020
#define		ISA_MIPS32R2	0x00000040
#define		ISA_MIPS64	0x00000080
#define		ISA_MIPS64R2	0x00000100

/* MIPS ASE */
#define		ASE_MIPS16	0x00001000
#define		ASE_MIPS3D	0x00002000
#define		ASE_MDMX	0x00004000
#define		ASE_DSP		0x00008000
#define		ASE_DSPR2	0x00010000

/* Chip specific instructions.   */
/* Currently void */

/* MIPS CPU defines.  */
#define		CPU_MIPS1	(ISA_MIPS1)
#define		CPU_MIPS2	(CPU_MIPS1 | ISA_MIPS2)
#define		CPU_MIPS3	(CPU_MIPS2 | ISA_MIPS3)
#define		CPU_MIPS4	(CPU_MIPS3 | ISA_MIPS4)
#define		CPU_MIPS5	(CPU_MIPS4 | ISA_MIPS5)

#define		CPU_MIPS32	(CPU_MIPS2 | ISA_MIPS32)
#define		CPU_MIPS64	(CPU_MIPS5 | CPU_MIPS32 | ISA_MIPS64)

#define		CPU_MIPS32R2	(CPU_MIPS32 | ISA_MIPS32R2)
#define		CPU_MIPS64R2	(CPU_MIPS64 | CPU_MIPS32R2 | ISA_MIPS64R2)

52 53 54
/* Strictly follow the architecture standard:
   - Disallow "special" instruction handling for PMON/SPIM.
   Note that we still maintain Count/Compare to match the host clock. */
55 56
//#define MIPS_STRICT_STANDARD 1

B
bellard 已提交
57
#endif /* !defined (__QEMU_MIPS_DEFS_H__) */