OLD | NEW |
(Empty) | |
| 1 // Copyright 2011-2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are |
| 4 // met: |
| 5 // |
| 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided |
| 11 // with the distribution. |
| 12 // * Neither the name of Google Inc. nor the names of its |
| 13 // contributors may be used to endorse or promote products derived |
| 14 // from this software without specific prior written permission. |
| 15 // |
| 16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| 17 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| 18 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| 19 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| 20 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| 21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| 22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 27 |
| 28 // Low level function that generate sh4 opcodes |
| 29 |
| 30 void add_imm_(int imm, Register Rd); |
| 31 |
| 32 void add_(Register Rs, Register Rd); |
| 33 |
| 34 void addc_(Register Rs, Register Rd); |
| 35 |
| 36 void addv_(Register Rs, Register Rd); |
| 37 |
| 38 void and_imm_R0_(int imm); |
| 39 |
| 40 void and_(Register Rs, Register Rd); |
| 41 |
| 42 void andb_imm_dispR0GBR_(int imm); |
| 43 |
| 44 void bra_(int imm); |
| 45 |
| 46 void bsr_(int imm); |
| 47 |
| 48 void bt_(int imm); |
| 49 |
| 50 void bf_(int imm); |
| 51 |
| 52 void bts_(int imm); |
| 53 |
| 54 void bfs_(int imm); |
| 55 |
| 56 void clrmac_(); |
| 57 |
| 58 void clrs_(); |
| 59 |
| 60 void clrt_(); |
| 61 |
| 62 void cmpeq_imm_R0_(int imm); |
| 63 |
| 64 void cmpeq_(Register Rs, Register Rd); |
| 65 |
| 66 void cmpge_(Register Rs, Register Rd); |
| 67 |
| 68 void cmpgt_(Register Rs, Register Rd); |
| 69 |
| 70 void cmphi_(Register Rs, Register Rd); |
| 71 |
| 72 void cmphs_(Register Rs, Register Rd); |
| 73 |
| 74 void cmppl_(Register Rd); |
| 75 |
| 76 void cmppz_(Register Rd); |
| 77 |
| 78 void cmpstr_(Register Rs, Register Rd); |
| 79 |
| 80 void div0s_(Register Rs, Register Rd); |
| 81 |
| 82 void div0u_(); |
| 83 |
| 84 void div1_(Register Rs, Register Rd); |
| 85 |
| 86 void extsb_(Register Rs, Register Rd); |
| 87 |
| 88 void extsw_(Register Rs, Register Rd); |
| 89 |
| 90 void extub_(Register Rs, Register Rd); |
| 91 |
| 92 void extuw_(Register Rs, Register Rd); |
| 93 |
| 94 void icbi_indRd_(Register Rd); |
| 95 |
| 96 void jmp_indRd_(Register Rd); |
| 97 |
| 98 void jsr_indRd_(Register Rd); |
| 99 |
| 100 void ldc_SR_(Register Rd); |
| 101 |
| 102 void ldc_GBR_(Register Rd); |
| 103 |
| 104 void ldc_SGR_(Register Rd); |
| 105 |
| 106 void ldc_VBR_(Register Rd); |
| 107 |
| 108 void ldc_SSR_(Register Rd); |
| 109 |
| 110 void ldc_SPC_(Register Rd); |
| 111 |
| 112 void ldc_DBR_(Register Rd); |
| 113 |
| 114 void ldc_bank_(Register Rd, int imm); |
| 115 |
| 116 void ldcl_incRd_SR_(Register Rd); |
| 117 |
| 118 void ldcl_incRd_GBR_(Register Rd); |
| 119 |
| 120 void ldcl_incRd_VBR_(Register Rd); |
| 121 |
| 122 void ldcl_incRd_SGR_(Register Rd); |
| 123 |
| 124 void ldcl_incRd_SSR_(Register Rd); |
| 125 |
| 126 void ldcl_incRd_SPC_(Register Rd); |
| 127 |
| 128 void ldcl_incRd_DBR_(Register Rd); |
| 129 |
| 130 void ldcl_incRd_bank_(Register Rd, int imm); |
| 131 |
| 132 void lds_MACH_(Register Rd); |
| 133 |
| 134 void lds_MACL_(Register Rd); |
| 135 |
| 136 void lds_PR_(Register Rd); |
| 137 |
| 138 void lds_FPUL_(Register Rs); |
| 139 |
| 140 void lds_FPSCR_(Register Rs); |
| 141 |
| 142 void ldsl_incRd_MACH_(Register Rd); |
| 143 |
| 144 void ldsl_incRd_MACL_(Register Rd); |
| 145 |
| 146 void ldsl_incRd_PR_(Register Rd); |
| 147 |
| 148 void ldsl_incRs_FPUL_(Register Rs); |
| 149 |
| 150 void ldsl_incRs_FPSCR_(Register Rs); |
| 151 |
| 152 void ldtlb_(); |
| 153 |
| 154 void macw_incRs_incRd_(Register Rs, Register Rd); |
| 155 |
| 156 void mov_imm_(int imm, Register Rd); |
| 157 |
| 158 void mov_(Register Rs, Register Rd); |
| 159 |
| 160 void movb_dispR0Rd_(Register Rs, Register Rd); |
| 161 |
| 162 void movb_decRd_(Register Rs, Register Rd); |
| 163 |
| 164 void movb_indRd_(Register Rs, Register Rd); |
| 165 |
| 166 void movb_dispRs_R0_(int imm, Register Rs); |
| 167 |
| 168 void movb_dispGBR_R0_(int imm); |
| 169 |
| 170 void movb_dispR0Rs_(Register Rs, Register Rd); |
| 171 |
| 172 void movb_incRs_(Register Rs, Register Rd); |
| 173 |
| 174 void movb_indRs_(Register Rs, Register Rd); |
| 175 |
| 176 void movb_R0_dispRd_(int imm, Register Rd); |
| 177 |
| 178 void movb_R0_dispGBR_(int imm); |
| 179 |
| 180 void movl_dispRd_(Register Rs, int imm, Register Rd); |
| 181 |
| 182 void movl_dispR0Rd_(Register Rs, Register Rd); |
| 183 |
| 184 void movl_decRd_(Register Rs, Register Rd); |
| 185 |
| 186 void movl_indRd_(Register Rs, Register Rd); |
| 187 |
| 188 void movl_dispRs_(int imm, Register Rs, Register Rd); |
| 189 |
| 190 void movl_dispGBR_R0_(int imm); |
| 191 |
| 192 void movl_dispPC_(int imm, Register Rd); |
| 193 |
| 194 void movl_dispR0Rs_(Register Rs, Register Rd); |
| 195 |
| 196 void movl_incRs_(Register Rs, Register Rd); |
| 197 |
| 198 void movl_indRs_(Register Rs, Register Rd); |
| 199 |
| 200 void movl_R0_dispGBR_(int imm); |
| 201 |
| 202 void movw_dispR0Rd_(Register Rs, Register Rd); |
| 203 |
| 204 void movw_decRd_(Register Rs, Register Rd); |
| 205 |
| 206 void movw_indRd_(Register Rs, Register Rd); |
| 207 |
| 208 void movw_dispRs_R0_(int imm, Register Rs); |
| 209 |
| 210 void movw_dispGBR_R0_(int imm); |
| 211 |
| 212 void movw_dispPC_(int imm, Register Rd); |
| 213 |
| 214 void movw_dispR0Rs_(Register Rs, Register Rd); |
| 215 |
| 216 void movw_incRs_(Register Rs, Register Rd); |
| 217 |
| 218 void movw_indRs_(Register Rs, Register Rd); |
| 219 |
| 220 void movw_R0_dispRd_(int imm, Register Rd); |
| 221 |
| 222 void movw_R0_dispGBR_(int imm); |
| 223 |
| 224 void mova_dispPC_R0_(int imm); |
| 225 |
| 226 void movcal_R0_indRd_(Register Rd); |
| 227 |
| 228 void movcol_R0_indRd_(Register Rd); |
| 229 |
| 230 void movlil_indRs_R0_(Register Rs); |
| 231 |
| 232 void movt_(Register Rd); |
| 233 |
| 234 void movual_indRs_R0_(Register Rs); |
| 235 |
| 236 void movual_incRs_R0_(Register Rs); |
| 237 |
| 238 void mulsw_(Register Rs, Register Rd); |
| 239 |
| 240 void muls_(Register Rs, Register Rd); |
| 241 |
| 242 void mull_(Register Rs, Register Rd); |
| 243 |
| 244 void muluw_(Register Rs, Register Rd); |
| 245 |
| 246 void mulu_(Register Rs, Register Rd); |
| 247 |
| 248 void neg_(Register Rs, Register Rd); |
| 249 |
| 250 void negc_(Register Rs, Register Rd); |
| 251 |
| 252 void nop_(); |
| 253 |
| 254 void not_(Register Rs, Register Rd); |
| 255 |
| 256 void ocbi_indRd_(Register Rd); |
| 257 |
| 258 void ocbp_indRd_(Register Rd); |
| 259 |
| 260 void ocbwb_indRd_(Register Rd); |
| 261 |
| 262 void or_imm_R0_(int imm); |
| 263 |
| 264 void or_(Register Rs, Register Rd); |
| 265 |
| 266 void orb_imm_dispR0GBR_(int imm); |
| 267 |
| 268 void pref_indRd_(Register Rd); |
| 269 |
| 270 void prefi_indRd_(Register Rd); |
| 271 |
| 272 void rotcl_(Register Rd); |
| 273 |
| 274 void rotcr_(Register Rd); |
| 275 |
| 276 void rotl_(Register Rd); |
| 277 |
| 278 void rotr_(Register Rd); |
| 279 |
| 280 void rte_(); |
| 281 |
| 282 void rts_(); |
| 283 |
| 284 void sets_(); |
| 285 |
| 286 void sett_(); |
| 287 |
| 288 void shad_(Register Rs, Register Rd); |
| 289 |
| 290 void shld_(Register Rs, Register Rd); |
| 291 |
| 292 void shal_(Register Rd); |
| 293 |
| 294 void shar_(Register Rd); |
| 295 |
| 296 void shll_(Register Rd); |
| 297 |
| 298 void shll16_(Register Rd); |
| 299 |
| 300 void shll2_(Register Rd); |
| 301 |
| 302 void shll8_(Register Rd); |
| 303 |
| 304 void shlr_(Register Rd); |
| 305 |
| 306 void shlr16_(Register Rd); |
| 307 |
| 308 void shlr2_(Register Rd); |
| 309 |
| 310 void shlr8_(Register Rd); |
| 311 |
| 312 void sleep_(); |
| 313 |
| 314 void stc_SR_(Register Rd); |
| 315 |
| 316 void stc_GBR_(Register Rd); |
| 317 |
| 318 void stc_VBR_(Register Rd); |
| 319 |
| 320 void stc_SSR_(Register Rd); |
| 321 |
| 322 void stc_SPC_(Register Rd); |
| 323 |
| 324 void stc_SGR_(Register Rd); |
| 325 |
| 326 void stc_DBR_(Register Rd); |
| 327 |
| 328 void stc_bank_(int imm, Register Rd); |
| 329 |
| 330 void stcl_SR_decRd_(Register Rd); |
| 331 |
| 332 void stcl_VBR_decRd_(Register Rd); |
| 333 |
| 334 void stcl_SSR_decRd_(Register Rd); |
| 335 |
| 336 void stcl_SPC_decRd_(Register Rd); |
| 337 |
| 338 void stcl_GBR_decRd_(Register Rd); |
| 339 |
| 340 void stcl_SGR_decRd_(Register Rd); |
| 341 |
| 342 void stcl_DBR_decRd_(Register Rd); |
| 343 |
| 344 void stcl_bank_decRd_(int imm, Register Rd); |
| 345 |
| 346 void sts_MACH_(Register Rd); |
| 347 |
| 348 void sts_MACL_(Register Rd); |
| 349 |
| 350 void sts_PR_(Register Rd); |
| 351 |
| 352 void sts_FPUL_(Register Rd); |
| 353 |
| 354 void sts_FPSCR_(Register Rd); |
| 355 |
| 356 void stsl_MACH_decRd_(Register Rd); |
| 357 |
| 358 void stsl_MACL_decRd_(Register Rd); |
| 359 |
| 360 void stsl_PR_decRd_(Register Rd); |
| 361 |
| 362 void stsl_FPUL_decRd_(Register Rd); |
| 363 |
| 364 void stsl_FPSCR_decRd_(Register Rd); |
| 365 |
| 366 void sub_(Register Rs, Register Rd); |
| 367 |
| 368 void subc_(Register Rs, Register Rd); |
| 369 |
| 370 void subv_(Register Rs, Register Rd); |
| 371 |
| 372 void swapb_(Register Rs, Register Rd); |
| 373 |
| 374 void swapw_(Register Rs, Register Rd); |
| 375 |
| 376 void synco_(); |
| 377 |
| 378 void tasb_indRd_(Register Rd); |
| 379 |
| 380 void trapa_imm_(int imm); |
| 381 |
| 382 void tst_imm_R0_(int imm); |
| 383 |
| 384 void tst_(Register Rs, Register Rd); |
| 385 |
| 386 void tstb_imm_dispR0GBR_(int imm); |
| 387 |
| 388 void xor_imm_R0_(int imm); |
| 389 |
| 390 void xor_(Register Rs, Register Rd); |
| 391 |
| 392 void xorb_imm_dispR0GBR_(int imm); |
| 393 |
| 394 void xtrct_(Register Rs, Register Rd); |
| 395 |
| 396 void dt_(Register Rd); |
| 397 |
| 398 void dmulsl_(Register Rs, Register Rd); |
| 399 |
| 400 void dmulul_(Register Rs, Register Rd); |
| 401 |
| 402 void macl_incRs_incRd_(Register Rs, Register Rd); |
| 403 |
| 404 void braf_(Register Rd); |
| 405 |
| 406 void bsrf_(Register Rd); |
| 407 |
| 408 void fabs_(SwVfpRegister Rd); |
| 409 |
| 410 void fabs_double_(DwVfpRegister Rd); |
| 411 |
| 412 void fadd_(SwVfpRegister Rs, SwVfpRegister Rd); |
| 413 |
| 414 void fadd_double_(DwVfpRegister Rs, DwVfpRegister Rd); |
| 415 |
| 416 void fcmpeq_(SwVfpRegister Rs, SwVfpRegister Rd); |
| 417 |
| 418 void fcmpeq_double_(DwVfpRegister Rs, DwVfpRegister Rd); |
| 419 |
| 420 void fcmpgt_(SwVfpRegister Rs, SwVfpRegister Rd); |
| 421 |
| 422 void fcmpgt_double_(DwVfpRegister Rs, DwVfpRegister Rd); |
| 423 |
| 424 void fcnvds_double_FPUL_(DwVfpRegister Rd); |
| 425 |
| 426 void fcnvsd_FPUL_double_(DwVfpRegister Rd); |
| 427 |
| 428 void fdiv_(SwVfpRegister Rs, SwVfpRegister Rd); |
| 429 |
| 430 void fdiv_double_(DwVfpRegister Rs, DwVfpRegister Rd); |
| 431 |
| 432 void fipr_(SwVfpRegister Rs, SwVfpRegister Rd); |
| 433 |
| 434 void fldi0_(SwVfpRegister Rd); |
| 435 |
| 436 void fldi1_(SwVfpRegister Rd); |
| 437 |
| 438 void flds_FPUL_(SwVfpRegister Rd); |
| 439 |
| 440 void float_FPUL_(SwVfpRegister Rd); |
| 441 |
| 442 void float_FPUL_double_(DwVfpRegister Rd); |
| 443 |
| 444 void fmac_(SwVfpRegister Rs, SwVfpRegister Rd); |
| 445 |
| 446 void fmov_(SwVfpRegister Rs, SwVfpRegister Rd); |
| 447 |
| 448 void fmov_Xdouble_Xdouble_(DwVfpRegister Rs, DwVfpRegister Rd); |
| 449 |
| 450 void fmov_indRs_(Register Rs, SwVfpRegister Rd); |
| 451 |
| 452 void fmov_indRs_Xdouble_(Register Rs, DwVfpRegister Rd); |
| 453 |
| 454 void fmov_indRd_(SwVfpRegister Rs, Register Rd); |
| 455 |
| 456 void fmov_Xdouble_indRd_(DwVfpRegister Rs, Register Rd); |
| 457 |
| 458 void fmov_incRs_(Register Rs, SwVfpRegister Rd); |
| 459 |
| 460 void fmov_decRd_(SwVfpRegister Rs, Register Rd); |
| 461 |
| 462 void fmov_dispR0Rs_(Register Rs, SwVfpRegister Rd); |
| 463 |
| 464 void fmov_dispR0Rs_Xdouble_(Register Rs, DwVfpRegister Rd); |
| 465 |
| 466 void fmov_dispR0Rd_(SwVfpRegister Rs, Register Rd); |
| 467 |
| 468 void fmov_Xdouble_dispR0Rd_(DwVfpRegister Rs, Register Rd); |
| 469 |
| 470 void fmovd_indRs_Xdouble_(Register Rs, DwVfpRegister Rd); |
| 471 |
| 472 void fmovd_Xdouble_indRd_(DwVfpRegister Rs, Register Rd); |
| 473 |
| 474 void fmovd_incRs_Xdouble_(Register Rs, DwVfpRegister Rd); |
| 475 |
| 476 void fmovd_Xdouble_decRd_(DwVfpRegister Rs, Register Rd); |
| 477 |
| 478 void fmovd_dispR0Rs_Xdouble_(Register Rs, DwVfpRegister Rd); |
| 479 |
| 480 void fmovd_Xdouble_dispR0Rd_(DwVfpRegister Rs, Register Rd); |
| 481 |
| 482 void fmovs_indRs_(Register Rs, SwVfpRegister Rd); |
| 483 |
| 484 void fmovs_indRd_(SwVfpRegister Rs, Register Rd); |
| 485 |
| 486 void fmovs_incRs_(Register Rs, SwVfpRegister Rd); |
| 487 |
| 488 void fmovs_decRd_(SwVfpRegister Rs, Register Rd); |
| 489 |
| 490 void fmovs_dispR0Rs_(Register Rs, SwVfpRegister Rd); |
| 491 |
| 492 void fmovs_dispR0Rd_(SwVfpRegister Rs, Register Rd); |
| 493 |
| 494 void fmul_(SwVfpRegister Rs, SwVfpRegister Rd); |
| 495 |
| 496 void fmul_double_(DwVfpRegister Rs, DwVfpRegister Rd); |
| 497 |
| 498 void fneg_(SwVfpRegister Rd); |
| 499 |
| 500 void fneg_double_(DwVfpRegister Rd); |
| 501 |
| 502 void fpchg_(); |
| 503 |
| 504 void frchg_(); |
| 505 |
| 506 void fsca_FPUL_double_(DwVfpRegister Rd); |
| 507 |
| 508 void fschg_(); |
| 509 |
| 510 void fsqrt_(SwVfpRegister Rd); |
| 511 |
| 512 void fsqrt_double_(DwVfpRegister Rd); |
| 513 |
| 514 void fsrra_(SwVfpRegister Rd); |
| 515 |
| 516 void fsts_FPUL_(SwVfpRegister Rd); |
| 517 |
| 518 void fsub_(SwVfpRegister Rs, SwVfpRegister Rd); |
| 519 |
| 520 void fsub_double_(DwVfpRegister Rs, DwVfpRegister Rd); |
| 521 |
| 522 void ftrc_FPUL_(SwVfpRegister Rd); |
| 523 |
| 524 void ftrc_double_FPUL_(DwVfpRegister Rd); |
| 525 |
| 526 void ftrv_(Register Rd); |
OLD | NEW |