kvm: Improve upgrade notes when facing unsupported kernels
[qemu] / target-sparc / helper.h
index 39dac74..4002b9e 100644 (file)
-#define TCG_HELPER_PROTO
+#include "def-helper.h"
 
 #ifndef TARGET_SPARC64
-void TCG_HELPER_PROTO helper_rett(void);
-void TCG_HELPER_PROTO helper_wrpsr(target_ulong new_psr);
-target_ulong TCG_HELPER_PROTO helper_rdpsr(void);
+DEF_HELPER_0(rett, void)
+DEF_HELPER_1(wrpsr, void, tl)
+DEF_HELPER_0(rdpsr, tl)
 #else
-void TCG_HELPER_PROTO helper_wrpstate(target_ulong new_state);
-void TCG_HELPER_PROTO helper_done(void);
-void TCG_HELPER_PROTO helper_retry(void);
-void TCG_HELPER_PROTO helper_flushw(void);
-void TCG_HELPER_PROTO helper_saved(void);
-void TCG_HELPER_PROTO helper_restored(void);
-target_ulong TCG_HELPER_PROTO helper_rdccr(void);
-void TCG_HELPER_PROTO helper_wrccr(target_ulong new_ccr);
-target_ulong TCG_HELPER_PROTO helper_rdcwp(void);
-void TCG_HELPER_PROTO helper_wrcwp(target_ulong new_cwp);
-target_ulong TCG_HELPER_PROTO helper_array8(target_ulong pixel_addr,
-                                            target_ulong cubesize);
-target_ulong TCG_HELPER_PROTO helper_alignaddr(target_ulong addr,
-                                               target_ulong offset);
-target_ulong TCG_HELPER_PROTO helper_popc(target_ulong val);
-void TCG_HELPER_PROTO helper_ldf_asi(target_ulong addr, int asi, int size,
-                                     int rd);
-void TCG_HELPER_PROTO helper_stf_asi(target_ulong addr, int asi, int size,
-                                     int rd);
-target_ulong TCG_HELPER_PROTO
-helper_cas_asi(target_ulong addr, target_ulong val1,
-               target_ulong val2, uint32_t asi);
-target_ulong  TCG_HELPER_PROTO
-helper_casx_asi(target_ulong addr, target_ulong val1,
-                target_ulong val2, uint32_t asi);
-void TCG_HELPER_PROTO helper_tick_set_count(void *opaque, uint64_t count);
-uint64_t TCG_HELPER_PROTO helper_tick_get_count(void *opaque);
-void TCG_HELPER_PROTO helper_tick_set_limit(void *opaque, uint64_t limit);
+DEF_HELPER_1(wrpstate, void, tl)
+DEF_HELPER_0(done, void)
+DEF_HELPER_0(retry, void)
+DEF_HELPER_0(flushw, void)
+DEF_HELPER_0(saved, void)
+DEF_HELPER_0(restored, void)
+DEF_HELPER_0(rdccr, tl)
+DEF_HELPER_1(wrccr, void, tl)
+DEF_HELPER_0(rdcwp, tl)
+DEF_HELPER_1(wrcwp, void, tl)
+DEF_HELPER_2(array8, tl, tl, tl)
+DEF_HELPER_2(alignaddr, tl, tl, tl)
+DEF_HELPER_1(popc, tl, tl)
+DEF_HELPER_3(ldda_asi, void, tl, int, int)
+DEF_HELPER_4(ldf_asi, void, tl, int, int, int)
+DEF_HELPER_4(stf_asi, void, tl, int, int, int)
+DEF_HELPER_4(cas_asi, tl, tl, tl, tl, i32)
+DEF_HELPER_4(casx_asi, tl, tl, tl, tl, i32)
+DEF_HELPER_1(set_softint, void, i64)
+DEF_HELPER_1(clear_softint, void, i64)
+DEF_HELPER_1(write_softint, void, i64)
+DEF_HELPER_2(tick_set_count, void, ptr, i64)
+DEF_HELPER_1(tick_get_count, i64, ptr)
+DEF_HELPER_2(tick_set_limit, void, ptr, i64)
 #endif
-void TCG_HELPER_PROTO helper_trap(target_ulong nb_trap);
-void TCG_HELPER_PROTO helper_trapcc(target_ulong nb_trap,
-                                    target_ulong do_trap);
-void TCG_HELPER_PROTO helper_check_align(target_ulong addr, uint32_t align);
-void TCG_HELPER_PROTO helper_debug(void);
-void TCG_HELPER_PROTO helper_save(void);
-void TCG_HELPER_PROTO helper_restore(void);
-void TCG_HELPER_PROTO helper_flush(target_ulong addr);
-target_ulong TCG_HELPER_PROTO helper_udiv(target_ulong a, target_ulong b);
-target_ulong TCG_HELPER_PROTO helper_sdiv(target_ulong a, target_ulong b);
-uint64_t TCG_HELPER_PROTO helper_pack64(target_ulong high, target_ulong low);
-uint64_t TCG_HELPER_PROTO helper_ld_asi(target_ulong addr, int asi,
-                                        int size, int sign);
-void TCG_HELPER_PROTO helper_st_asi(target_ulong addr, uint64_t val, int asi,
-                                    int size);
-void TCG_HELPER_PROTO helper_ldfsr(void);
-void TCG_HELPER_PROTO helper_stfsr(void);
-void TCG_HELPER_PROTO helper_check_ieee_exceptions(void);
-void TCG_HELPER_PROTO helper_clear_float_exceptions(void);
-void TCG_HELPER_PROTO helper_fabss(void);
-void TCG_HELPER_PROTO helper_fsqrts(void);
-void TCG_HELPER_PROTO helper_fsqrtd(void);
-void TCG_HELPER_PROTO helper_fcmps(void);
-void TCG_HELPER_PROTO helper_fcmpd(void);
-void TCG_HELPER_PROTO helper_fcmpes(void);
-void TCG_HELPER_PROTO helper_fcmped(void);
-#if defined(CONFIG_USER_ONLY)
-void TCG_HELPER_PROTO helper_fsqrtq(void);
-void TCG_HELPER_PROTO helper_fcmpq(void);
-void TCG_HELPER_PROTO helper_fcmpeq(void);
+DEF_HELPER_2(check_align, void, tl, i32)
+DEF_HELPER_0(debug, void)
+DEF_HELPER_0(save, void)
+DEF_HELPER_0(restore, void)
+DEF_HELPER_1(flush, void, tl)
+DEF_HELPER_2(udiv, tl, tl, tl)
+DEF_HELPER_2(sdiv, tl, tl, tl)
+DEF_HELPER_2(stdf, void, tl, int)
+DEF_HELPER_2(lddf, void, tl, int)
+DEF_HELPER_2(ldqf, void, tl, int)
+DEF_HELPER_2(stqf, void, tl, int)
+#if !defined(CONFIG_USER_ONLY) || defined(TARGET_SPARC64)
+DEF_HELPER_4(ld_asi, i64, tl, int, int, int)
+DEF_HELPER_4(st_asi, void, tl, i64, int, int)
 #endif
+DEF_HELPER_1(ldfsr, void, i32)
+DEF_HELPER_0(check_ieee_exceptions, void)
+DEF_HELPER_0(clear_float_exceptions, void)
+DEF_HELPER_1(fabss, f32, f32)
+DEF_HELPER_1(fsqrts, f32, f32)
+DEF_HELPER_0(fsqrtd, void)
+DEF_HELPER_2(fcmps, void, f32, f32)
+DEF_HELPER_0(fcmpd, void)
+DEF_HELPER_2(fcmpes, void, f32, f32)
+DEF_HELPER_0(fcmped, void)
+DEF_HELPER_0(fsqrtq, void)
+DEF_HELPER_0(fcmpq, void)
+DEF_HELPER_0(fcmpeq, void)
 #ifdef TARGET_SPARC64
-void TCG_HELPER_PROTO helper_fabsd(void);
-void TCG_HELPER_PROTO helper_fcmps_fcc1(void);
-void TCG_HELPER_PROTO helper_fcmpd_fcc1(void);
-void TCG_HELPER_PROTO helper_fcmps_fcc2(void);
-void TCG_HELPER_PROTO helper_fcmpd_fcc2(void);
-void TCG_HELPER_PROTO helper_fcmps_fcc3(void);
-void TCG_HELPER_PROTO helper_fcmpd_fcc3(void);
-void TCG_HELPER_PROTO helper_fcmpes_fcc1(void);
-void TCG_HELPER_PROTO helper_fcmped_fcc1(void);
-void TCG_HELPER_PROTO helper_fcmpes_fcc2(void);
-void TCG_HELPER_PROTO helper_fcmped_fcc2(void);
-void TCG_HELPER_PROTO helper_fcmpes_fcc3(void);
-void TCG_HELPER_PROTO helper_fcmped_fcc3(void);
-#if defined(CONFIG_USER_ONLY)
-void TCG_HELPER_PROTO helper_fabsq(void);
-void TCG_HELPER_PROTO helper_fcmpq_fcc1(void);
-void TCG_HELPER_PROTO helper_fcmpq_fcc2(void);
-void TCG_HELPER_PROTO helper_fcmpq_fcc3(void);
-void TCG_HELPER_PROTO helper_fcmpeq_fcc1(void);
-void TCG_HELPER_PROTO helper_fcmpeq_fcc2(void);
-void TCG_HELPER_PROTO helper_fcmpeq_fcc3(void);
+DEF_HELPER_1(ldxfsr, void, i64)
+DEF_HELPER_0(fabsd, void)
+DEF_HELPER_2(fcmps_fcc1, void, f32, f32)
+DEF_HELPER_2(fcmps_fcc2, void, f32, f32)
+DEF_HELPER_2(fcmps_fcc3, void, f32, f32)
+DEF_HELPER_0(fcmpd_fcc1, void)
+DEF_HELPER_0(fcmpd_fcc2, void)
+DEF_HELPER_0(fcmpd_fcc3, void)
+DEF_HELPER_2(fcmpes_fcc1, void, f32, f32)
+DEF_HELPER_2(fcmpes_fcc2, void, f32, f32)
+DEF_HELPER_2(fcmpes_fcc3, void, f32, f32)
+DEF_HELPER_0(fcmped_fcc1, void)
+DEF_HELPER_0(fcmped_fcc2, void)
+DEF_HELPER_0(fcmped_fcc3, void)
+DEF_HELPER_0(fabsq, void)
+DEF_HELPER_0(fcmpq_fcc1, void)
+DEF_HELPER_0(fcmpq_fcc2, void)
+DEF_HELPER_0(fcmpq_fcc3, void)
+DEF_HELPER_0(fcmpeq_fcc1, void)
+DEF_HELPER_0(fcmpeq_fcc2, void)
+DEF_HELPER_0(fcmpeq_fcc3, void)
 #endif
-#endif
-void TCG_HELPER_PROTO raise_exception(int tt);
-#define F_HELPER_0_0(name) void TCG_HELPER_PROTO helper_f ## name(void)
-#if defined(CONFIG_USER_ONLY)
-#define F_HELPER_SDQ_0_0(name)                  \
-    F_HELPER_0_0(name ## s);                    \
+DEF_HELPER_1(raise_exception, void, int)
+#define F_HELPER_0_0(name) DEF_HELPER_0(f ## name, void)
+#define F_HELPER_DQ_0_0(name)                   \
     F_HELPER_0_0(name ## d);                    \
     F_HELPER_0_0(name ## q)
-#else
-#define F_HELPER_SDQ_0_0(name)                  \
-    F_HELPER_0_0(name ## s);                    \
-    F_HELPER_0_0(name ## d);
-#endif
 
-F_HELPER_SDQ_0_0(add);
-F_HELPER_SDQ_0_0(sub);
-F_HELPER_SDQ_0_0(mul);
-F_HELPER_SDQ_0_0(div);
+F_HELPER_DQ_0_0(add);
+F_HELPER_DQ_0_0(sub);
+F_HELPER_DQ_0_0(mul);
+F_HELPER_DQ_0_0(div);
 
-F_HELPER_0_0(smuld);
+DEF_HELPER_2(fadds, f32, f32, f32)
+DEF_HELPER_2(fsubs, f32, f32, f32)
+DEF_HELPER_2(fmuls, f32, f32, f32)
+DEF_HELPER_2(fdivs, f32, f32, f32)
+
+DEF_HELPER_2(fsmuld, void, f32, f32)
 F_HELPER_0_0(dmulq);
 
-F_HELPER_SDQ_0_0(neg);
-F_HELPER_SDQ_0_0(ito);
+DEF_HELPER_1(fnegs, f32, f32)
+DEF_HELPER_1(fitod, void, s32)
+DEF_HELPER_1(fitoq, void, s32)
+
+DEF_HELPER_1(fitos, f32, s32)
+
 #ifdef TARGET_SPARC64
-F_HELPER_SDQ_0_0(xto);
+DEF_HELPER_0(fnegd, void)
+DEF_HELPER_0(fnegq, void)
+DEF_HELPER_0(fxtos, i32)
+F_HELPER_DQ_0_0(xto);
 #endif
-F_HELPER_0_0(dtos);
-F_HELPER_0_0(stod);
-#if defined(CONFIG_USER_ONLY)
-F_HELPER_0_0(qtos);
-F_HELPER_0_0(stoq);
+DEF_HELPER_0(fdtos, f32)
+DEF_HELPER_1(fstod, void, f32)
+DEF_HELPER_0(fqtos, f32)
+DEF_HELPER_1(fstoq, void, f32)
 F_HELPER_0_0(qtod);
 F_HELPER_0_0(dtoq);
-#endif
-F_HELPER_0_0(stoi);
-F_HELPER_0_0(dtoi);
-#if defined(CONFIG_USER_ONLY)
-F_HELPER_0_0(qtoi);
-#endif
+DEF_HELPER_1(fstoi, s32, f32)
+DEF_HELPER_0(fdtoi, s32)
+DEF_HELPER_0(fqtoi, s32)
 #ifdef TARGET_SPARC64
-F_HELPER_0_0(stox);
+DEF_HELPER_1(fstox, void, i32)
 F_HELPER_0_0(dtox);
-#if defined(CONFIG_USER_ONLY)
 F_HELPER_0_0(qtox);
-#endif
 F_HELPER_0_0(aligndata);
-void TCG_HELPER_PROTO helper_movl_FT0_0(void);
-void TCG_HELPER_PROTO helper_movl_DT0_0(void);
-void TCG_HELPER_PROTO helper_movl_FT0_1(void);
-void TCG_HELPER_PROTO helper_movl_DT0_1(void);
-F_HELPER_0_0(not);
-F_HELPER_0_0(nots);
-F_HELPER_0_0(nor);
-F_HELPER_0_0(nors);
-F_HELPER_0_0(or);
-F_HELPER_0_0(ors);
-F_HELPER_0_0(xor);
-F_HELPER_0_0(xors);
-F_HELPER_0_0(and);
-F_HELPER_0_0(ands);
-F_HELPER_0_0(ornot);
-F_HELPER_0_0(ornots);
-F_HELPER_0_0(andnot);
-F_HELPER_0_0(andnots);
-F_HELPER_0_0(nand);
-F_HELPER_0_0(nands);
-F_HELPER_0_0(xnor);
-F_HELPER_0_0(xnors);
+
 F_HELPER_0_0(pmerge);
 F_HELPER_0_0(mul8x16);
 F_HELPER_0_0(mul8x16al);
@@ -168,9 +138,9 @@ F_HELPER_0_0(muld8ulx16);
 F_HELPER_0_0(expand);
 #define VIS_HELPER(name)                                 \
     F_HELPER_0_0(name##16);                              \
-    F_HELPER_0_0(name##16s);                             \
+    DEF_HELPER_2(f ## name ## 16s, i32, i32, i32) \
     F_HELPER_0_0(name##32);                              \
-    F_HELPER_0_0(name##32s)
+    DEF_HELPER_2(f ## name ## 32s, i32, i32, i32)
 
 VIS_HELPER(padd);
 VIS_HELPER(psub);
@@ -183,6 +153,10 @@ VIS_CMPHELPER(cmple);
 VIS_CMPHELPER(cmpne);
 #endif
 #undef F_HELPER_0_0
-#undef F_HELPER_SDQ_0_0
+#undef F_HELPER_DQ_0_0
 #undef VIS_HELPER
 #undef VIS_CMPHELPER
+DEF_HELPER_0(compute_psr, void);
+DEF_HELPER_0(compute_C_icc, i32);
+
+#include "def-helper.h"