1 /* Macros for VFP ops, auto-generated from template */ 2 3 4 /* dyadic */ 5 6 /* -- ADD -- */ 7 8 9 /* Fd := Fn ADD Fm */ 10 #define ARM_VFP_ADDD_COND(p, rd, rn, rm, cond) \ 11 ARM_EMIT((p), ARM_DEF_VFP_DYADIC(cond,ARM_VFP_COPROC_DOUBLE,ARM_VFP_ADD,rd,rn,rm)) 12 #define ARM_VFP_ADDD(p, rd, rn, rm) \ 13 ARM_VFP_ADDD_COND(p, rd, rn, rm, ARMCOND_AL) 14 15 #define ARM_VFP_ADDS_COND(p, rd, rn, rm, cond) \ 16 ARM_EMIT((p), ARM_DEF_VFP_DYADIC(cond,ARM_VFP_COPROC_SINGLE,ARM_VFP_ADD,rd,rn,rm)) 17 #define ARM_VFP_ADDS(p, rd, rn, rm) \ 18 ARM_VFP_ADDS_COND(p, rd, rn, rm, ARMCOND_AL) 19 20 21 /* -- SUB -- */ 22 23 24 /* Fd := Fn SUB Fm */ 25 #define ARM_VFP_SUBD_COND(p, rd, rn, rm, cond) \ 26 ARM_EMIT((p), ARM_DEF_VFP_DYADIC(cond,ARM_VFP_COPROC_DOUBLE,ARM_VFP_SUB,rd,rn,rm)) 27 #define ARM_VFP_SUBD(p, rd, rn, rm) \ 28 ARM_VFP_SUBD_COND(p, rd, rn, rm, ARMCOND_AL) 29 30 #define ARM_VFP_SUBS_COND(p, rd, rn, rm, cond) \ 31 ARM_EMIT((p), ARM_DEF_VFP_DYADIC(cond,ARM_VFP_COPROC_SINGLE,ARM_VFP_SUB,rd,rn,rm)) 32 #define ARM_VFP_SUBS(p, rd, rn, rm) \ 33 ARM_VFP_SUBS_COND(p, rd, rn, rm, ARMCOND_AL) 34 35 36 /* -- MUL -- */ 37 38 39 /* Fd := Fn MUL Fm */ 40 #define ARM_VFP_MULD_COND(p, rd, rn, rm, cond) \ 41 ARM_EMIT((p), ARM_DEF_VFP_DYADIC(cond,ARM_VFP_COPROC_DOUBLE,ARM_VFP_MUL,rd,rn,rm)) 42 #define ARM_VFP_MULD(p, rd, rn, rm) \ 43 ARM_VFP_MULD_COND(p, rd, rn, rm, ARMCOND_AL) 44 45 #define ARM_VFP_MULS_COND(p, rd, rn, rm, cond) \ 46 ARM_EMIT((p), ARM_DEF_VFP_DYADIC(cond,ARM_VFP_COPROC_SINGLE,ARM_VFP_MUL,rd,rn,rm)) 47 #define ARM_VFP_MULS(p, rd, rn, rm) \ 48 ARM_VFP_MULS_COND(p, rd, rn, rm, ARMCOND_AL) 49 50 51 /* -- NMUL -- */ 52 53 54 /* Fd := Fn NMUL Fm */ 55 #define ARM_VFP_NMULD_COND(p, rd, rn, rm, cond) \ 56 ARM_EMIT((p), ARM_DEF_VFP_DYADIC(cond,ARM_VFP_COPROC_DOUBLE,ARM_VFP_NMUL,rd,rn,rm)) 57 #define ARM_VFP_NMULD(p, rd, rn, rm) \ 58 ARM_VFP_NMULD_COND(p, rd, rn, rm, ARMCOND_AL) 59 60 #define ARM_VFP_NMULS_COND(p, rd, rn, rm, cond) \ 61 ARM_EMIT((p), ARM_DEF_VFP_DYADIC(cond,ARM_VFP_COPROC_SINGLE,ARM_VFP_NMUL,rd,rn,rm)) 62 #define ARM_VFP_NMULS(p, rd, rn, rm) \ 63 ARM_VFP_NMULS_COND(p, rd, rn, rm, ARMCOND_AL) 64 65 66 /* -- DIV -- */ 67 68 69 /* Fd := Fn DIV Fm */ 70 #define ARM_VFP_DIVD_COND(p, rd, rn, rm, cond) \ 71 ARM_EMIT((p), ARM_DEF_VFP_DYADIC(cond,ARM_VFP_COPROC_DOUBLE,ARM_VFP_DIV,rd,rn,rm)) 72 #define ARM_VFP_DIVD(p, rd, rn, rm) \ 73 ARM_VFP_DIVD_COND(p, rd, rn, rm, ARMCOND_AL) 74 75 #define ARM_VFP_DIVS_COND(p, rd, rn, rm, cond) \ 76 ARM_EMIT((p), ARM_DEF_VFP_DYADIC(cond,ARM_VFP_COPROC_SINGLE,ARM_VFP_DIV,rd,rn,rm)) 77 #define ARM_VFP_DIVS(p, rd, rn, rm) \ 78 ARM_VFP_DIVS_COND(p, rd, rn, rm, ARMCOND_AL) 79 80 81 82 /* monadic */ 83 84 /* -- CPY -- */ 85 86 87 /* Fd := CPY Fm */ 88 89 #define ARM_CPYD_COND(p,dreg,sreg,cond) \ 90 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_DOUBLE,ARM_VFP_CPY,(dreg),(sreg))) 91 #define ARM_CPYD(p,dreg,sreg) ARM_CPYD_COND(p,dreg,sreg,ARMCOND_AL) 92 93 #define ARM_CPYS_COND(p,dreg,sreg,cond) \ 94 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_SINGLE,ARM_VFP_CPY,(dreg),(sreg))) 95 #define ARM_CPYS(p,dreg,sreg) ARM_CPYS_COND(p,dreg,sreg,ARMCOND_AL) 96 97 98 /* -- ABS -- */ 99 100 101 /* Fd := ABS Fm */ 102 103 #define ARM_ABSD_COND(p,dreg,sreg,cond) \ 104 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_DOUBLE,ARM_VFP_ABS,(dreg),(sreg))) 105 #define ARM_ABSD(p,dreg,sreg) ARM_ABSD_COND(p,dreg,sreg,ARMCOND_AL) 106 107 #define ARM_ABSS_COND(p,dreg,sreg,cond) \ 108 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_SINGLE,ARM_VFP_ABS,(dreg),(sreg))) 109 #define ARM_ABSS(p,dreg,sreg) ARM_ABSS_COND(p,dreg,sreg,ARMCOND_AL) 110 111 112 /* -- NEG -- */ 113 114 115 /* Fd := NEG Fm */ 116 117 #define ARM_NEGD_COND(p,dreg,sreg,cond) \ 118 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_DOUBLE,ARM_VFP_NEG,(dreg),(sreg))) 119 #define ARM_NEGD(p,dreg,sreg) ARM_NEGD_COND(p,dreg,sreg,ARMCOND_AL) 120 121 #define ARM_NEGS_COND(p,dreg,sreg,cond) \ 122 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_SINGLE,ARM_VFP_NEG,(dreg),(sreg))) 123 #define ARM_NEGS(p,dreg,sreg) ARM_NEGS_COND(p,dreg,sreg,ARMCOND_AL) 124 125 126 /* -- SQRT -- */ 127 128 129 /* Fd := SQRT Fm */ 130 131 #define ARM_SQRTD_COND(p,dreg,sreg,cond) \ 132 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_DOUBLE,ARM_VFP_SQRT,(dreg),(sreg))) 133 #define ARM_SQRTD(p,dreg,sreg) ARM_SQRTD_COND(p,dreg,sreg,ARMCOND_AL) 134 135 #define ARM_SQRTS_COND(p,dreg,sreg,cond) \ 136 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_SINGLE,ARM_VFP_SQRT,(dreg),(sreg))) 137 #define ARM_SQRTS(p,dreg,sreg) ARM_SQRTS_COND(p,dreg,sreg,ARMCOND_AL) 138 139 140 /* -- CMP -- */ 141 142 143 /* Fd := CMP Fm */ 144 145 #define ARM_CMPD_COND(p,dreg,sreg,cond) \ 146 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_DOUBLE,ARM_VFP_CMP,(dreg),(sreg))) 147 #define ARM_CMPD(p,dreg,sreg) ARM_CMPD_COND(p,dreg,sreg,ARMCOND_AL) 148 149 #define ARM_CMPS_COND(p,dreg,sreg,cond) \ 150 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_SINGLE,ARM_VFP_CMP,(dreg),(sreg))) 151 #define ARM_CMPS(p,dreg,sreg) ARM_CMPS_COND(p,dreg,sreg,ARMCOND_AL) 152 153 154 /* -- CMPE -- */ 155 156 157 /* Fd := CMPE Fm */ 158 159 #define ARM_CMPED_COND(p,dreg,sreg,cond) \ 160 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_DOUBLE,ARM_VFP_CMPE,(dreg),(sreg))) 161 #define ARM_CMPED(p,dreg,sreg) ARM_CMPED_COND(p,dreg,sreg,ARMCOND_AL) 162 163 #define ARM_CMPES_COND(p,dreg,sreg,cond) \ 164 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_SINGLE,ARM_VFP_CMPE,(dreg),(sreg))) 165 #define ARM_CMPES(p,dreg,sreg) ARM_CMPES_COND(p,dreg,sreg,ARMCOND_AL) 166 167 168 /* -- CMPZ -- */ 169 170 171 /* Fd := CMPZ Fm */ 172 173 #define ARM_CMPZD_COND(p,dreg,sreg,cond) \ 174 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_DOUBLE,ARM_VFP_CMPZ,(dreg),(sreg))) 175 #define ARM_CMPZD(p,dreg,sreg) ARM_CMPZD_COND(p,dreg,sreg,ARMCOND_AL) 176 177 #define ARM_CMPZS_COND(p,dreg,sreg,cond) \ 178 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_SINGLE,ARM_VFP_CMPZ,(dreg),(sreg))) 179 #define ARM_CMPZS(p,dreg,sreg) ARM_CMPZS_COND(p,dreg,sreg,ARMCOND_AL) 180 181 182 /* -- CMPEZ -- */ 183 184 185 /* Fd := CMPEZ Fm */ 186 187 #define ARM_CMPEZD_COND(p,dreg,sreg,cond) \ 188 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_DOUBLE,ARM_VFP_CMPEZ,(dreg),(sreg))) 189 #define ARM_CMPEZD(p,dreg,sreg) ARM_CMPEZD_COND(p,dreg,sreg,ARMCOND_AL) 190 191 #define ARM_CMPEZS_COND(p,dreg,sreg,cond) \ 192 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_SINGLE,ARM_VFP_CMPEZ,(dreg),(sreg))) 193 #define ARM_CMPEZS(p,dreg,sreg) ARM_CMPEZS_COND(p,dreg,sreg,ARMCOND_AL) 194 195 196 /* -- CVT -- */ 197 198 199 /* Fd := CVT Fm */ 200 201 #define ARM_CVTD_COND(p,dreg,sreg,cond) \ 202 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_DOUBLE,ARM_VFP_CVT,(dreg),(sreg))) 203 #define ARM_CVTD(p,dreg,sreg) ARM_CVTD_COND(p,dreg,sreg,ARMCOND_AL) 204 205 #define ARM_CVTS_COND(p,dreg,sreg,cond) \ 206 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_SINGLE,ARM_VFP_CVT,(dreg),(sreg))) 207 #define ARM_CVTS(p,dreg,sreg) ARM_CVTS_COND(p,dreg,sreg,ARMCOND_AL) 208 209 210 /* -- UITO -- */ 211 212 213 /* Fd := UITO Fm */ 214 215 #define ARM_UITOD_COND(p,dreg,sreg,cond) \ 216 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_DOUBLE,ARM_VFP_UITO,(dreg),(sreg))) 217 #define ARM_UITOD(p,dreg,sreg) ARM_UITOD_COND(p,dreg,sreg,ARMCOND_AL) 218 219 #define ARM_UITOS_COND(p,dreg,sreg,cond) \ 220 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_SINGLE,ARM_VFP_UITO,(dreg),(sreg))) 221 #define ARM_UITOS(p,dreg,sreg) ARM_UITOS_COND(p,dreg,sreg,ARMCOND_AL) 222 223 224 /* -- SITO -- */ 225 226 227 /* Fd := SITO Fm */ 228 229 #define ARM_SITOD_COND(p,dreg,sreg,cond) \ 230 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_DOUBLE,ARM_VFP_SITO,(dreg),(sreg))) 231 #define ARM_SITOD(p,dreg,sreg) ARM_SITOD_COND(p,dreg,sreg,ARMCOND_AL) 232 233 #define ARM_SITOS_COND(p,dreg,sreg,cond) \ 234 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_SINGLE,ARM_VFP_SITO,(dreg),(sreg))) 235 #define ARM_SITOS(p,dreg,sreg) ARM_SITOS_COND(p,dreg,sreg,ARMCOND_AL) 236 237 238 /* -- TOUI -- */ 239 240 241 /* Fd := TOUI Fm */ 242 243 #define ARM_TOUID_COND(p,dreg,sreg,cond) \ 244 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_DOUBLE,ARM_VFP_TOUI,(dreg),(sreg))) 245 #define ARM_TOUID(p,dreg,sreg) ARM_TOUID_COND(p,dreg,sreg,ARMCOND_AL) 246 247 #define ARM_TOUIS_COND(p,dreg,sreg,cond) \ 248 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_SINGLE,ARM_VFP_TOUI,(dreg),(sreg))) 249 #define ARM_TOUIS(p,dreg,sreg) ARM_TOUIS_COND(p,dreg,sreg,ARMCOND_AL) 250 251 252 /* -- TOSI -- */ 253 254 255 /* Fd := TOSI Fm */ 256 257 #define ARM_TOSID_COND(p,dreg,sreg,cond) \ 258 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_DOUBLE,ARM_VFP_TOSI,(dreg),(sreg))) 259 #define ARM_TOSID(p,dreg,sreg) ARM_TOSID_COND(p,dreg,sreg,ARMCOND_AL) 260 261 #define ARM_TOSIS_COND(p,dreg,sreg,cond) \ 262 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_SINGLE,ARM_VFP_TOSI,(dreg),(sreg))) 263 #define ARM_TOSIS(p,dreg,sreg) ARM_TOSIS_COND(p,dreg,sreg,ARMCOND_AL) 264 265 266 /* -- TOUIZ -- */ 267 268 269 /* Fd := TOUIZ Fm */ 270 271 #define ARM_TOUIZD_COND(p,dreg,sreg,cond) \ 272 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_DOUBLE,ARM_VFP_TOUIZ,(dreg),(sreg))) 273 #define ARM_TOUIZD(p,dreg,sreg) ARM_TOUIZD_COND(p,dreg,sreg,ARMCOND_AL) 274 275 #define ARM_TOUIZS_COND(p,dreg,sreg,cond) \ 276 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_SINGLE,ARM_VFP_TOUIZ,(dreg),(sreg))) 277 #define ARM_TOUIZS(p,dreg,sreg) ARM_TOUIZS_COND(p,dreg,sreg,ARMCOND_AL) 278 279 280 /* -- TOSIZ -- */ 281 282 283 /* Fd := TOSIZ Fm */ 284 285 #define ARM_TOSIZD_COND(p,dreg,sreg,cond) \ 286 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_DOUBLE,ARM_VFP_TOSIZ,(dreg),(sreg))) 287 #define ARM_TOSIZD(p,dreg,sreg) ARM_TOSIZD_COND(p,dreg,sreg,ARMCOND_AL) 288 289 #define ARM_TOSIZS_COND(p,dreg,sreg,cond) \ 290 ARM_EMIT((p), ARM_DEF_VFP_MONADIC((cond),ARM_VFP_COPROC_SINGLE,ARM_VFP_TOSIZ,(dreg),(sreg))) 291 #define ARM_TOSIZS(p,dreg,sreg) ARM_TOSIZS_COND(p,dreg,sreg,ARMCOND_AL) 292 293 294 295 296 297 298 /* end generated */ 299 300