pbrook | a7812ae | 2008-11-17 14:43:54 +0000 | [diff] [blame] | 1 | #include "def-helper.h" |
aurel32 | f10dc08 | 2008-08-28 21:01:45 +0000 | [diff] [blame] | 2 | |
Blue Swirl | e5f17ac | 2012-05-30 04:23:23 +0000 | [diff] [blame] | 3 | DEF_HELPER_3(raise_exception_err, void, env, i32, i32) |
| 4 | DEF_HELPER_2(raise_exception, void, env, i32) |
| 5 | DEF_HELPER_4(tw, void, env, tl, tl, i32) |
aurel32 | cab3bee | 2008-11-24 11:28:19 +0000 | [diff] [blame] | 6 | #if defined(TARGET_PPC64) |
Blue Swirl | e5f17ac | 2012-05-30 04:23:23 +0000 | [diff] [blame] | 7 | DEF_HELPER_4(td, void, env, tl, tl, i32) |
aurel32 | cab3bee | 2008-11-24 11:28:19 +0000 | [diff] [blame] | 8 | #endif |
aurel32 | d72a19f | 2008-11-30 16:24:55 +0000 | [diff] [blame] | 9 | #if !defined(CONFIG_USER_ONLY) |
Blue Swirl | e5f17ac | 2012-05-30 04:23:23 +0000 | [diff] [blame] | 10 | DEF_HELPER_2(store_msr, void, env, tl) |
| 11 | DEF_HELPER_1(rfi, void, env) |
| 12 | DEF_HELPER_1(rfsvc, void, env) |
| 13 | DEF_HELPER_1(40x_rfci, void, env) |
| 14 | DEF_HELPER_1(rfci, void, env) |
| 15 | DEF_HELPER_1(rfdi, void, env) |
| 16 | DEF_HELPER_1(rfmci, void, env) |
aurel32 | d72a19f | 2008-11-30 16:24:55 +0000 | [diff] [blame] | 17 | #if defined(TARGET_PPC64) |
Blue Swirl | e5f17ac | 2012-05-30 04:23:23 +0000 | [diff] [blame] | 18 | DEF_HELPER_1(rfid, void, env) |
| 19 | DEF_HELPER_1(hrfid, void, env) |
aurel32 | d72a19f | 2008-11-30 16:24:55 +0000 | [diff] [blame] | 20 | #endif |
| 21 | #endif |
aurel32 | 64adab3 | 2008-11-22 10:09:17 +0000 | [diff] [blame] | 22 | |
Blue Swirl | 2f5a189 | 2012-05-30 04:23:40 +0000 | [diff] [blame] | 23 | DEF_HELPER_3(lmw, void, env, tl, i32) |
| 24 | DEF_HELPER_3(stmw, void, env, tl, i32) |
| 25 | DEF_HELPER_4(lsw, void, env, tl, i32, i32) |
| 26 | DEF_HELPER_5(lswx, void, env, tl, i32, i32, i32) |
| 27 | DEF_HELPER_4(stsw, void, env, tl, i32, i32) |
| 28 | DEF_HELPER_2(dcbz, void, env, tl) |
| 29 | DEF_HELPER_2(dcbz_970, void, env, tl) |
| 30 | DEF_HELPER_2(icbi, void, env, tl) |
| 31 | DEF_HELPER_5(lscbx, tl, env, tl, i32, i32, i32) |
aurel32 | bdb4b68 | 2008-11-30 16:24:30 +0000 | [diff] [blame] | 32 | |
aurel32 | 7463740 | 2008-11-01 00:54:12 +0000 | [diff] [blame] | 33 | #if defined(TARGET_PPC64) |
aurel32 | 69a218f | 2009-04-16 12:57:58 +0000 | [diff] [blame] | 34 | DEF_HELPER_FLAGS_2(mulhd, TCG_CALL_CONST | TCG_CALL_PURE, i64, i64, i64) |
| 35 | DEF_HELPER_FLAGS_2(mulhdu, TCG_CALL_CONST | TCG_CALL_PURE, i64, i64, i64) |
Blue Swirl | d15f74f | 2012-05-30 04:23:29 +0000 | [diff] [blame] | 36 | DEF_HELPER_3(mulldo, i64, env, i64, i64) |
aurel32 | 7463740 | 2008-11-01 00:54:12 +0000 | [diff] [blame] | 37 | #endif |
| 38 | |
aurel32 | 69a218f | 2009-04-16 12:57:58 +0000 | [diff] [blame] | 39 | DEF_HELPER_FLAGS_1(cntlzw, TCG_CALL_CONST | TCG_CALL_PURE, tl, tl) |
| 40 | DEF_HELPER_FLAGS_1(popcntb, TCG_CALL_CONST | TCG_CALL_PURE, tl, tl) |
David Gibson | eaabeef | 2011-04-01 15:15:13 +1100 | [diff] [blame] | 41 | DEF_HELPER_FLAGS_1(popcntw, TCG_CALL_CONST | TCG_CALL_PURE, tl, tl) |
Blue Swirl | d15f74f | 2012-05-30 04:23:29 +0000 | [diff] [blame] | 42 | DEF_HELPER_3(sraw, tl, env, tl, tl) |
aurel32 | 26d6736 | 2008-10-21 11:31:27 +0000 | [diff] [blame] | 43 | #if defined(TARGET_PPC64) |
aurel32 | 69a218f | 2009-04-16 12:57:58 +0000 | [diff] [blame] | 44 | DEF_HELPER_FLAGS_1(cntlzd, TCG_CALL_CONST | TCG_CALL_PURE, tl, tl) |
David Gibson | eaabeef | 2011-04-01 15:15:13 +1100 | [diff] [blame] | 45 | DEF_HELPER_FLAGS_1(popcntd, TCG_CALL_CONST | TCG_CALL_PURE, tl, tl) |
Blue Swirl | d15f74f | 2012-05-30 04:23:29 +0000 | [diff] [blame] | 46 | DEF_HELPER_3(srad, tl, env, tl, tl) |
aurel32 | 26d6736 | 2008-10-21 11:31:27 +0000 | [diff] [blame] | 47 | #endif |
| 48 | |
aurel32 | 69a218f | 2009-04-16 12:57:58 +0000 | [diff] [blame] | 49 | DEF_HELPER_FLAGS_1(cntlsw32, TCG_CALL_CONST | TCG_CALL_PURE, i32, i32) |
| 50 | DEF_HELPER_FLAGS_1(cntlzw32, TCG_CALL_CONST | TCG_CALL_PURE, i32, i32) |
| 51 | DEF_HELPER_FLAGS_2(brinc, TCG_CALL_CONST | TCG_CALL_PURE, tl, tl, tl) |
pbrook | a7812ae | 2008-11-17 14:43:54 +0000 | [diff] [blame] | 52 | |
Blue Swirl | 8e70394 | 2012-05-30 04:23:27 +0000 | [diff] [blame] | 53 | DEF_HELPER_1(float_check_status, void, env) |
| 54 | DEF_HELPER_1(reset_fpstatus, void, env) |
| 55 | DEF_HELPER_3(compute_fprf, i32, env, i64, i32) |
| 56 | DEF_HELPER_3(store_fpscr, void, env, i64, i32) |
| 57 | DEF_HELPER_2(fpscr_clrbit, void, env, i32) |
| 58 | DEF_HELPER_2(fpscr_setbit, void, env, i32) |
| 59 | DEF_HELPER_2(float64_to_float32, i32, env, i64) |
| 60 | DEF_HELPER_2(float32_to_float64, i64, env, i32) |
aurel32 | af12906 | 2008-11-19 16:10:23 +0000 | [diff] [blame] | 61 | |
Blue Swirl | 8e70394 | 2012-05-30 04:23:27 +0000 | [diff] [blame] | 62 | DEF_HELPER_4(fcmpo, void, env, i64, i64, i32) |
| 63 | DEF_HELPER_4(fcmpu, void, env, i64, i64, i32) |
aurel32 | d72a19f | 2008-11-30 16:24:55 +0000 | [diff] [blame] | 64 | |
Blue Swirl | 8e70394 | 2012-05-30 04:23:27 +0000 | [diff] [blame] | 65 | DEF_HELPER_2(fctiw, i64, env, i64) |
| 66 | DEF_HELPER_2(fctiwz, i64, env, i64) |
aurel32 | af12906 | 2008-11-19 16:10:23 +0000 | [diff] [blame] | 67 | #if defined(TARGET_PPC64) |
Blue Swirl | 8e70394 | 2012-05-30 04:23:27 +0000 | [diff] [blame] | 68 | DEF_HELPER_2(fcfid, i64, env, i64) |
| 69 | DEF_HELPER_2(fctid, i64, env, i64) |
| 70 | DEF_HELPER_2(fctidz, i64, env, i64) |
aurel32 | af12906 | 2008-11-19 16:10:23 +0000 | [diff] [blame] | 71 | #endif |
Blue Swirl | 8e70394 | 2012-05-30 04:23:27 +0000 | [diff] [blame] | 72 | DEF_HELPER_2(frsp, i64, env, i64) |
| 73 | DEF_HELPER_2(frin, i64, env, i64) |
| 74 | DEF_HELPER_2(friz, i64, env, i64) |
| 75 | DEF_HELPER_2(frip, i64, env, i64) |
| 76 | DEF_HELPER_2(frim, i64, env, i64) |
aurel32 | af12906 | 2008-11-19 16:10:23 +0000 | [diff] [blame] | 77 | |
Blue Swirl | 8e70394 | 2012-05-30 04:23:27 +0000 | [diff] [blame] | 78 | DEF_HELPER_3(fadd, i64, env, i64, i64) |
| 79 | DEF_HELPER_3(fsub, i64, env, i64, i64) |
| 80 | DEF_HELPER_3(fmul, i64, env, i64, i64) |
| 81 | DEF_HELPER_3(fdiv, i64, env, i64, i64) |
| 82 | DEF_HELPER_4(fmadd, i64, env, i64, i64, i64) |
| 83 | DEF_HELPER_4(fmsub, i64, env, i64, i64, i64) |
| 84 | DEF_HELPER_4(fnmadd, i64, env, i64, i64, i64) |
| 85 | DEF_HELPER_4(fnmsub, i64, env, i64, i64, i64) |
| 86 | DEF_HELPER_2(fabs, i64, env, i64) |
| 87 | DEF_HELPER_2(fnabs, i64, env, i64) |
| 88 | DEF_HELPER_2(fneg, i64, env, i64) |
| 89 | DEF_HELPER_2(fsqrt, i64, env, i64) |
| 90 | DEF_HELPER_2(fre, i64, env, i64) |
| 91 | DEF_HELPER_2(fres, i64, env, i64) |
| 92 | DEF_HELPER_2(frsqrte, i64, env, i64) |
| 93 | DEF_HELPER_4(fsel, i64, env, i64, i64, i64) |
aurel32 | af12906 | 2008-11-19 16:10:23 +0000 | [diff] [blame] | 94 | |
aurel32 | 7872c51 | 2009-01-03 13:31:40 +0000 | [diff] [blame] | 95 | #define dh_alias_avr ptr |
Anthony Liguori | c227f09 | 2009-10-01 16:12:16 -0500 | [diff] [blame] | 96 | #define dh_ctype_avr ppc_avr_t * |
Richard Henderson | 2bece2c | 2010-06-14 17:35:27 -0700 | [diff] [blame] | 97 | #define dh_is_signed_avr dh_is_signed_ptr |
aurel32 | 7872c51 | 2009-01-03 13:31:40 +0000 | [diff] [blame] | 98 | |
| 99 | DEF_HELPER_3(vaddubm, void, avr, avr, avr) |
| 100 | DEF_HELPER_3(vadduhm, void, avr, avr, avr) |
| 101 | DEF_HELPER_3(vadduwm, void, avr, avr, avr) |
| 102 | DEF_HELPER_3(vsububm, void, avr, avr, avr) |
| 103 | DEF_HELPER_3(vsubuhm, void, avr, avr, avr) |
| 104 | DEF_HELPER_3(vsubuwm, void, avr, avr, avr) |
aurel32 | fab3cbe | 2009-01-03 13:31:49 +0000 | [diff] [blame] | 105 | DEF_HELPER_3(vavgub, void, avr, avr, avr) |
| 106 | DEF_HELPER_3(vavguh, void, avr, avr, avr) |
| 107 | DEF_HELPER_3(vavguw, void, avr, avr, avr) |
| 108 | DEF_HELPER_3(vavgsb, void, avr, avr, avr) |
| 109 | DEF_HELPER_3(vavgsh, void, avr, avr, avr) |
| 110 | DEF_HELPER_3(vavgsw, void, avr, avr, avr) |
aurel32 | e403933 | 2009-01-03 13:31:58 +0000 | [diff] [blame] | 111 | DEF_HELPER_3(vminsb, void, avr, avr, avr) |
| 112 | DEF_HELPER_3(vminsh, void, avr, avr, avr) |
| 113 | DEF_HELPER_3(vminsw, void, avr, avr, avr) |
| 114 | DEF_HELPER_3(vmaxsb, void, avr, avr, avr) |
| 115 | DEF_HELPER_3(vmaxsh, void, avr, avr, avr) |
| 116 | DEF_HELPER_3(vmaxsw, void, avr, avr, avr) |
| 117 | DEF_HELPER_3(vminub, void, avr, avr, avr) |
| 118 | DEF_HELPER_3(vminuh, void, avr, avr, avr) |
| 119 | DEF_HELPER_3(vminuw, void, avr, avr, avr) |
| 120 | DEF_HELPER_3(vmaxub, void, avr, avr, avr) |
| 121 | DEF_HELPER_3(vmaxuh, void, avr, avr, avr) |
| 122 | DEF_HELPER_3(vmaxuw, void, avr, avr, avr) |
Blue Swirl | d15f74f | 2012-05-30 04:23:29 +0000 | [diff] [blame] | 123 | DEF_HELPER_4(vcmpequb, void, env, avr, avr, avr) |
| 124 | DEF_HELPER_4(vcmpequh, void, env, avr, avr, avr) |
| 125 | DEF_HELPER_4(vcmpequw, void, env, avr, avr, avr) |
| 126 | DEF_HELPER_4(vcmpgtub, void, env, avr, avr, avr) |
| 127 | DEF_HELPER_4(vcmpgtuh, void, env, avr, avr, avr) |
| 128 | DEF_HELPER_4(vcmpgtuw, void, env, avr, avr, avr) |
| 129 | DEF_HELPER_4(vcmpgtsb, void, env, avr, avr, avr) |
| 130 | DEF_HELPER_4(vcmpgtsh, void, env, avr, avr, avr) |
| 131 | DEF_HELPER_4(vcmpgtsw, void, env, avr, avr, avr) |
| 132 | DEF_HELPER_4(vcmpeqfp, void, env, avr, avr, avr) |
| 133 | DEF_HELPER_4(vcmpgefp, void, env, avr, avr, avr) |
| 134 | DEF_HELPER_4(vcmpgtfp, void, env, avr, avr, avr) |
| 135 | DEF_HELPER_4(vcmpbfp, void, env, avr, avr, avr) |
| 136 | DEF_HELPER_4(vcmpequb_dot, void, env, avr, avr, avr) |
| 137 | DEF_HELPER_4(vcmpequh_dot, void, env, avr, avr, avr) |
| 138 | DEF_HELPER_4(vcmpequw_dot, void, env, avr, avr, avr) |
| 139 | DEF_HELPER_4(vcmpgtub_dot, void, env, avr, avr, avr) |
| 140 | DEF_HELPER_4(vcmpgtuh_dot, void, env, avr, avr, avr) |
| 141 | DEF_HELPER_4(vcmpgtuw_dot, void, env, avr, avr, avr) |
| 142 | DEF_HELPER_4(vcmpgtsb_dot, void, env, avr, avr, avr) |
| 143 | DEF_HELPER_4(vcmpgtsh_dot, void, env, avr, avr, avr) |
| 144 | DEF_HELPER_4(vcmpgtsw_dot, void, env, avr, avr, avr) |
| 145 | DEF_HELPER_4(vcmpeqfp_dot, void, env, avr, avr, avr) |
| 146 | DEF_HELPER_4(vcmpgefp_dot, void, env, avr, avr, avr) |
| 147 | DEF_HELPER_4(vcmpgtfp_dot, void, env, avr, avr, avr) |
| 148 | DEF_HELPER_4(vcmpbfp_dot, void, env, avr, avr, avr) |
aurel32 | 3b43004 | 2009-01-04 22:08:38 +0000 | [diff] [blame] | 149 | DEF_HELPER_3(vmrglb, void, avr, avr, avr) |
| 150 | DEF_HELPER_3(vmrglh, void, avr, avr, avr) |
| 151 | DEF_HELPER_3(vmrglw, void, avr, avr, avr) |
| 152 | DEF_HELPER_3(vmrghb, void, avr, avr, avr) |
| 153 | DEF_HELPER_3(vmrghh, void, avr, avr, avr) |
| 154 | DEF_HELPER_3(vmrghw, void, avr, avr, avr) |
aurel32 | 2c27790 | 2009-01-04 22:08:48 +0000 | [diff] [blame] | 155 | DEF_HELPER_3(vmulesb, void, avr, avr, avr) |
| 156 | DEF_HELPER_3(vmulesh, void, avr, avr, avr) |
| 157 | DEF_HELPER_3(vmuleub, void, avr, avr, avr) |
| 158 | DEF_HELPER_3(vmuleuh, void, avr, avr, avr) |
| 159 | DEF_HELPER_3(vmulosb, void, avr, avr, avr) |
| 160 | DEF_HELPER_3(vmulosh, void, avr, avr, avr) |
| 161 | DEF_HELPER_3(vmuloub, void, avr, avr, avr) |
| 162 | DEF_HELPER_3(vmulouh, void, avr, avr, avr) |
aurel32 | 07ef34c | 2009-01-04 22:08:58 +0000 | [diff] [blame] | 163 | DEF_HELPER_3(vsrab, void, avr, avr, avr) |
| 164 | DEF_HELPER_3(vsrah, void, avr, avr, avr) |
| 165 | DEF_HELPER_3(vsraw, void, avr, avr, avr) |
| 166 | DEF_HELPER_3(vsrb, void, avr, avr, avr) |
| 167 | DEF_HELPER_3(vsrh, void, avr, avr, avr) |
| 168 | DEF_HELPER_3(vsrw, void, avr, avr, avr) |
aurel32 | d79f080 | 2009-01-04 22:09:08 +0000 | [diff] [blame] | 169 | DEF_HELPER_3(vslb, void, avr, avr, avr) |
| 170 | DEF_HELPER_3(vslh, void, avr, avr, avr) |
| 171 | DEF_HELPER_3(vslw, void, avr, avr, avr) |
aurel32 | 7b239be | 2009-01-04 22:09:19 +0000 | [diff] [blame] | 172 | DEF_HELPER_3(vslo, void, avr, avr, avr) |
| 173 | DEF_HELPER_3(vsro, void, avr, avr, avr) |
aurel32 | e343da7 | 2009-01-04 22:09:31 +0000 | [diff] [blame] | 174 | DEF_HELPER_3(vaddcuw, void, avr, avr, avr) |
| 175 | DEF_HELPER_3(vsubcuw, void, avr, avr, avr) |
aurel32 | bf8d8de | 2009-01-04 22:09:42 +0000 | [diff] [blame] | 176 | DEF_HELPER_2(lvsl, void, avr, tl); |
| 177 | DEF_HELPER_2(lvsr, void, avr, tl); |
Blue Swirl | d15f74f | 2012-05-30 04:23:29 +0000 | [diff] [blame] | 178 | DEF_HELPER_4(vaddsbs, void, env, avr, avr, avr) |
| 179 | DEF_HELPER_4(vaddshs, void, env, avr, avr, avr) |
| 180 | DEF_HELPER_4(vaddsws, void, env, avr, avr, avr) |
| 181 | DEF_HELPER_4(vsubsbs, void, env, avr, avr, avr) |
| 182 | DEF_HELPER_4(vsubshs, void, env, avr, avr, avr) |
| 183 | DEF_HELPER_4(vsubsws, void, env, avr, avr, avr) |
| 184 | DEF_HELPER_4(vaddubs, void, env, avr, avr, avr) |
| 185 | DEF_HELPER_4(vadduhs, void, env, avr, avr, avr) |
| 186 | DEF_HELPER_4(vadduws, void, env, avr, avr, avr) |
| 187 | DEF_HELPER_4(vsububs, void, env, avr, avr, avr) |
| 188 | DEF_HELPER_4(vsubuhs, void, env, avr, avr, avr) |
| 189 | DEF_HELPER_4(vsubuws, void, env, avr, avr, avr) |
aurel32 | 5e1d098 | 2009-01-04 22:09:52 +0000 | [diff] [blame] | 190 | DEF_HELPER_3(vrlb, void, avr, avr, avr) |
| 191 | DEF_HELPER_3(vrlh, void, avr, avr, avr) |
| 192 | DEF_HELPER_3(vrlw, void, avr, avr, avr) |
aurel32 | d9430ad | 2009-01-08 18:54:48 +0000 | [diff] [blame] | 193 | DEF_HELPER_3(vsl, void, avr, avr, avr) |
| 194 | DEF_HELPER_3(vsr, void, avr, avr, avr) |
aurel32 | cd633b1 | 2009-01-04 22:10:09 +0000 | [diff] [blame] | 195 | DEF_HELPER_4(vsldoi, void, avr, avr, avr, i32) |
aurel32 | c026766 | 2009-01-08 18:54:57 +0000 | [diff] [blame] | 196 | DEF_HELPER_2(vspltisb, void, avr, i32) |
| 197 | DEF_HELPER_2(vspltish, void, avr, i32) |
| 198 | DEF_HELPER_2(vspltisw, void, avr, i32) |
aurel32 | e4e6bee | 2009-01-04 22:10:49 +0000 | [diff] [blame] | 199 | DEF_HELPER_3(vspltb, void, avr, avr, i32) |
| 200 | DEF_HELPER_3(vsplth, void, avr, avr, i32) |
| 201 | DEF_HELPER_3(vspltw, void, avr, avr, i32) |
aurel32 | 79f85c3 | 2009-01-04 22:11:10 +0000 | [diff] [blame] | 202 | DEF_HELPER_2(vupkhpx, void, avr, avr) |
| 203 | DEF_HELPER_2(vupklpx, void, avr, avr) |
aurel32 | 6cf1c6e | 2009-01-04 22:11:20 +0000 | [diff] [blame] | 204 | DEF_HELPER_2(vupkhsb, void, avr, avr) |
| 205 | DEF_HELPER_2(vupkhsh, void, avr, avr) |
| 206 | DEF_HELPER_2(vupklsb, void, avr, avr) |
| 207 | DEF_HELPER_2(vupklsh, void, avr, avr) |
Blue Swirl | d15f74f | 2012-05-30 04:23:29 +0000 | [diff] [blame] | 208 | DEF_HELPER_5(vmsumubm, void, env, avr, avr, avr, avr) |
| 209 | DEF_HELPER_5(vmsummbm, void, env, avr, avr, avr, avr) |
| 210 | DEF_HELPER_5(vsel, void, env, avr, avr, avr, avr) |
| 211 | DEF_HELPER_5(vperm, void, env, avr, avr, avr, avr) |
| 212 | DEF_HELPER_4(vpkshss, void, env, avr, avr, avr) |
| 213 | DEF_HELPER_4(vpkshus, void, env, avr, avr, avr) |
| 214 | DEF_HELPER_4(vpkswss, void, env, avr, avr, avr) |
| 215 | DEF_HELPER_4(vpkswus, void, env, avr, avr, avr) |
| 216 | DEF_HELPER_4(vpkuhus, void, env, avr, avr, avr) |
| 217 | DEF_HELPER_4(vpkuwus, void, env, avr, avr, avr) |
| 218 | DEF_HELPER_4(vpkuhum, void, env, avr, avr, avr) |
| 219 | DEF_HELPER_4(vpkuwum, void, env, avr, avr, avr) |
aurel32 | 1dd9ffb | 2009-01-04 22:12:19 +0000 | [diff] [blame] | 220 | DEF_HELPER_3(vpkpx, void, avr, avr, avr) |
Blue Swirl | d15f74f | 2012-05-30 04:23:29 +0000 | [diff] [blame] | 221 | DEF_HELPER_5(vmhaddshs, void, env, avr, avr, avr, avr) |
| 222 | DEF_HELPER_5(vmhraddshs, void, env, avr, avr, avr, avr) |
| 223 | DEF_HELPER_5(vmsumuhm, void, env, avr, avr, avr, avr) |
| 224 | DEF_HELPER_5(vmsumuhs, void, env, avr, avr, avr, avr) |
| 225 | DEF_HELPER_5(vmsumshm, void, env, avr, avr, avr, avr) |
| 226 | DEF_HELPER_5(vmsumshs, void, env, avr, avr, avr, avr) |
aurel32 | bcd2ee2 | 2009-01-04 22:13:00 +0000 | [diff] [blame] | 227 | DEF_HELPER_4(vmladduhm, void, avr, avr, avr, avr) |
Blue Swirl | d15f74f | 2012-05-30 04:23:29 +0000 | [diff] [blame] | 228 | DEF_HELPER_2(mtvscr, void, env, avr); |
Blue Swirl | 2f5a189 | 2012-05-30 04:23:40 +0000 | [diff] [blame] | 229 | DEF_HELPER_3(lvebx, void, env, avr, tl) |
| 230 | DEF_HELPER_3(lvehx, void, env, avr, tl) |
| 231 | DEF_HELPER_3(lvewx, void, env, avr, tl) |
| 232 | DEF_HELPER_3(stvebx, void, env, avr, tl) |
| 233 | DEF_HELPER_3(stvehx, void, env, avr, tl) |
| 234 | DEF_HELPER_3(stvewx, void, env, avr, tl) |
Blue Swirl | d15f74f | 2012-05-30 04:23:29 +0000 | [diff] [blame] | 235 | DEF_HELPER_4(vsumsws, void, env, avr, avr, avr) |
| 236 | DEF_HELPER_4(vsum2sws, void, env, avr, avr, avr) |
| 237 | DEF_HELPER_4(vsum4sbs, void, env, avr, avr, avr) |
| 238 | DEF_HELPER_4(vsum4shs, void, env, avr, avr, avr) |
| 239 | DEF_HELPER_4(vsum4ubs, void, env, avr, avr, avr) |
| 240 | DEF_HELPER_4(vaddfp, void, env, avr, avr, avr) |
| 241 | DEF_HELPER_4(vsubfp, void, env, avr, avr, avr) |
| 242 | DEF_HELPER_4(vmaxfp, void, env, avr, avr, avr) |
| 243 | DEF_HELPER_4(vminfp, void, env, avr, avr, avr) |
| 244 | DEF_HELPER_3(vrefp, void, env, avr, avr) |
| 245 | DEF_HELPER_3(vrsqrtefp, void, env, avr, avr) |
| 246 | DEF_HELPER_5(vmaddfp, void, env, avr, avr, avr, avr) |
| 247 | DEF_HELPER_5(vnmsubfp, void, env, avr, avr, avr, avr) |
| 248 | DEF_HELPER_3(vexptefp, void, env, avr, avr) |
| 249 | DEF_HELPER_3(vlogefp, void, env, avr, avr) |
| 250 | DEF_HELPER_3(vrfim, void, env, avr, avr) |
| 251 | DEF_HELPER_3(vrfin, void, env, avr, avr) |
| 252 | DEF_HELPER_3(vrfip, void, env, avr, avr) |
| 253 | DEF_HELPER_3(vrfiz, void, env, avr, avr) |
| 254 | DEF_HELPER_4(vcfux, void, env, avr, avr, i32) |
| 255 | DEF_HELPER_4(vcfsx, void, env, avr, avr, i32) |
| 256 | DEF_HELPER_4(vctuxs, void, env, avr, avr, i32) |
| 257 | DEF_HELPER_4(vctsxs, void, env, avr, avr, i32) |
aurel32 | fab3cbe | 2009-01-03 13:31:49 +0000 | [diff] [blame] | 258 | |
Blue Swirl | 8e70394 | 2012-05-30 04:23:27 +0000 | [diff] [blame] | 259 | DEF_HELPER_2(efscfsi, i32, env, i32) |
| 260 | DEF_HELPER_2(efscfui, i32, env, i32) |
| 261 | DEF_HELPER_2(efscfuf, i32, env, i32) |
| 262 | DEF_HELPER_2(efscfsf, i32, env, i32) |
| 263 | DEF_HELPER_2(efsctsi, i32, env, i32) |
| 264 | DEF_HELPER_2(efsctui, i32, env, i32) |
| 265 | DEF_HELPER_2(efsctsiz, i32, env, i32) |
| 266 | DEF_HELPER_2(efsctuiz, i32, env, i32) |
| 267 | DEF_HELPER_2(efsctsf, i32, env, i32) |
| 268 | DEF_HELPER_2(efsctuf, i32, env, i32) |
| 269 | DEF_HELPER_2(evfscfsi, i64, env, i64) |
| 270 | DEF_HELPER_2(evfscfui, i64, env, i64) |
| 271 | DEF_HELPER_2(evfscfuf, i64, env, i64) |
| 272 | DEF_HELPER_2(evfscfsf, i64, env, i64) |
| 273 | DEF_HELPER_2(evfsctsi, i64, env, i64) |
| 274 | DEF_HELPER_2(evfsctui, i64, env, i64) |
| 275 | DEF_HELPER_2(evfsctsiz, i64, env, i64) |
| 276 | DEF_HELPER_2(evfsctuiz, i64, env, i64) |
| 277 | DEF_HELPER_2(evfsctsf, i64, env, i64) |
| 278 | DEF_HELPER_2(evfsctuf, i64, env, i64) |
| 279 | DEF_HELPER_3(efsadd, i32, env, i32, i32) |
| 280 | DEF_HELPER_3(efssub, i32, env, i32, i32) |
| 281 | DEF_HELPER_3(efsmul, i32, env, i32, i32) |
| 282 | DEF_HELPER_3(efsdiv, i32, env, i32, i32) |
| 283 | DEF_HELPER_3(evfsadd, i64, env, i64, i64) |
| 284 | DEF_HELPER_3(evfssub, i64, env, i64, i64) |
| 285 | DEF_HELPER_3(evfsmul, i64, env, i64, i64) |
| 286 | DEF_HELPER_3(evfsdiv, i64, env, i64, i64) |
| 287 | DEF_HELPER_3(efststlt, i32, env, i32, i32) |
| 288 | DEF_HELPER_3(efststgt, i32, env, i32, i32) |
| 289 | DEF_HELPER_3(efststeq, i32, env, i32, i32) |
| 290 | DEF_HELPER_3(efscmplt, i32, env, i32, i32) |
| 291 | DEF_HELPER_3(efscmpgt, i32, env, i32, i32) |
| 292 | DEF_HELPER_3(efscmpeq, i32, env, i32, i32) |
| 293 | DEF_HELPER_3(evfststlt, i32, env, i64, i64) |
| 294 | DEF_HELPER_3(evfststgt, i32, env, i64, i64) |
| 295 | DEF_HELPER_3(evfststeq, i32, env, i64, i64) |
| 296 | DEF_HELPER_3(evfscmplt, i32, env, i64, i64) |
| 297 | DEF_HELPER_3(evfscmpgt, i32, env, i64, i64) |
| 298 | DEF_HELPER_3(evfscmpeq, i32, env, i64, i64) |
| 299 | DEF_HELPER_2(efdcfsi, i64, env, i32) |
| 300 | DEF_HELPER_2(efdcfsid, i64, env, i64) |
| 301 | DEF_HELPER_2(efdcfui, i64, env, i32) |
| 302 | DEF_HELPER_2(efdcfuid, i64, env, i64) |
| 303 | DEF_HELPER_2(efdctsi, i32, env, i64) |
| 304 | DEF_HELPER_2(efdctui, i32, env, i64) |
| 305 | DEF_HELPER_2(efdctsiz, i32, env, i64) |
| 306 | DEF_HELPER_2(efdctsidz, i64, env, i64) |
| 307 | DEF_HELPER_2(efdctuiz, i32, env, i64) |
| 308 | DEF_HELPER_2(efdctuidz, i64, env, i64) |
| 309 | DEF_HELPER_2(efdcfsf, i64, env, i32) |
| 310 | DEF_HELPER_2(efdcfuf, i64, env, i32) |
| 311 | DEF_HELPER_2(efdctsf, i32, env, i64) |
| 312 | DEF_HELPER_2(efdctuf, i32, env, i64) |
| 313 | DEF_HELPER_2(efscfd, i32, env, i64) |
| 314 | DEF_HELPER_2(efdcfs, i64, env, i32) |
| 315 | DEF_HELPER_3(efdadd, i64, env, i64, i64) |
| 316 | DEF_HELPER_3(efdsub, i64, env, i64, i64) |
| 317 | DEF_HELPER_3(efdmul, i64, env, i64, i64) |
| 318 | DEF_HELPER_3(efddiv, i64, env, i64, i64) |
| 319 | DEF_HELPER_3(efdtstlt, i32, env, i64, i64) |
| 320 | DEF_HELPER_3(efdtstgt, i32, env, i64, i64) |
| 321 | DEF_HELPER_3(efdtsteq, i32, env, i64, i64) |
| 322 | DEF_HELPER_3(efdcmplt, i32, env, i64, i64) |
| 323 | DEF_HELPER_3(efdcmpgt, i32, env, i64, i64) |
| 324 | DEF_HELPER_3(efdcmpeq, i32, env, i64, i64) |
aurel32 | 1c97856 | 2008-11-23 10:54:04 +0000 | [diff] [blame] | 325 | |
aurel32 | 0f3955e | 2008-11-30 16:22:56 +0000 | [diff] [blame] | 326 | #if !defined(CONFIG_USER_ONLY) |
Blue Swirl | c6c7cf0 | 2012-05-30 04:23:31 +0000 | [diff] [blame] | 327 | DEF_HELPER_2(4xx_tlbre_hi, tl, env, tl) |
| 328 | DEF_HELPER_2(4xx_tlbre_lo, tl, env, tl) |
| 329 | DEF_HELPER_3(4xx_tlbwe_hi, void, env, tl, tl) |
| 330 | DEF_HELPER_3(4xx_tlbwe_lo, void, env, tl, tl) |
| 331 | DEF_HELPER_2(4xx_tlbsx, tl, env, tl) |
| 332 | DEF_HELPER_3(440_tlbre, tl, env, i32, tl) |
| 333 | DEF_HELPER_4(440_tlbwe, void, env, i32, tl, tl) |
| 334 | DEF_HELPER_2(440_tlbsx, tl, env, tl) |
| 335 | DEF_HELPER_1(booke206_tlbre, void, env) |
| 336 | DEF_HELPER_1(booke206_tlbwe, void, env) |
| 337 | DEF_HELPER_2(booke206_tlbsx, void, env, tl) |
| 338 | DEF_HELPER_2(booke206_tlbivax, void, env, tl) |
| 339 | DEF_HELPER_2(booke206_tlbilx0, void, env, tl) |
| 340 | DEF_HELPER_2(booke206_tlbilx1, void, env, tl) |
| 341 | DEF_HELPER_2(booke206_tlbilx3, void, env, tl) |
| 342 | DEF_HELPER_2(booke206_tlbflush, void, env, i32) |
| 343 | DEF_HELPER_3(booke_setpid, void, env, i32, tl) |
| 344 | DEF_HELPER_2(6xx_tlbd, void, env, tl) |
| 345 | DEF_HELPER_2(6xx_tlbi, void, env, tl) |
| 346 | DEF_HELPER_2(74xx_tlbd, void, env, tl) |
| 347 | DEF_HELPER_2(74xx_tlbi, void, env, tl) |
| 348 | DEF_HELPER_FLAGS_1(tlbia, TCG_CALL_CONST, void, env) |
| 349 | DEF_HELPER_FLAGS_2(tlbie, TCG_CALL_CONST, void, env, tl) |
aurel32 | 74d3779 | 2008-12-06 21:46:17 +0000 | [diff] [blame] | 350 | #if defined(TARGET_PPC64) |
Blue Swirl | c6c7cf0 | 2012-05-30 04:23:31 +0000 | [diff] [blame] | 351 | DEF_HELPER_FLAGS_3(store_slb, TCG_CALL_CONST, void, env, tl, tl) |
| 352 | DEF_HELPER_2(load_slb_esid, tl, env, tl) |
| 353 | DEF_HELPER_2(load_slb_vsid, tl, env, tl) |
| 354 | DEF_HELPER_FLAGS_1(slbia, TCG_CALL_CONST, void, env) |
| 355 | DEF_HELPER_FLAGS_2(slbie, TCG_CALL_CONST, void, env, tl) |
aurel32 | 74d3779 | 2008-12-06 21:46:17 +0000 | [diff] [blame] | 356 | #endif |
Blue Swirl | c6c7cf0 | 2012-05-30 04:23:31 +0000 | [diff] [blame] | 357 | DEF_HELPER_FLAGS_2(load_sr, TCG_CALL_CONST, tl, env, tl); |
| 358 | DEF_HELPER_FLAGS_3(store_sr, TCG_CALL_CONST, void, env, tl, tl) |
aurel32 | cf02a65 | 2008-11-30 16:23:35 +0000 | [diff] [blame] | 359 | |
aurel32 | 69a218f | 2009-04-16 12:57:58 +0000 | [diff] [blame] | 360 | DEF_HELPER_FLAGS_1(602_mfrom, TCG_CALL_CONST | TCG_CALL_PURE, tl, tl) |
Alexander Graf | d5d11a3 | 2012-01-31 03:19:23 +0100 | [diff] [blame] | 361 | DEF_HELPER_1(msgsnd, void, tl) |
Blue Swirl | e5f17ac | 2012-05-30 04:23:23 +0000 | [diff] [blame] | 362 | DEF_HELPER_2(msgclr, void, env, tl) |
aurel32 | 0f3955e | 2008-11-30 16:22:56 +0000 | [diff] [blame] | 363 | #endif |
| 364 | |
Blue Swirl | d15f74f | 2012-05-30 04:23:29 +0000 | [diff] [blame] | 365 | DEF_HELPER_4(dlmzb, tl, env, tl, tl, i32) |
Blue Swirl | d523dd0 | 2012-05-30 04:23:38 +0000 | [diff] [blame] | 366 | DEF_HELPER_FLAGS_2(clcs, TCG_CALL_CONST | TCG_CALL_PURE, tl, env, i32) |
aurel32 | 22e0e17 | 2008-12-06 12:19:14 +0000 | [diff] [blame] | 367 | #if !defined(CONFIG_USER_ONLY) |
Blue Swirl | c6c7cf0 | 2012-05-30 04:23:31 +0000 | [diff] [blame] | 368 | DEF_HELPER_2(rac, tl, env, tl) |
aurel32 | 22e0e17 | 2008-12-06 12:19:14 +0000 | [diff] [blame] | 369 | #endif |
Blue Swirl | d15f74f | 2012-05-30 04:23:29 +0000 | [diff] [blame] | 370 | DEF_HELPER_3(div, tl, env, tl, tl) |
| 371 | DEF_HELPER_3(divo, tl, env, tl, tl) |
| 372 | DEF_HELPER_3(divs, tl, env, tl, tl) |
| 373 | DEF_HELPER_3(divso, tl, env, tl, tl) |
aurel32 | ef0d51a | 2008-11-30 17:26:29 +0000 | [diff] [blame] | 374 | |
Blue Swirl | d0f1562 | 2012-05-30 04:23:36 +0000 | [diff] [blame] | 375 | DEF_HELPER_2(load_dcr, tl, env, tl); |
| 376 | DEF_HELPER_3(store_dcr, void, env, tl, tl) |
aurel32 | 45d827d | 2008-12-07 13:40:29 +0000 | [diff] [blame] | 377 | |
Blue Swirl | d523dd0 | 2012-05-30 04:23:38 +0000 | [diff] [blame] | 378 | DEF_HELPER_2(load_dump_spr, void, env, i32) |
| 379 | DEF_HELPER_2(store_dump_spr, void, env, i32) |
Blue Swirl | d0f1562 | 2012-05-30 04:23:36 +0000 | [diff] [blame] | 380 | DEF_HELPER_1(load_tbl, tl, env) |
| 381 | DEF_HELPER_1(load_tbu, tl, env) |
| 382 | DEF_HELPER_1(load_atbl, tl, env) |
| 383 | DEF_HELPER_1(load_atbu, tl, env) |
| 384 | DEF_HELPER_1(load_601_rtcl, tl, env) |
| 385 | DEF_HELPER_1(load_601_rtcu, tl, env) |
aurel32 | 45d827d | 2008-12-07 13:40:29 +0000 | [diff] [blame] | 386 | #if !defined(CONFIG_USER_ONLY) |
| 387 | #if defined(TARGET_PPC64) |
Blue Swirl | d523dd0 | 2012-05-30 04:23:38 +0000 | [diff] [blame] | 388 | DEF_HELPER_2(store_asr, void, env, tl) |
Blue Swirl | d0f1562 | 2012-05-30 04:23:36 +0000 | [diff] [blame] | 389 | DEF_HELPER_1(load_purr, tl, env) |
aurel32 | 45d827d | 2008-12-07 13:40:29 +0000 | [diff] [blame] | 390 | #endif |
Blue Swirl | d523dd0 | 2012-05-30 04:23:38 +0000 | [diff] [blame] | 391 | DEF_HELPER_2(store_sdr1, void, env, tl) |
Blue Swirl | d0f1562 | 2012-05-30 04:23:36 +0000 | [diff] [blame] | 392 | DEF_HELPER_2(store_tbl, void, env, tl) |
| 393 | DEF_HELPER_2(store_tbu, void, env, tl) |
| 394 | DEF_HELPER_2(store_atbl, void, env, tl) |
| 395 | DEF_HELPER_2(store_atbu, void, env, tl) |
| 396 | DEF_HELPER_2(store_601_rtcl, void, env, tl) |
| 397 | DEF_HELPER_2(store_601_rtcu, void, env, tl) |
| 398 | DEF_HELPER_1(load_decr, tl, env) |
| 399 | DEF_HELPER_2(store_decr, void, env, tl) |
Blue Swirl | d523dd0 | 2012-05-30 04:23:38 +0000 | [diff] [blame] | 400 | DEF_HELPER_2(store_hid0_601, void, env, tl) |
| 401 | DEF_HELPER_3(store_403_pbr, void, env, i32, tl) |
Blue Swirl | d0f1562 | 2012-05-30 04:23:36 +0000 | [diff] [blame] | 402 | DEF_HELPER_1(load_40x_pit, tl, env) |
| 403 | DEF_HELPER_2(store_40x_pit, void, env, tl) |
Blue Swirl | d523dd0 | 2012-05-30 04:23:38 +0000 | [diff] [blame] | 404 | DEF_HELPER_2(store_40x_dbcr0, void, env, tl) |
| 405 | DEF_HELPER_2(store_40x_sler, void, env, tl) |
Blue Swirl | d0f1562 | 2012-05-30 04:23:36 +0000 | [diff] [blame] | 406 | DEF_HELPER_2(store_booke_tcr, void, env, tl) |
| 407 | DEF_HELPER_2(store_booke_tsr, void, env, tl) |
Alexander Graf | 2a7a47f | 2012-06-20 21:27:02 +0200 | [diff] [blame] | 408 | DEF_HELPER_1(load_epr, tl, env) |
Blue Swirl | c6c7cf0 | 2012-05-30 04:23:31 +0000 | [diff] [blame] | 409 | DEF_HELPER_3(store_ibatl, void, env, i32, tl) |
| 410 | DEF_HELPER_3(store_ibatu, void, env, i32, tl) |
| 411 | DEF_HELPER_3(store_dbatl, void, env, i32, tl) |
| 412 | DEF_HELPER_3(store_dbatu, void, env, i32, tl) |
| 413 | DEF_HELPER_3(store_601_batl, void, env, i32, tl) |
| 414 | DEF_HELPER_3(store_601_batu, void, env, i32, tl) |
aurel32 | 45d827d | 2008-12-07 13:40:29 +0000 | [diff] [blame] | 415 | #endif |
aurel32 | 06dca6a | 2008-12-06 16:37:18 +0000 | [diff] [blame] | 416 | |
pbrook | a7812ae | 2008-11-17 14:43:54 +0000 | [diff] [blame] | 417 | #include "def-helper.h" |