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