]> Git Repo - qemu.git/blame - target-sparc/exec.h
ELF loader (Thiemo Seufer)
[qemu.git] / target-sparc / exec.h
CommitLineData
7a3f1944
FB
1#ifndef EXEC_SPARC_H
2#define EXEC_SPARC_H 1
3#include "dyngen-exec.h"
3475187d 4#include "config.h"
7a3f1944
FB
5
6register struct CPUSPARCState *env asm(AREG0);
af7bf89b
FB
7#ifdef TARGET_SPARC64
8#define T0 (env->t0)
9#define T1 (env->t1)
10#define T2 (env->t2)
3475187d 11#define REGWPTR env->regwptr
af7bf89b 12#else
7a3f1944
FB
13register uint32_t T0 asm(AREG1);
14register uint32_t T1 asm(AREG2);
3475187d
FB
15
16#undef REG_REGWPTR // Broken
17#ifdef REG_REGWPTR
18register uint32_t *REGWPTR asm(AREG3);
19#define reg_REGWPTR
20
21#ifdef AREG4
22register uint32_t T2 asm(AREG4);
23#define reg_T2
24#else
25#define T2 (env->t2)
26#endif
27
28#else
29#define REGWPTR env->regwptr
7a3f1944 30register uint32_t T2 asm(AREG3);
3475187d
FB
31#define reg_T2
32#endif
af7bf89b 33#endif
3475187d 34
e8af50a3
FB
35#define FT0 (env->ft0)
36#define FT1 (env->ft1)
e8af50a3
FB
37#define DT0 (env->dt0)
38#define DT1 (env->dt1)
7a3f1944
FB
39
40#include "cpu.h"
41#include "exec-all.h"
42
43void cpu_lock(void);
44void cpu_unlock(void);
45void cpu_loop_exit(void);
658138bc 46void helper_flush(target_ulong addr);
e8af50a3
FB
47void helper_ld_asi(int asi, int size, int sign);
48void helper_st_asi(int asi, int size, int sign);
49void helper_rett(void);
8d5f07fa 50void helper_ldfsr(void);
e8af50a3 51void set_cwp(int new_cwp);
a0c4cb4a
FB
52void do_fitos(void);
53void do_fitod(void);
e8af50a3
FB
54void do_fabss(void);
55void do_fsqrts(void);
56void do_fsqrtd(void);
57void do_fcmps(void);
58void do_fcmpd(void);
3475187d
FB
59#ifdef TARGET_SPARC64
60void do_fabsd(void);
61void do_fcmps_fcc1(void);
62void do_fcmpd_fcc1(void);
63void do_fcmps_fcc2(void);
64void do_fcmpd_fcc2(void);
65void do_fcmps_fcc3(void);
66void do_fcmpd_fcc3(void);
67void do_popc();
83469015
FB
68void do_wrpstate();
69void do_done();
70void do_retry();
3475187d 71#endif
af7bf89b
FB
72void do_ldd_kernel(target_ulong addr);
73void do_ldd_user(target_ulong addr);
74void do_ldd_raw(target_ulong addr);
878d3096 75void do_interrupt(int intno);
e8af50a3 76void raise_exception(int tt);
af7bf89b 77void memcpy32(target_ulong *dst, const target_ulong *src);
ee5bbe38
FB
78target_ulong mmu_probe(CPUState *env, target_ulong address, int mmulev);
79void dump_mmu(CPUState *env);
e80cfcfc 80void helper_debug();
af7bf89b
FB
81void do_wrpsr();
82void do_rdpsr();
e8af50a3
FB
83
84/* XXX: move that to a generic header */
85#if !defined(CONFIG_USER_ONLY)
a9049a07 86#include "softmmu_exec.h"
e8af50a3 87#endif /* !defined(CONFIG_USER_ONLY) */
0d1a29f9
FB
88
89static inline void env_to_regs(void)
90{
aea3ce4c
FB
91#if defined(reg_REGWPTR)
92 REGWPTR = env->regbase + (env->cwp * 16);
93 env->regwptr = REGWPTR;
94#endif
0d1a29f9
FB
95}
96
97static inline void regs_to_env(void)
98{
99}
100
9d893301
FB
101int cpu_sparc_handle_mmu_fault(CPUState *env, target_ulong address, int rw,
102 int is_user, int is_softmmu);
103
7a3f1944 104#endif
This page took 0.11395 seconds and 4 git commands to generate.