root / target-sparc / helper.h @ 73e51723
History | View | Annotate | Download (7 kB)
1 | 1a2fb1c0 | blueswir1 | #define TCG_HELPER_PROTO
|
---|---|---|---|
2 | 1a2fb1c0 | blueswir1 | |
3 | 1a2fb1c0 | blueswir1 | #ifndef TARGET_SPARC64
|
4 | 1a2fb1c0 | blueswir1 | void TCG_HELPER_PROTO helper_rett(void); |
5 | 1a2fb1c0 | blueswir1 | void TCG_HELPER_PROTO helper_wrpsr(target_ulong new_psr);
|
6 | 1a2fb1c0 | blueswir1 | target_ulong TCG_HELPER_PROTO helper_rdpsr(void);
|
7 | 1a2fb1c0 | blueswir1 | #else
|
8 | 1a2fb1c0 | blueswir1 | void TCG_HELPER_PROTO helper_wrpstate(target_ulong new_state);
|
9 | 1a2fb1c0 | blueswir1 | void TCG_HELPER_PROTO helper_done(void); |
10 | 1a2fb1c0 | blueswir1 | void TCG_HELPER_PROTO helper_retry(void); |
11 | 72a9747b | blueswir1 | void TCG_HELPER_PROTO helper_flushw(void); |
12 | 72a9747b | blueswir1 | void TCG_HELPER_PROTO helper_saved(void); |
13 | 72a9747b | blueswir1 | void TCG_HELPER_PROTO helper_restored(void); |
14 | d35527d9 | blueswir1 | target_ulong TCG_HELPER_PROTO helper_rdccr(void);
|
15 | d35527d9 | blueswir1 | void TCG_HELPER_PROTO helper_wrccr(target_ulong new_ccr);
|
16 | d35527d9 | blueswir1 | target_ulong TCG_HELPER_PROTO helper_rdcwp(void);
|
17 | d35527d9 | blueswir1 | void TCG_HELPER_PROTO helper_wrcwp(target_ulong new_cwp);
|
18 | 1f5063fb | blueswir1 | target_ulong TCG_HELPER_PROTO helper_array8(target_ulong pixel_addr, |
19 | 1f5063fb | blueswir1 | target_ulong cubesize); |
20 | 1f5063fb | blueswir1 | target_ulong TCG_HELPER_PROTO helper_alignaddr(target_ulong addr, |
21 | 1f5063fb | blueswir1 | target_ulong offset); |
22 | 1a2fb1c0 | blueswir1 | target_ulong TCG_HELPER_PROTO helper_popc(target_ulong val); |
23 | 1a2fb1c0 | blueswir1 | void TCG_HELPER_PROTO helper_ldf_asi(target_ulong addr, int asi, int size, |
24 | 1a2fb1c0 | blueswir1 | int rd);
|
25 | 1a2fb1c0 | blueswir1 | void TCG_HELPER_PROTO helper_stf_asi(target_ulong addr, int asi, int size, |
26 | 1a2fb1c0 | blueswir1 | int rd);
|
27 | 1a2fb1c0 | blueswir1 | target_ulong TCG_HELPER_PROTO |
28 | 1a2fb1c0 | blueswir1 | helper_cas_asi(target_ulong addr, target_ulong val1, |
29 | 1a2fb1c0 | blueswir1 | target_ulong val2, uint32_t asi); |
30 | 1a2fb1c0 | blueswir1 | target_ulong TCG_HELPER_PROTO |
31 | 1a2fb1c0 | blueswir1 | helper_casx_asi(target_ulong addr, target_ulong val1, |
32 | 1a2fb1c0 | blueswir1 | target_ulong val2, uint32_t asi); |
33 | ccd4a219 | blueswir1 | void TCG_HELPER_PROTO helper_tick_set_count(void *opaque, uint64_t count); |
34 | ccd4a219 | blueswir1 | uint64_t TCG_HELPER_PROTO helper_tick_get_count(void *opaque);
|
35 | ccd4a219 | blueswir1 | void TCG_HELPER_PROTO helper_tick_set_limit(void *opaque, uint64_t limit); |
36 | 1a2fb1c0 | blueswir1 | #endif
|
37 | 1a2fb1c0 | blueswir1 | void TCG_HELPER_PROTO helper_trap(target_ulong nb_trap);
|
38 | 1a2fb1c0 | blueswir1 | void TCG_HELPER_PROTO helper_trapcc(target_ulong nb_trap,
|
39 | 1a2fb1c0 | blueswir1 | target_ulong do_trap); |
40 | 2b29924f | blueswir1 | void TCG_HELPER_PROTO helper_check_align(target_ulong addr, uint32_t align);
|
41 | 1a2fb1c0 | blueswir1 | void TCG_HELPER_PROTO helper_debug(void); |
42 | 72a9747b | blueswir1 | void TCG_HELPER_PROTO helper_save(void); |
43 | 72a9747b | blueswir1 | void TCG_HELPER_PROTO helper_restore(void); |
44 | 1a2fb1c0 | blueswir1 | void TCG_HELPER_PROTO helper_flush(target_ulong addr);
|
45 | 3b89f26c | blueswir1 | target_ulong TCG_HELPER_PROTO helper_udiv(target_ulong a, target_ulong b); |
46 | 3b89f26c | blueswir1 | target_ulong TCG_HELPER_PROTO helper_sdiv(target_ulong a, target_ulong b); |
47 | 1a2fb1c0 | blueswir1 | uint64_t TCG_HELPER_PROTO helper_pack64(target_ulong high, target_ulong low); |
48 | 7fa76c0b | blueswir1 | void TCG_HELPER_PROTO helper_std_i386(target_ulong addr, int mem_idx); |
49 | 7fa76c0b | blueswir1 | void TCG_HELPER_PROTO helper_stdf(target_ulong addr, int mem_idx); |
50 | 7fa76c0b | blueswir1 | void TCG_HELPER_PROTO helper_lddf(target_ulong addr, int mem_idx); |
51 | 7fa76c0b | blueswir1 | #if defined(CONFIG_USER_ONLY)
|
52 | 7fa76c0b | blueswir1 | void TCG_HELPER_PROTO helper_ldqf(target_ulong addr);
|
53 | 7fa76c0b | blueswir1 | void TCG_HELPER_PROTO helper_stqf(target_ulong addr);
|
54 | 7fa76c0b | blueswir1 | #endif
|
55 | 1a2fb1c0 | blueswir1 | uint64_t TCG_HELPER_PROTO helper_ld_asi(target_ulong addr, int asi,
|
56 | 1a2fb1c0 | blueswir1 | int size, int sign); |
57 | 1a2fb1c0 | blueswir1 | void TCG_HELPER_PROTO helper_st_asi(target_ulong addr, uint64_t val, int asi, |
58 | 1a2fb1c0 | blueswir1 | int size);
|
59 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_ldfsr(void); |
60 | bb5529bb | blueswir1 | void TCG_HELPER_PROTO helper_stfsr(void); |
61 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_check_ieee_exceptions(void); |
62 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_clear_float_exceptions(void); |
63 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fabss(void); |
64 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fsqrts(void); |
65 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fsqrtd(void); |
66 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmps(void); |
67 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmpd(void); |
68 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmpes(void); |
69 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmped(void); |
70 | 7e8c2b6c | blueswir1 | #if defined(CONFIG_USER_ONLY)
|
71 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fsqrtq(void); |
72 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmpq(void); |
73 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmpeq(void); |
74 | 7e8c2b6c | blueswir1 | #endif
|
75 | 7e8c2b6c | blueswir1 | #ifdef TARGET_SPARC64
|
76 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fabsd(void); |
77 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmps_fcc1(void); |
78 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmpd_fcc1(void); |
79 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmps_fcc2(void); |
80 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmpd_fcc2(void); |
81 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmps_fcc3(void); |
82 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmpd_fcc3(void); |
83 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmpes_fcc1(void); |
84 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmped_fcc1(void); |
85 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmpes_fcc2(void); |
86 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmped_fcc2(void); |
87 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmpes_fcc3(void); |
88 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmped_fcc3(void); |
89 | 7e8c2b6c | blueswir1 | #if defined(CONFIG_USER_ONLY)
|
90 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fabsq(void); |
91 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmpq_fcc1(void); |
92 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmpq_fcc2(void); |
93 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmpq_fcc3(void); |
94 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmpeq_fcc1(void); |
95 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmpeq_fcc2(void); |
96 | 7e8c2b6c | blueswir1 | void TCG_HELPER_PROTO helper_fcmpeq_fcc3(void); |
97 | 7e8c2b6c | blueswir1 | #endif
|
98 | 7e8c2b6c | blueswir1 | #endif
|
99 | 134d77a1 | blueswir1 | void TCG_HELPER_PROTO raise_exception(int tt); |
100 | 44e7757c | blueswir1 | #define F_HELPER_0_0(name) void TCG_HELPER_PROTO helper_f ## name(void) |
101 | 44e7757c | blueswir1 | #if defined(CONFIG_USER_ONLY)
|
102 | 44e7757c | blueswir1 | #define F_HELPER_SDQ_0_0(name) \
|
103 | 44e7757c | blueswir1 | F_HELPER_0_0(name ## s); \ |
104 | 44e7757c | blueswir1 | F_HELPER_0_0(name ## d); \ |
105 | 44e7757c | blueswir1 | F_HELPER_0_0(name ## q) |
106 | 44e7757c | blueswir1 | #else
|
107 | 44e7757c | blueswir1 | #define F_HELPER_SDQ_0_0(name) \
|
108 | 44e7757c | blueswir1 | F_HELPER_0_0(name ## s); \ |
109 | 44e7757c | blueswir1 | F_HELPER_0_0(name ## d); |
110 | 44e7757c | blueswir1 | #endif
|
111 | 44e7757c | blueswir1 | |
112 | 44e7757c | blueswir1 | F_HELPER_SDQ_0_0(add); |
113 | 44e7757c | blueswir1 | F_HELPER_SDQ_0_0(sub); |
114 | 44e7757c | blueswir1 | F_HELPER_SDQ_0_0(mul); |
115 | 44e7757c | blueswir1 | F_HELPER_SDQ_0_0(div); |
116 | 44e7757c | blueswir1 | |
117 | 44e7757c | blueswir1 | F_HELPER_0_0(smuld); |
118 | 44e7757c | blueswir1 | F_HELPER_0_0(dmulq); |
119 | 44e7757c | blueswir1 | |
120 | 44e7757c | blueswir1 | F_HELPER_SDQ_0_0(neg); |
121 | 44e7757c | blueswir1 | F_HELPER_SDQ_0_0(ito); |
122 | 44e7757c | blueswir1 | #ifdef TARGET_SPARC64
|
123 | 44e7757c | blueswir1 | F_HELPER_SDQ_0_0(xto); |
124 | 44e7757c | blueswir1 | #endif
|
125 | 44e7757c | blueswir1 | F_HELPER_0_0(dtos); |
126 | 44e7757c | blueswir1 | F_HELPER_0_0(stod); |
127 | 44e7757c | blueswir1 | #if defined(CONFIG_USER_ONLY)
|
128 | 44e7757c | blueswir1 | F_HELPER_0_0(qtos); |
129 | 44e7757c | blueswir1 | F_HELPER_0_0(stoq); |
130 | 44e7757c | blueswir1 | F_HELPER_0_0(qtod); |
131 | 44e7757c | blueswir1 | F_HELPER_0_0(dtoq); |
132 | 44e7757c | blueswir1 | #endif
|
133 | 44e7757c | blueswir1 | F_HELPER_0_0(stoi); |
134 | 44e7757c | blueswir1 | F_HELPER_0_0(dtoi); |
135 | 44e7757c | blueswir1 | #if defined(CONFIG_USER_ONLY)
|
136 | 44e7757c | blueswir1 | F_HELPER_0_0(qtoi); |
137 | 44e7757c | blueswir1 | #endif
|
138 | 44e7757c | blueswir1 | #ifdef TARGET_SPARC64
|
139 | 44e7757c | blueswir1 | F_HELPER_0_0(stox); |
140 | 44e7757c | blueswir1 | F_HELPER_0_0(dtox); |
141 | 44e7757c | blueswir1 | #if defined(CONFIG_USER_ONLY)
|
142 | 44e7757c | blueswir1 | F_HELPER_0_0(qtox); |
143 | 44e7757c | blueswir1 | #endif
|
144 | 44e7757c | blueswir1 | F_HELPER_0_0(aligndata); |
145 | 44e7757c | blueswir1 | void TCG_HELPER_PROTO helper_movl_FT0_0(void); |
146 | 44e7757c | blueswir1 | void TCG_HELPER_PROTO helper_movl_DT0_0(void); |
147 | 44e7757c | blueswir1 | void TCG_HELPER_PROTO helper_movl_FT0_1(void); |
148 | 44e7757c | blueswir1 | void TCG_HELPER_PROTO helper_movl_DT0_1(void); |
149 | 44e7757c | blueswir1 | F_HELPER_0_0(not); |
150 | 44e7757c | blueswir1 | F_HELPER_0_0(nots); |
151 | 44e7757c | blueswir1 | F_HELPER_0_0(nor); |
152 | 44e7757c | blueswir1 | F_HELPER_0_0(nors); |
153 | 44e7757c | blueswir1 | F_HELPER_0_0(or); |
154 | 44e7757c | blueswir1 | F_HELPER_0_0(ors); |
155 | 44e7757c | blueswir1 | F_HELPER_0_0(xor); |
156 | 44e7757c | blueswir1 | F_HELPER_0_0(xors); |
157 | 44e7757c | blueswir1 | F_HELPER_0_0(and); |
158 | 44e7757c | blueswir1 | F_HELPER_0_0(ands); |
159 | 44e7757c | blueswir1 | F_HELPER_0_0(ornot); |
160 | 44e7757c | blueswir1 | F_HELPER_0_0(ornots); |
161 | 44e7757c | blueswir1 | F_HELPER_0_0(andnot); |
162 | 44e7757c | blueswir1 | F_HELPER_0_0(andnots); |
163 | 44e7757c | blueswir1 | F_HELPER_0_0(nand); |
164 | 44e7757c | blueswir1 | F_HELPER_0_0(nands); |
165 | 44e7757c | blueswir1 | F_HELPER_0_0(xnor); |
166 | 44e7757c | blueswir1 | F_HELPER_0_0(xnors); |
167 | 44e7757c | blueswir1 | F_HELPER_0_0(pmerge); |
168 | 44e7757c | blueswir1 | F_HELPER_0_0(mul8x16); |
169 | 44e7757c | blueswir1 | F_HELPER_0_0(mul8x16al); |
170 | 44e7757c | blueswir1 | F_HELPER_0_0(mul8x16au); |
171 | 44e7757c | blueswir1 | F_HELPER_0_0(mul8sux16); |
172 | 44e7757c | blueswir1 | F_HELPER_0_0(mul8ulx16); |
173 | 44e7757c | blueswir1 | F_HELPER_0_0(muld8sux16); |
174 | 44e7757c | blueswir1 | F_HELPER_0_0(muld8ulx16); |
175 | 44e7757c | blueswir1 | F_HELPER_0_0(expand); |
176 | 44e7757c | blueswir1 | #define VIS_HELPER(name) \
|
177 | 44e7757c | blueswir1 | F_HELPER_0_0(name##16); \ |
178 | 44e7757c | blueswir1 | F_HELPER_0_0(name##16s); \ |
179 | 44e7757c | blueswir1 | F_HELPER_0_0(name##32); \ |
180 | 44e7757c | blueswir1 | F_HELPER_0_0(name##32s) |
181 | 44e7757c | blueswir1 | |
182 | 44e7757c | blueswir1 | VIS_HELPER(padd); |
183 | 44e7757c | blueswir1 | VIS_HELPER(psub); |
184 | 44e7757c | blueswir1 | #define VIS_CMPHELPER(name) \
|
185 | 44e7757c | blueswir1 | F_HELPER_0_0(name##16); \ |
186 | 44e7757c | blueswir1 | F_HELPER_0_0(name##32) |
187 | 44e7757c | blueswir1 | VIS_CMPHELPER(cmpgt); |
188 | 44e7757c | blueswir1 | VIS_CMPHELPER(cmpeq); |
189 | 44e7757c | blueswir1 | VIS_CMPHELPER(cmple); |
190 | 44e7757c | blueswir1 | VIS_CMPHELPER(cmpne); |
191 | 44e7757c | blueswir1 | #endif
|
192 | 44e7757c | blueswir1 | #undef F_HELPER_0_0
|
193 | 44e7757c | blueswir1 | #undef F_HELPER_SDQ_0_0
|
194 | 44e7757c | blueswir1 | #undef VIS_HELPER
|
195 | 44e7757c | blueswir1 | #undef VIS_CMPHELPER |