cpu.h (68524e83f8fbe23dca37dc5b847fb558d75c8fab) cpu.h (b597eedcce0de84ff573a6be2cd6a89c7fa0fd8e)
1#ifndef SPARC_CPU_H
2#define SPARC_CPU_H
3
4#include "qemu/bswap.h"
5#include "cpu-qom.h"
6#include "exec/cpu-defs.h"
7#include "qemu/cpu-float.h"
8

--- 123 unchanged lines hidden (view full) ---

132#define PSR_EF (1<<12)
133#define PSR_PIL 0xf00
134#define PSR_S (1<<7)
135#define PSR_PS (1<<6)
136#define PSR_ET (1<<5)
137#define PSR_CWP 0x1f
138#endif
139
1#ifndef SPARC_CPU_H
2#define SPARC_CPU_H
3
4#include "qemu/bswap.h"
5#include "cpu-qom.h"
6#include "exec/cpu-defs.h"
7#include "qemu/cpu-float.h"
8

--- 123 unchanged lines hidden (view full) ---

132#define PSR_EF (1<<12)
133#define PSR_PIL 0xf00
134#define PSR_S (1<<7)
135#define PSR_PS (1<<6)
136#define PSR_ET (1<<5)
137#define PSR_CWP 0x1f
138#endif
139
140#define CC_SRC (env->cc_src)
141#define CC_SRC2 (env->cc_src2)
142#define CC_DST (env->cc_dst)
143#define CC_OP (env->cc_op)
144
145/* Even though lazy evaluation of CPU condition codes tends to be less
146 * important on RISC systems where condition codes are only updated
147 * when explicitly requested, SPARC uses it to update 32-bit and 64-bit
148 * condition codes.
149 */
150enum {
151 CC_OP_DYNAMIC, /* must use dynamic code to get cc_op */
152 CC_OP_FLAGS, /* all cc are back in cc_*_[NZCV] registers */
153 CC_OP_NB,
154};
155
156/* Trap base register */
157#define TBR_BASE_MASK 0xfffff000
158
159#if defined(TARGET_SPARC64)
160#define PS_TCT (1<<12) /* UA2007, impl.dep. trap on control transfer */
161#define PS_IG (1<<11) /* v9, zero on UA2007 */
162#define PS_MG (1<<10) /* v9, zero on UA2007 */
163#define PS_CLE (1<<9) /* UA2007 */

--- 305 unchanged lines hidden (view full) ---

469 * For sparc64, xcc.C is boolean;
470 * icc.C is bit 32 with other bits garbage.
471 */
472 target_ulong icc_C;
473#ifdef TARGET_SPARC64
474 target_ulong xcc_C;
475#endif
476
140/* Trap base register */
141#define TBR_BASE_MASK 0xfffff000
142
143#if defined(TARGET_SPARC64)
144#define PS_TCT (1<<12) /* UA2007, impl.dep. trap on control transfer */
145#define PS_IG (1<<11) /* v9, zero on UA2007 */
146#define PS_MG (1<<10) /* v9, zero on UA2007 */
147#define PS_CLE (1<<9) /* UA2007 */

--- 305 unchanged lines hidden (view full) ---

453 * For sparc64, xcc.C is boolean;
454 * icc.C is bit 32 with other bits garbage.
455 */
456 target_ulong icc_C;
457#ifdef TARGET_SPARC64
458 target_ulong xcc_C;
459#endif
460
477 /* emulator internal flags handling */
478 target_ulong cc_src, cc_src2;
479 target_ulong cc_dst;
480 uint32_t cc_op;
481
482 target_ulong cond; /* conditional branch result (XXX: save it in a
483 temporary register when possible) */
484
485 target_ulong fsr; /* FPU state register */
486 CPU_DoubleU fpr[TARGET_DPREGS]; /* floating point registers */
487 uint32_t cwp; /* index of current register window (extracted
488 from PSR) */
489#if !defined(TARGET_SPARC64) || defined(TARGET_ABI32)

--- 373 unchanged lines hidden ---
461 target_ulong cond; /* conditional branch result (XXX: save it in a
462 temporary register when possible) */
463
464 target_ulong fsr; /* FPU state register */
465 CPU_DoubleU fpr[TARGET_DPREGS]; /* floating point registers */
466 uint32_t cwp; /* index of current register window (extracted
467 from PSR) */
468#if !defined(TARGET_SPARC64) || defined(TARGET_ABI32)

--- 373 unchanged lines hidden ---