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 | |
aurel32 | 64adab3 | 2008-11-22 10:09:17 +0000 | [diff] [blame] | 3 | DEF_HELPER_2(raise_exception_err, void, i32, i32) |
aurel32 | e06fcd7 | 2008-12-11 22:42:14 +0000 | [diff] [blame] | 4 | DEF_HELPER_1(raise_exception, void, i32) |
aurel32 | cab3bee | 2008-11-24 11:28:19 +0000 | [diff] [blame] | 5 | DEF_HELPER_3(tw, void, tl, tl, i32) |
| 6 | #if defined(TARGET_PPC64) |
| 7 | DEF_HELPER_3(td, void, tl, tl, i32) |
| 8 | #endif |
aurel32 | d72a19f | 2008-11-30 16:24:55 +0000 | [diff] [blame] | 9 | #if !defined(CONFIG_USER_ONLY) |
aurel32 | 6527f6e | 2008-12-06 13:03:35 +0000 | [diff] [blame] | 10 | DEF_HELPER_1(store_msr, void, tl) |
aurel32 | d72a19f | 2008-11-30 16:24:55 +0000 | [diff] [blame] | 11 | DEF_HELPER_0(rfi, void) |
| 12 | DEF_HELPER_0(rfsvc, void) |
| 13 | DEF_HELPER_0(40x_rfci, void) |
| 14 | DEF_HELPER_0(rfci, void) |
| 15 | DEF_HELPER_0(rfdi, void) |
| 16 | DEF_HELPER_0(rfmci, void) |
| 17 | #if defined(TARGET_PPC64) |
| 18 | DEF_HELPER_0(rfid, void) |
| 19 | DEF_HELPER_0(hrfid, void) |
| 20 | #endif |
| 21 | #endif |
aurel32 | 64adab3 | 2008-11-22 10:09:17 +0000 | [diff] [blame] | 22 | |
aurel32 | ff4a62c | 2008-11-30 16:23:56 +0000 | [diff] [blame] | 23 | DEF_HELPER_2(lmw, void, tl, i32) |
| 24 | DEF_HELPER_2(stmw, void, tl, i32) |
aurel32 | dfbc799 | 2008-11-30 16:24:21 +0000 | [diff] [blame] | 25 | DEF_HELPER_3(lsw, void, tl, i32, i32) |
| 26 | DEF_HELPER_4(lswx, void, tl, i32, i32, i32) |
| 27 | DEF_HELPER_3(stsw, void, tl, i32, i32) |
aurel32 | 799a8c8 | 2008-11-30 16:24:05 +0000 | [diff] [blame] | 28 | DEF_HELPER_1(dcbz, void, tl) |
| 29 | DEF_HELPER_1(dcbz_970, void, tl) |
aurel32 | 37d269d | 2008-11-30 16:24:13 +0000 | [diff] [blame] | 30 | DEF_HELPER_1(icbi, void, tl) |
aurel32 | bdb4b68 | 2008-11-30 16:24:30 +0000 | [diff] [blame] | 31 | DEF_HELPER_4(lscbx, tl, tl, i32, i32, i32) |
| 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) |
pbrook | a7812ae | 2008-11-17 14:43:54 +0000 | [diff] [blame] | 36 | DEF_HELPER_2(mulldo, i64, 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) |
pbrook | a7812ae | 2008-11-17 14:43:54 +0000 | [diff] [blame] | 42 | DEF_HELPER_2(sraw, tl, 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) |
pbrook | a7812ae | 2008-11-17 14:43:54 +0000 | [diff] [blame] | 46 | DEF_HELPER_2(srad, tl, 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 | |
aurel32 | af12906 | 2008-11-19 16:10:23 +0000 | [diff] [blame] | 53 | DEF_HELPER_0(float_check_status, void) |
aurel32 | af12906 | 2008-11-19 16:10:23 +0000 | [diff] [blame] | 54 | DEF_HELPER_0(reset_fpstatus, void) |
aurel32 | af12906 | 2008-11-19 16:10:23 +0000 | [diff] [blame] | 55 | DEF_HELPER_2(compute_fprf, i32, i64, i32) |
| 56 | DEF_HELPER_2(store_fpscr, void, i64, i32) |
aurel32 | 6e35d52 | 2008-12-14 18:40:58 +0000 | [diff] [blame] | 57 | DEF_HELPER_1(fpscr_clrbit, void, i32) |
aurel32 | af12906 | 2008-11-19 16:10:23 +0000 | [diff] [blame] | 58 | DEF_HELPER_1(fpscr_setbit, void, i32) |
aurel32 | a0d7d5a | 2008-11-23 16:30:50 +0000 | [diff] [blame] | 59 | DEF_HELPER_1(float64_to_float32, i32, i64) |
| 60 | DEF_HELPER_1(float32_to_float64, i64, i32) |
aurel32 | af12906 | 2008-11-19 16:10:23 +0000 | [diff] [blame] | 61 | |
aurel32 | 9a81937 | 2008-12-14 19:34:09 +0000 | [diff] [blame] | 62 | DEF_HELPER_3(fcmpo, void, i64, i64, i32) |
| 63 | DEF_HELPER_3(fcmpu, void, i64, i64, i32) |
aurel32 | d72a19f | 2008-11-30 16:24:55 +0000 | [diff] [blame] | 64 | |
aurel32 | af12906 | 2008-11-19 16:10:23 +0000 | [diff] [blame] | 65 | DEF_HELPER_1(fctiw, i64, i64) |
| 66 | DEF_HELPER_1(fctiwz, i64, i64) |
| 67 | #if defined(TARGET_PPC64) |
| 68 | DEF_HELPER_1(fcfid, i64, i64) |
| 69 | DEF_HELPER_1(fctid, i64, i64) |
| 70 | DEF_HELPER_1(fctidz, i64, i64) |
| 71 | #endif |
| 72 | DEF_HELPER_1(frsp, i64, i64) |
| 73 | DEF_HELPER_1(frin, i64, i64) |
| 74 | DEF_HELPER_1(friz, i64, i64) |
| 75 | DEF_HELPER_1(frip, i64, i64) |
| 76 | DEF_HELPER_1(frim, i64, i64) |
| 77 | |
| 78 | DEF_HELPER_2(fadd, i64, i64, i64) |
| 79 | DEF_HELPER_2(fsub, i64, i64, i64) |
| 80 | DEF_HELPER_2(fmul, i64, i64, i64) |
| 81 | DEF_HELPER_2(fdiv, i64, i64, i64) |
| 82 | DEF_HELPER_3(fmadd, i64, i64, i64, i64) |
| 83 | DEF_HELPER_3(fmsub, i64, i64, i64, i64) |
| 84 | DEF_HELPER_3(fnmadd, i64, i64, i64, i64) |
| 85 | DEF_HELPER_3(fnmsub, i64, i64, i64, i64) |
| 86 | DEF_HELPER_1(fabs, i64, i64) |
| 87 | DEF_HELPER_1(fnabs, i64, i64) |
| 88 | DEF_HELPER_1(fneg, i64, i64) |
aurel32 | 1c97856 | 2008-11-23 10:54:04 +0000 | [diff] [blame] | 89 | DEF_HELPER_1(fsqrt, i64, i64) |
| 90 | DEF_HELPER_1(fre, i64, i64) |
| 91 | DEF_HELPER_1(fres, i64, i64) |
| 92 | DEF_HELPER_1(frsqrte, i64, i64) |
aurel32 | af12906 | 2008-11-19 16:10:23 +0000 | [diff] [blame] | 93 | DEF_HELPER_3(fsel, i64, i64, i64, i64) |
| 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) |
aurel32 | 1add6e2 | 2009-01-08 18:54:38 +0000 | [diff] [blame] | 123 | DEF_HELPER_3(vcmpequb, void, avr, avr, avr) |
| 124 | DEF_HELPER_3(vcmpequh, void, avr, avr, avr) |
| 125 | DEF_HELPER_3(vcmpequw, void, avr, avr, avr) |
| 126 | DEF_HELPER_3(vcmpgtub, void, avr, avr, avr) |
| 127 | DEF_HELPER_3(vcmpgtuh, void, avr, avr, avr) |
| 128 | DEF_HELPER_3(vcmpgtuw, void, avr, avr, avr) |
| 129 | DEF_HELPER_3(vcmpgtsb, void, avr, avr, avr) |
| 130 | DEF_HELPER_3(vcmpgtsh, void, avr, avr, avr) |
| 131 | DEF_HELPER_3(vcmpgtsw, void, avr, avr, avr) |
aurel32 | 819ca12 | 2009-02-09 16:49:10 +0000 | [diff] [blame] | 132 | DEF_HELPER_3(vcmpeqfp, void, avr, avr, avr) |
| 133 | DEF_HELPER_3(vcmpgefp, void, avr, avr, avr) |
| 134 | DEF_HELPER_3(vcmpgtfp, void, avr, avr, avr) |
| 135 | DEF_HELPER_3(vcmpbfp, void, avr, avr, avr) |
aurel32 | 1add6e2 | 2009-01-08 18:54:38 +0000 | [diff] [blame] | 136 | DEF_HELPER_3(vcmpequb_dot, void, avr, avr, avr) |
| 137 | DEF_HELPER_3(vcmpequh_dot, void, avr, avr, avr) |
| 138 | DEF_HELPER_3(vcmpequw_dot, void, avr, avr, avr) |
| 139 | DEF_HELPER_3(vcmpgtub_dot, void, avr, avr, avr) |
| 140 | DEF_HELPER_3(vcmpgtuh_dot, void, avr, avr, avr) |
| 141 | DEF_HELPER_3(vcmpgtuw_dot, void, avr, avr, avr) |
| 142 | DEF_HELPER_3(vcmpgtsb_dot, void, avr, avr, avr) |
| 143 | DEF_HELPER_3(vcmpgtsh_dot, void, avr, avr, avr) |
| 144 | DEF_HELPER_3(vcmpgtsw_dot, void, avr, avr, avr) |
aurel32 | 819ca12 | 2009-02-09 16:49:10 +0000 | [diff] [blame] | 145 | DEF_HELPER_3(vcmpeqfp_dot, void, avr, avr, avr) |
| 146 | DEF_HELPER_3(vcmpgefp_dot, void, avr, avr, avr) |
| 147 | DEF_HELPER_3(vcmpgtfp_dot, void, avr, avr, avr) |
| 148 | DEF_HELPER_3(vcmpbfp_dot, void, 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); |
aurel32 | 5ab09f3 | 2009-01-08 23:19:50 +0000 | [diff] [blame] | 178 | DEF_HELPER_3(vaddsbs, void, avr, avr, avr) |
| 179 | DEF_HELPER_3(vaddshs, void, avr, avr, avr) |
| 180 | DEF_HELPER_3(vaddsws, void, avr, avr, avr) |
| 181 | DEF_HELPER_3(vsubsbs, void, avr, avr, avr) |
| 182 | DEF_HELPER_3(vsubshs, void, avr, avr, avr) |
| 183 | DEF_HELPER_3(vsubsws, void, avr, avr, avr) |
| 184 | DEF_HELPER_3(vaddubs, void, avr, avr, avr) |
| 185 | DEF_HELPER_3(vadduhs, void, avr, avr, avr) |
| 186 | DEF_HELPER_3(vadduws, void, avr, avr, avr) |
| 187 | DEF_HELPER_3(vsububs, void, avr, avr, avr) |
| 188 | DEF_HELPER_3(vsubuhs, void, avr, avr, avr) |
| 189 | DEF_HELPER_3(vsubuws, void, 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) |
aurel32 | b04ae98 | 2009-01-04 22:11:39 +0000 | [diff] [blame] | 208 | DEF_HELPER_4(vmsumubm, void, avr, avr, avr, avr) |
| 209 | DEF_HELPER_4(vmsummbm, void, avr, avr, avr, avr) |
aurel32 | d125869 | 2009-01-04 22:11:49 +0000 | [diff] [blame] | 210 | DEF_HELPER_4(vsel, void, avr, avr, avr, avr) |
| 211 | DEF_HELPER_4(vperm, void, avr, avr, avr, avr) |
aurel32 | 5335a14 | 2009-01-04 22:12:09 +0000 | [diff] [blame] | 212 | DEF_HELPER_3(vpkshss, void, avr, avr, avr) |
| 213 | DEF_HELPER_3(vpkshus, void, avr, avr, avr) |
| 214 | DEF_HELPER_3(vpkswss, void, avr, avr, avr) |
| 215 | DEF_HELPER_3(vpkswus, void, avr, avr, avr) |
| 216 | DEF_HELPER_3(vpkuhus, void, avr, avr, avr) |
| 217 | DEF_HELPER_3(vpkuwus, void, avr, avr, avr) |
| 218 | DEF_HELPER_3(vpkuhum, void, avr, avr, avr) |
| 219 | DEF_HELPER_3(vpkuwum, void, avr, avr, avr) |
aurel32 | 1dd9ffb | 2009-01-04 22:12:19 +0000 | [diff] [blame] | 220 | DEF_HELPER_3(vpkpx, void, avr, avr, avr) |
aurel32 | b161ae2 | 2009-01-04 22:12:29 +0000 | [diff] [blame] | 221 | DEF_HELPER_4(vmhaddshs, void, avr, avr, avr, avr) |
| 222 | DEF_HELPER_4(vmhraddshs, void, avr, avr, avr, avr) |
aurel32 | 4d9903b | 2009-01-04 22:12:39 +0000 | [diff] [blame] | 223 | DEF_HELPER_4(vmsumuhm, void, avr, avr, avr, avr) |
| 224 | DEF_HELPER_4(vmsumuhs, void, avr, avr, avr, avr) |
aurel32 | eae0726 | 2009-01-04 22:12:49 +0000 | [diff] [blame] | 225 | DEF_HELPER_4(vmsumshm, void, avr, avr, avr, avr) |
| 226 | DEF_HELPER_4(vmsumshs, void, 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) |
aurel32 | 6e87b7c | 2009-02-03 19:56:09 +0000 | [diff] [blame] | 228 | DEF_HELPER_1(mtvscr, void, avr); |
aurel32 | cbfb6ae | 2009-01-04 22:13:10 +0000 | [diff] [blame] | 229 | DEF_HELPER_2(lvebx, void, avr, tl) |
| 230 | DEF_HELPER_2(lvehx, void, avr, tl) |
| 231 | DEF_HELPER_2(lvewx, void, avr, tl) |
| 232 | DEF_HELPER_2(stvebx, void, avr, tl) |
| 233 | DEF_HELPER_2(stvehx, void, avr, tl) |
| 234 | DEF_HELPER_2(stvewx, void, avr, tl) |
aurel32 | 8142cdd | 2009-01-04 22:13:21 +0000 | [diff] [blame] | 235 | DEF_HELPER_3(vsumsws, void, avr, avr, avr) |
| 236 | DEF_HELPER_3(vsum2sws, void, avr, avr, avr) |
| 237 | DEF_HELPER_3(vsum4sbs, void, avr, avr, avr) |
| 238 | DEF_HELPER_3(vsum4shs, void, avr, avr, avr) |
| 239 | DEF_HELPER_3(vsum4ubs, void, avr, avr, avr) |
aurel32 | 56fdd21 | 2009-02-09 16:48:51 +0000 | [diff] [blame] | 240 | DEF_HELPER_3(vaddfp, void, avr, avr, avr) |
| 241 | DEF_HELPER_3(vsubfp, void, avr, avr, avr) |
aurel32 | 1536ff6 | 2009-02-09 16:48:39 +0000 | [diff] [blame] | 242 | DEF_HELPER_3(vmaxfp, void, avr, avr, avr) |
| 243 | DEF_HELPER_3(vminfp, void, avr, avr, avr) |
aurel32 | bdfbac3 | 2009-02-09 16:49:29 +0000 | [diff] [blame] | 244 | DEF_HELPER_2(vrefp, void, avr, avr) |
aurel32 | 071fc3b | 2009-02-09 16:49:40 +0000 | [diff] [blame] | 245 | DEF_HELPER_2(vrsqrtefp, void, avr, avr) |
aurel32 | 35cf7c7 | 2009-02-09 16:48:59 +0000 | [diff] [blame] | 246 | DEF_HELPER_4(vmaddfp, void, avr, avr, avr, avr) |
| 247 | DEF_HELPER_4(vnmsubfp, void, avr, avr, avr, avr) |
Aurelien Jarno | 0bffbc6 | 2009-02-09 12:20:50 +0100 | [diff] [blame] | 248 | DEF_HELPER_2(vexptefp, void, avr, avr) |
aurel32 | b580763 | 2009-02-05 22:33:36 +0000 | [diff] [blame] | 249 | DEF_HELPER_2(vlogefp, void, avr, avr) |
aurel32 | f6b1964 | 2009-02-04 13:52:03 +0000 | [diff] [blame] | 250 | DEF_HELPER_2(vrfim, void, avr, avr) |
| 251 | DEF_HELPER_2(vrfin, void, avr, avr) |
| 252 | DEF_HELPER_2(vrfip, void, avr, avr) |
| 253 | DEF_HELPER_2(vrfiz, void, avr, avr) |
aurel32 | e140632 | 2009-02-04 13:52:17 +0000 | [diff] [blame] | 254 | DEF_HELPER_3(vcfux, void, avr, avr, i32) |
| 255 | DEF_HELPER_3(vcfsx, void, avr, avr, i32) |
aurel32 | 875b31d | 2009-02-09 16:49:20 +0000 | [diff] [blame] | 256 | DEF_HELPER_3(vctuxs, void, avr, avr, i32) |
| 257 | DEF_HELPER_3(vctsxs, void, avr, avr, i32) |
aurel32 | fab3cbe | 2009-01-03 13:31:49 +0000 | [diff] [blame] | 258 | |
aurel32 | 1c97856 | 2008-11-23 10:54:04 +0000 | [diff] [blame] | 259 | DEF_HELPER_1(efscfsi, i32, i32) |
| 260 | DEF_HELPER_1(efscfui, i32, i32) |
| 261 | DEF_HELPER_1(efscfuf, i32, i32) |
| 262 | DEF_HELPER_1(efscfsf, i32, i32) |
| 263 | DEF_HELPER_1(efsctsi, i32, i32) |
| 264 | DEF_HELPER_1(efsctui, i32, i32) |
| 265 | DEF_HELPER_1(efsctsiz, i32, i32) |
| 266 | DEF_HELPER_1(efsctuiz, i32, i32) |
| 267 | DEF_HELPER_1(efsctsf, i32, i32) |
| 268 | DEF_HELPER_1(efsctuf, i32, i32) |
| 269 | DEF_HELPER_1(evfscfsi, i64, i64) |
| 270 | DEF_HELPER_1(evfscfui, i64, i64) |
| 271 | DEF_HELPER_1(evfscfuf, i64, i64) |
| 272 | DEF_HELPER_1(evfscfsf, i64, i64) |
| 273 | DEF_HELPER_1(evfsctsi, i64, i64) |
| 274 | DEF_HELPER_1(evfsctui, i64, i64) |
| 275 | DEF_HELPER_1(evfsctsiz, i64, i64) |
| 276 | DEF_HELPER_1(evfsctuiz, i64, i64) |
| 277 | DEF_HELPER_1(evfsctsf, i64, i64) |
| 278 | DEF_HELPER_1(evfsctuf, i64, i64) |
| 279 | DEF_HELPER_2(efsadd, i32, i32, i32) |
| 280 | DEF_HELPER_2(efssub, i32, i32, i32) |
| 281 | DEF_HELPER_2(efsmul, i32, i32, i32) |
| 282 | DEF_HELPER_2(efsdiv, i32, i32, i32) |
| 283 | DEF_HELPER_2(evfsadd, i64, i64, i64) |
| 284 | DEF_HELPER_2(evfssub, i64, i64, i64) |
| 285 | DEF_HELPER_2(evfsmul, i64, i64, i64) |
| 286 | DEF_HELPER_2(evfsdiv, i64, i64, i64) |
| 287 | DEF_HELPER_2(efststlt, i32, i32, i32) |
| 288 | DEF_HELPER_2(efststgt, i32, i32, i32) |
| 289 | DEF_HELPER_2(efststeq, i32, i32, i32) |
| 290 | DEF_HELPER_2(efscmplt, i32, i32, i32) |
| 291 | DEF_HELPER_2(efscmpgt, i32, i32, i32) |
| 292 | DEF_HELPER_2(efscmpeq, i32, i32, i32) |
| 293 | DEF_HELPER_2(evfststlt, i32, i64, i64) |
| 294 | DEF_HELPER_2(evfststgt, i32, i64, i64) |
| 295 | DEF_HELPER_2(evfststeq, i32, i64, i64) |
| 296 | DEF_HELPER_2(evfscmplt, i32, i64, i64) |
| 297 | DEF_HELPER_2(evfscmpgt, i32, i64, i64) |
| 298 | DEF_HELPER_2(evfscmpeq, i32, i64, i64) |
| 299 | DEF_HELPER_1(efdcfsi, i64, i32) |
| 300 | DEF_HELPER_1(efdcfsid, i64, i64) |
| 301 | DEF_HELPER_1(efdcfui, i64, i32) |
| 302 | DEF_HELPER_1(efdcfuid, i64, i64) |
| 303 | DEF_HELPER_1(efdctsi, i32, i64) |
| 304 | DEF_HELPER_1(efdctui, i32, i64) |
| 305 | DEF_HELPER_1(efdctsiz, i32, i64) |
| 306 | DEF_HELPER_1(efdctsidz, i64, i64) |
| 307 | DEF_HELPER_1(efdctuiz, i32, i64) |
| 308 | DEF_HELPER_1(efdctuidz, i64, i64) |
| 309 | DEF_HELPER_1(efdcfsf, i64, i32) |
| 310 | DEF_HELPER_1(efdcfuf, i64, i32) |
| 311 | DEF_HELPER_1(efdctsf, i32, i64) |
| 312 | DEF_HELPER_1(efdctuf, i32, i64) |
| 313 | DEF_HELPER_1(efscfd, i32, i64) |
| 314 | DEF_HELPER_1(efdcfs, i64, i32) |
| 315 | DEF_HELPER_2(efdadd, i64, i64, i64) |
| 316 | DEF_HELPER_2(efdsub, i64, i64, i64) |
| 317 | DEF_HELPER_2(efdmul, i64, i64, i64) |
| 318 | DEF_HELPER_2(efddiv, i64, i64, i64) |
| 319 | DEF_HELPER_2(efdtstlt, i32, i64, i64) |
| 320 | DEF_HELPER_2(efdtstgt, i32, i64, i64) |
| 321 | DEF_HELPER_2(efdtsteq, i32, i64, i64) |
| 322 | DEF_HELPER_2(efdcmplt, i32, i64, i64) |
| 323 | DEF_HELPER_2(efdcmpgt, i32, i64, i64) |
| 324 | DEF_HELPER_2(efdcmpeq, i32, i64, i64) |
| 325 | |
aurel32 | 0f3955e | 2008-11-30 16:22:56 +0000 | [diff] [blame] | 326 | #if !defined(CONFIG_USER_ONLY) |
aurel32 | 74d3779 | 2008-12-06 21:46:17 +0000 | [diff] [blame] | 327 | DEF_HELPER_1(4xx_tlbre_hi, tl, tl) |
| 328 | DEF_HELPER_1(4xx_tlbre_lo, tl, tl) |
| 329 | DEF_HELPER_2(4xx_tlbwe_hi, void, tl, tl) |
| 330 | DEF_HELPER_2(4xx_tlbwe_lo, void, tl, tl) |
| 331 | DEF_HELPER_1(4xx_tlbsx, tl, tl) |
| 332 | DEF_HELPER_2(440_tlbre, tl, i32, tl) |
| 333 | DEF_HELPER_3(440_tlbwe, void, i32, tl, tl) |
| 334 | DEF_HELPER_1(440_tlbsx, tl, tl) |
Alexander Graf | 01662f3 | 2011-04-30 23:34:58 +0200 | [diff] [blame] | 335 | DEF_HELPER_0(booke206_tlbre, void) |
| 336 | DEF_HELPER_0(booke206_tlbwe, void) |
| 337 | DEF_HELPER_1(booke206_tlbsx, void, tl) |
| 338 | DEF_HELPER_1(booke206_tlbivax, void, tl) |
| 339 | DEF_HELPER_1(booke206_tlbflush, void, i32) |
| 340 | DEF_HELPER_2(booke_setpid, void, i32, tl) |
aurel32 | 74d3779 | 2008-12-06 21:46:17 +0000 | [diff] [blame] | 341 | DEF_HELPER_1(6xx_tlbd, void, tl) |
| 342 | DEF_HELPER_1(6xx_tlbi, void, tl) |
| 343 | DEF_HELPER_1(74xx_tlbd, void, tl) |
| 344 | DEF_HELPER_1(74xx_tlbi, void, tl) |
aurel32 | 69a218f | 2009-04-16 12:57:58 +0000 | [diff] [blame] | 345 | DEF_HELPER_FLAGS_0(tlbia, TCG_CALL_CONST, void) |
| 346 | DEF_HELPER_FLAGS_1(tlbie, TCG_CALL_CONST, void, tl) |
aurel32 | 74d3779 | 2008-12-06 21:46:17 +0000 | [diff] [blame] | 347 | #if defined(TARGET_PPC64) |
aurel32 | 69a218f | 2009-04-16 12:57:58 +0000 | [diff] [blame] | 348 | DEF_HELPER_FLAGS_2(store_slb, TCG_CALL_CONST, void, tl, tl) |
David Gibson | efdef95 | 2011-04-01 15:15:11 +1100 | [diff] [blame] | 349 | DEF_HELPER_1(load_slb_esid, tl, tl) |
| 350 | DEF_HELPER_1(load_slb_vsid, tl, tl) |
aurel32 | 69a218f | 2009-04-16 12:57:58 +0000 | [diff] [blame] | 351 | DEF_HELPER_FLAGS_0(slbia, TCG_CALL_CONST, void) |
| 352 | DEF_HELPER_FLAGS_1(slbie, TCG_CALL_CONST, void, tl) |
aurel32 | 74d3779 | 2008-12-06 21:46:17 +0000 | [diff] [blame] | 353 | #endif |
aurel32 | 69a218f | 2009-04-16 12:57:58 +0000 | [diff] [blame] | 354 | DEF_HELPER_FLAGS_1(load_sr, TCG_CALL_CONST, tl, tl); |
| 355 | DEF_HELPER_FLAGS_2(store_sr, TCG_CALL_CONST, void, tl, tl) |
aurel32 | cf02a65 | 2008-11-30 16:23:35 +0000 | [diff] [blame] | 356 | |
aurel32 | 69a218f | 2009-04-16 12:57:58 +0000 | [diff] [blame] | 357 | DEF_HELPER_FLAGS_1(602_mfrom, TCG_CALL_CONST | TCG_CALL_PURE, tl, tl) |
aurel32 | 0f3955e | 2008-11-30 16:22:56 +0000 | [diff] [blame] | 358 | #endif |
| 359 | |
aurel32 | ef0d51a | 2008-11-30 17:26:29 +0000 | [diff] [blame] | 360 | DEF_HELPER_3(dlmzb, tl, tl, tl, i32) |
aurel32 | 69a218f | 2009-04-16 12:57:58 +0000 | [diff] [blame] | 361 | DEF_HELPER_FLAGS_1(clcs, TCG_CALL_CONST | TCG_CALL_PURE, tl, i32) |
aurel32 | 22e0e17 | 2008-12-06 12:19:14 +0000 | [diff] [blame] | 362 | #if !defined(CONFIG_USER_ONLY) |
| 363 | DEF_HELPER_1(rac, tl, tl) |
| 364 | #endif |
| 365 | DEF_HELPER_2(div, tl, tl, tl) |
| 366 | DEF_HELPER_2(divo, tl, tl, tl) |
| 367 | DEF_HELPER_2(divs, tl, tl, tl) |
| 368 | DEF_HELPER_2(divso, tl, tl, tl) |
aurel32 | ef0d51a | 2008-11-30 17:26:29 +0000 | [diff] [blame] | 369 | |
Aurelien Jarno | 95ff895 | 2010-02-06 16:59:11 +0100 | [diff] [blame] | 370 | DEF_HELPER_1(load_dcr, tl, tl); |
| 371 | DEF_HELPER_2(store_dcr, void, tl, tl) |
aurel32 | 45d827d | 2008-12-07 13:40:29 +0000 | [diff] [blame] | 372 | |
| 373 | DEF_HELPER_1(load_dump_spr, void, i32) |
| 374 | DEF_HELPER_1(store_dump_spr, void, i32) |
| 375 | DEF_HELPER_0(load_tbl, tl) |
| 376 | DEF_HELPER_0(load_tbu, tl) |
| 377 | DEF_HELPER_0(load_atbl, tl) |
| 378 | DEF_HELPER_0(load_atbu, tl) |
| 379 | DEF_HELPER_0(load_601_rtcl, tl) |
| 380 | DEF_HELPER_0(load_601_rtcu, tl) |
| 381 | #if !defined(CONFIG_USER_ONLY) |
| 382 | #if defined(TARGET_PPC64) |
| 383 | DEF_HELPER_1(store_asr, void, tl) |
David Gibson | 3a7f009 | 2011-04-01 15:15:12 +1100 | [diff] [blame] | 384 | DEF_HELPER_0(load_purr, tl) |
aurel32 | 45d827d | 2008-12-07 13:40:29 +0000 | [diff] [blame] | 385 | #endif |
| 386 | DEF_HELPER_1(store_sdr1, void, tl) |
| 387 | DEF_HELPER_1(store_tbl, void, tl) |
| 388 | DEF_HELPER_1(store_tbu, void, tl) |
| 389 | DEF_HELPER_1(store_atbl, void, tl) |
| 390 | DEF_HELPER_1(store_atbu, void, tl) |
| 391 | DEF_HELPER_1(store_601_rtcl, void, tl) |
| 392 | DEF_HELPER_1(store_601_rtcu, void, tl) |
| 393 | DEF_HELPER_0(load_decr, tl) |
| 394 | DEF_HELPER_1(store_decr, void, tl) |
| 395 | DEF_HELPER_1(store_hid0_601, void, tl) |
| 396 | DEF_HELPER_2(store_403_pbr, void, i32, tl) |
| 397 | DEF_HELPER_0(load_40x_pit, tl) |
| 398 | DEF_HELPER_1(store_40x_pit, void, tl) |
| 399 | DEF_HELPER_1(store_40x_dbcr0, void, tl) |
| 400 | DEF_HELPER_1(store_40x_sler, void, tl) |
| 401 | DEF_HELPER_1(store_booke_tcr, void, tl) |
| 402 | DEF_HELPER_1(store_booke_tsr, void, tl) |
| 403 | DEF_HELPER_2(store_ibatl, void, i32, tl) |
| 404 | DEF_HELPER_2(store_ibatu, void, i32, tl) |
| 405 | DEF_HELPER_2(store_dbatl, void, i32, tl) |
| 406 | DEF_HELPER_2(store_dbatu, void, i32, tl) |
| 407 | DEF_HELPER_2(store_601_batl, void, i32, tl) |
| 408 | DEF_HELPER_2(store_601_batu, void, i32, tl) |
| 409 | #endif |
aurel32 | 06dca6a | 2008-12-06 16:37:18 +0000 | [diff] [blame] | 410 | |
pbrook | a7812ae | 2008-11-17 14:43:54 +0000 | [diff] [blame] | 411 | #include "def-helper.h" |