]> Git Repo - qemu.git/blame - target-sparc/exec.h
initial user mmu support
[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"
4
5register struct CPUSPARCState *env asm(AREG0);
af7bf89b
FB
6#ifdef TARGET_SPARC64
7#define T0 (env->t0)
8#define T1 (env->t1)
9#define T2 (env->t2)
10#else
7a3f1944
FB
11register uint32_t T0 asm(AREG1);
12register uint32_t T1 asm(AREG2);
13register uint32_t T2 asm(AREG3);
af7bf89b 14#endif
e8af50a3
FB
15#define FT0 (env->ft0)
16#define FT1 (env->ft1)
17#define FT2 (env->ft2)
18#define DT0 (env->dt0)
19#define DT1 (env->dt1)
20#define DT2 (env->dt2)
7a3f1944
FB
21
22#include "cpu.h"
23#include "exec-all.h"
24
25void cpu_lock(void);
26void cpu_unlock(void);
27void cpu_loop_exit(void);
658138bc 28void helper_flush(target_ulong addr);
e8af50a3
FB
29void helper_ld_asi(int asi, int size, int sign);
30void helper_st_asi(int asi, int size, int sign);
31void helper_rett(void);
8d5f07fa 32void helper_ldfsr(void);
e8af50a3 33void set_cwp(int new_cwp);
a0c4cb4a
FB
34void do_fitos(void);
35void do_fitod(void);
e8af50a3
FB
36void do_fabss(void);
37void do_fsqrts(void);
38void do_fsqrtd(void);
39void do_fcmps(void);
40void do_fcmpd(void);
af7bf89b
FB
41void do_ldd_kernel(target_ulong addr);
42void do_ldd_user(target_ulong addr);
43void do_ldd_raw(target_ulong addr);
e8af50a3
FB
44void do_interrupt(int intno, int is_int, int error_code,
45 unsigned int next_eip, int is_hw);
46void raise_exception_err(int exception_index, int error_code);
47void raise_exception(int tt);
af7bf89b
FB
48void memcpy32(target_ulong *dst, const target_ulong *src);
49target_ulong mmu_probe(target_ulong address, int mmulev);
e80cfcfc
FB
50void dump_mmu(void);
51void helper_debug();
af7bf89b
FB
52void do_wrpsr();
53void do_rdpsr();
e8af50a3
FB
54
55/* XXX: move that to a generic header */
56#if !defined(CONFIG_USER_ONLY)
57
58#define ldul_user ldl_user
59#define ldul_kernel ldl_kernel
60
61#define ACCESS_TYPE 0
62#define MEMSUFFIX _kernel
63#define DATA_SIZE 1
64#include "softmmu_header.h"
65
66#define DATA_SIZE 2
67#include "softmmu_header.h"
68
69#define DATA_SIZE 4
70#include "softmmu_header.h"
71
72#define DATA_SIZE 8
73#include "softmmu_header.h"
74#undef ACCESS_TYPE
75#undef MEMSUFFIX
76
77#define ACCESS_TYPE 1
78#define MEMSUFFIX _user
79#define DATA_SIZE 1
80#include "softmmu_header.h"
81
82#define DATA_SIZE 2
83#include "softmmu_header.h"
84
85#define DATA_SIZE 4
86#include "softmmu_header.h"
87
88#define DATA_SIZE 8
89#include "softmmu_header.h"
90#undef ACCESS_TYPE
91#undef MEMSUFFIX
92
93/* these access are slower, they must be as rare as possible */
94#define ACCESS_TYPE 2
95#define MEMSUFFIX _data
96#define DATA_SIZE 1
97#include "softmmu_header.h"
98
99#define DATA_SIZE 2
100#include "softmmu_header.h"
101
102#define DATA_SIZE 4
103#include "softmmu_header.h"
104
105#define DATA_SIZE 8
106#include "softmmu_header.h"
107#undef ACCESS_TYPE
108#undef MEMSUFFIX
109
110#define ldub(p) ldub_data(p)
111#define ldsb(p) ldsb_data(p)
112#define lduw(p) lduw_data(p)
113#define ldsw(p) ldsw_data(p)
114#define ldl(p) ldl_data(p)
115#define ldq(p) ldq_data(p)
116
117#define stb(p, v) stb_data(p, v)
118#define stw(p, v) stw_data(p, v)
119#define stl(p, v) stl_data(p, v)
120#define stq(p, v) stq_data(p, v)
121
122#endif /* !defined(CONFIG_USER_ONLY) */
0d1a29f9
FB
123
124static inline void env_to_regs(void)
125{
126}
127
128static inline void regs_to_env(void)
129{
130}
131
7a3f1944 132#endif
This page took 0.083242 seconds and 4 git commands to generate.