2 #define DEF_HELPER(ret, name, params) ret name params;
6 DEF_HELPER(void, helper_rett
, (void))
7 DEF_HELPER(void, helper_wrpsr
, (target_ulong new_psr
))
8 DEF_HELPER(target_ulong
, helper_rdpsr
, (void))
10 DEF_HELPER(void, helper_wrpstate
, (target_ulong new_state
))
11 DEF_HELPER(void, helper_done
, (void))
12 DEF_HELPER(void, helper_retry
, (void))
13 DEF_HELPER(void, helper_flushw
, (void))
14 DEF_HELPER(void, helper_saved
, (void))
15 DEF_HELPER(void, helper_restored
, (void))
16 DEF_HELPER(target_ulong
, helper_rdccr
, (void))
17 DEF_HELPER(void, helper_wrccr
, (target_ulong new_ccr
))
18 DEF_HELPER(target_ulong
, helper_rdcwp
, (void))
19 DEF_HELPER(void, helper_wrcwp
, (target_ulong new_cwp
))
20 DEF_HELPER(target_ulong
, helper_array8
, (target_ulong pixel_addr
, \
21 target_ulong cubesize
))
22 DEF_HELPER(target_ulong
, helper_alignaddr
, (target_ulong addr
, \
24 DEF_HELPER(target_ulong
, helper_popc
, (target_ulong val
))
25 DEF_HELPER(void, helper_ldda_asi
, (target_ulong addr
, int asi
, int rd
))
26 DEF_HELPER(void, helper_ldf_asi
, (target_ulong addr
, int asi
, int size
, int rd
))
27 DEF_HELPER(void, helper_stf_asi
, (target_ulong addr
, int asi
, int size
, int rd
))
28 DEF_HELPER(target_ulong
, helper_cas_asi
, (target_ulong addr
, \
30 target_ulong val2
, uint32_t asi
))
31 DEF_HELPER(target_ulong
, helper_casx_asi
, (target_ulong addr
, \
33 target_ulong val2
, uint32_t asi
))
34 DEF_HELPER(void, helper_tick_set_count
, (void *opaque
, uint64_t count
))
35 DEF_HELPER(uint64_t, helper_tick_get_count
, (void *opaque
))
36 DEF_HELPER(void, helper_tick_set_limit
, (void *opaque
, uint64_t limit
))
38 DEF_HELPER(void, helper_trap
, (target_ulong nb_trap
))
39 DEF_HELPER(void, helper_trapcc
, (target_ulong nb_trap
, target_ulong do_trap
))
40 DEF_HELPER(void, helper_check_align
, (target_ulong addr
, uint32_t align
))
41 DEF_HELPER(void, helper_debug
, (void))
42 DEF_HELPER(void, helper_save
, (void))
43 DEF_HELPER(void, helper_restore
, (void))
44 DEF_HELPER(void, helper_flush
, (target_ulong addr
))
45 DEF_HELPER(target_ulong
, helper_udiv
, (target_ulong a
, target_ulong b
))
46 DEF_HELPER(target_ulong
, helper_sdiv
, (target_ulong a
, target_ulong b
))
47 DEF_HELPER(uint64_t, helper_pack64
, (target_ulong high
, target_ulong low
))
48 DEF_HELPER(void, helper_stdf
, (target_ulong addr
, int mem_idx
))
49 DEF_HELPER(void, helper_lddf
, (target_ulong addr
, int mem_idx
))
50 DEF_HELPER(void, helper_ldqf
, (target_ulong addr
, int mem_idx
))
51 DEF_HELPER(void, helper_stqf
, (target_ulong addr
, int mem_idx
))
52 #if !defined(CONFIG_USER_ONLY) || defined(TARGET_SPARC64)
53 DEF_HELPER(uint64_t, helper_ld_asi
, (target_ulong addr
, int asi
, int size
, \
55 DEF_HELPER(void, helper_st_asi
, (target_ulong addr
, uint64_t val
, int asi
, \
58 DEF_HELPER(void, helper_ldfsr
, (uint32_t new_fsr
))
59 DEF_HELPER(void, helper_check_ieee_exceptions
, (void))
60 DEF_HELPER(void, helper_clear_float_exceptions
, (void))
61 DEF_HELPER(float32
, helper_fabss
, (float32 src
))
62 DEF_HELPER(float32
, helper_fsqrts
, (float32 src
))
63 DEF_HELPER(void, helper_fsqrtd
, (void))
64 DEF_HELPER(void, helper_fcmps
, (float32 src1
, float32 src2
))
65 DEF_HELPER(void, helper_fcmpd
, (void))
66 DEF_HELPER(void, helper_fcmpes
, (float32 src1
, float32 src2
))
67 DEF_HELPER(void, helper_fcmped
, (void))
68 DEF_HELPER(void, helper_fsqrtq
, (void))
69 DEF_HELPER(void, helper_fcmpq
, (void))
70 DEF_HELPER(void, helper_fcmpeq
, (void))
72 DEF_HELPER(void, helper_ldxfsr
, (uint64_t new_fsr
))
73 DEF_HELPER(void, helper_fabsd
, (void))
74 DEF_HELPER(void, helper_fcmps_fcc1
, (float32 src1
, float32 src2
))
75 DEF_HELPER(void, helper_fcmps_fcc2
, (float32 src1
, float32 src2
))
76 DEF_HELPER(void, helper_fcmps_fcc3
, (float32 src1
, float32 src2
))
77 DEF_HELPER(void, helper_fcmpd_fcc1
, (void))
78 DEF_HELPER(void, helper_fcmpd_fcc2
, (void))
79 DEF_HELPER(void, helper_fcmpd_fcc3
, (void))
80 DEF_HELPER(void, helper_fcmpes_fcc1
, (float32 src1
, float32 src2
))
81 DEF_HELPER(void, helper_fcmpes_fcc2
, (float32 src1
, float32 src2
))
82 DEF_HELPER(void, helper_fcmpes_fcc3
, (float32 src1
, float32 src2
))
83 DEF_HELPER(void, helper_fcmped_fcc1
, (void))
84 DEF_HELPER(void, helper_fcmped_fcc2
, (void))
85 DEF_HELPER(void, helper_fcmped_fcc3
, (void))
86 DEF_HELPER(void, helper_fabsq
, (void))
87 DEF_HELPER(void, helper_fcmpq_fcc1
, (void))
88 DEF_HELPER(void, helper_fcmpq_fcc2
, (void))
89 DEF_HELPER(void, helper_fcmpq_fcc3
, (void))
90 DEF_HELPER(void, helper_fcmpeq_fcc1
, (void))
91 DEF_HELPER(void, helper_fcmpeq_fcc2
, (void))
92 DEF_HELPER(void, helper_fcmpeq_fcc3
, (void))
94 DEF_HELPER(void, raise_exception
, (int tt
))
95 #define F_HELPER_0_0(name) DEF_HELPER(void, helper_f ## name, (void))
96 #define F_HELPER_SDQ_0_0(name) \
97 F_HELPER_0_0(name ## s); \
98 F_HELPER_0_0(name ## d); \
99 F_HELPER_0_0(name ## q)
100 #define F_HELPER_DQ_0_0(name) \
101 F_HELPER_0_0(name ## d); \
102 F_HELPER_0_0(name ## q)
104 F_HELPER_DQ_0_0(add
);
105 F_HELPER_DQ_0_0(sub
);
106 F_HELPER_DQ_0_0(mul
);
107 F_HELPER_DQ_0_0(div
);
109 DEF_HELPER(float32
, helper_fadds
, (float32 src1
, float32 src2
))
110 DEF_HELPER(float32
, helper_fsubs
, (float32 src1
, float32 src2
))
111 DEF_HELPER(float32
, helper_fmuls
, (float32 src1
, float32 src2
))
112 DEF_HELPER(float32
, helper_fdivs
, (float32 src1
, float32 src2
))
117 DEF_HELPER(float32
, helper_fnegs
, (float32 src
))
118 F_HELPER_DQ_0_0(ito
);
120 DEF_HELPER(float32
, helper_fitos
, (int32_t src
))
122 #ifdef TARGET_SPARC64
123 DEF_HELPER(void, helper_fnegd
, (void))
124 DEF_HELPER(void, helper_fnegq
, (void))
125 F_HELPER_SDQ_0_0(xto
);
133 DEF_HELPER(int32_t, helper_fstoi
, (float32 src
))
136 #ifdef TARGET_SPARC64
140 F_HELPER_0_0(aligndata
);
141 DEF_HELPER(void, helper_movl_FT0_0
, (void))
142 DEF_HELPER(void, helper_movl_DT0_0
, (void))
143 DEF_HELPER(void, helper_movl_FT0_1
, (void))
144 DEF_HELPER(void, helper_movl_DT0_1
, (void))
157 F_HELPER_0_0(ornots
);
158 F_HELPER_0_0(andnot
);
159 F_HELPER_0_0(andnots
);
164 F_HELPER_0_0(pmerge
);
165 F_HELPER_0_0(mul8x16
);
166 F_HELPER_0_0(mul8x16al
);
167 F_HELPER_0_0(mul8x16au
);
168 F_HELPER_0_0(mul8sux16
);
169 F_HELPER_0_0(mul8ulx16
);
170 F_HELPER_0_0(muld8sux16
);
171 F_HELPER_0_0(muld8ulx16
);
172 F_HELPER_0_0(expand
);
173 #define VIS_HELPER(name) \
174 F_HELPER_0_0(name##16); \
175 F_HELPER_0_0(name##16s); \
176 F_HELPER_0_0(name##32); \
177 F_HELPER_0_0(name##32s)
181 #define VIS_CMPHELPER(name) \
182 F_HELPER_0_0(name##16); \
183 F_HELPER_0_0(name##32)
184 VIS_CMPHELPER(cmpgt
);
185 VIS_CMPHELPER(cmpeq
);
186 VIS_CMPHELPER(cmple
);
187 VIS_CMPHELPER(cmpne
);
190 #undef F_HELPER_DQ_0_0