| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 421 __ subps(xmm1, xmm0); | 421 __ subps(xmm1, xmm0); |
| 422 __ subps(xmm1, Operand(ebx, ecx, times_4, 10000)); | 422 __ subps(xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 423 __ mulps(xmm1, xmm0); | 423 __ mulps(xmm1, xmm0); |
| 424 __ mulps(xmm1, Operand(ebx, ecx, times_4, 10000)); | 424 __ mulps(xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 425 __ divps(xmm1, xmm0); | 425 __ divps(xmm1, xmm0); |
| 426 __ divps(xmm1, Operand(ebx, ecx, times_4, 10000)); | 426 __ divps(xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 427 __ minps(xmm1, xmm0); | 427 __ minps(xmm1, xmm0); |
| 428 __ minps(xmm1, Operand(ebx, ecx, times_4, 10000)); | 428 __ minps(xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 429 __ maxps(xmm1, xmm0); | 429 __ maxps(xmm1, xmm0); |
| 430 __ maxps(xmm1, Operand(ebx, ecx, times_4, 10000)); | 430 __ maxps(xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 431 __ rcpps(xmm1, xmm0); |
| 432 __ rcpps(xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 433 __ rsqrtps(xmm1, xmm0); |
| 434 __ rsqrtps(xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 431 | 435 |
| 432 __ cmpeqps(xmm5, xmm1); | 436 __ cmpeqps(xmm5, xmm1); |
| 433 __ cmpeqps(xmm5, Operand(ebx, ecx, times_4, 10000)); | 437 __ cmpeqps(xmm5, Operand(ebx, ecx, times_4, 10000)); |
| 434 __ cmpltps(xmm5, xmm1); | 438 __ cmpltps(xmm5, xmm1); |
| 435 __ cmpltps(xmm5, Operand(ebx, ecx, times_4, 10000)); | 439 __ cmpltps(xmm5, Operand(ebx, ecx, times_4, 10000)); |
| 436 __ cmpleps(xmm5, xmm1); | 440 __ cmpleps(xmm5, xmm1); |
| 437 __ cmpleps(xmm5, Operand(ebx, ecx, times_4, 10000)); | 441 __ cmpleps(xmm5, Operand(ebx, ecx, times_4, 10000)); |
| 438 __ cmpneqps(xmm5, xmm1); | 442 __ cmpneqps(xmm5, xmm1); |
| 439 __ cmpneqps(xmm5, Operand(ebx, ecx, times_4, 10000)); | 443 __ cmpneqps(xmm5, Operand(ebx, ecx, times_4, 10000)); |
| 440 | 444 |
| 441 __ ucomiss(xmm0, xmm1); | 445 __ ucomiss(xmm0, xmm1); |
| 442 __ ucomiss(xmm0, Operand(ebx, ecx, times_4, 10000)); | 446 __ ucomiss(xmm0, Operand(ebx, ecx, times_4, 10000)); |
| 443 } | 447 } |
| 444 { | 448 { |
| 445 __ cvttss2si(edx, Operand(ebx, ecx, times_4, 10000)); | 449 __ cvttss2si(edx, Operand(ebx, ecx, times_4, 10000)); |
| 446 __ cvtsi2sd(xmm1, Operand(ebx, ecx, times_4, 10000)); | 450 __ cvtsi2sd(xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 447 __ cvtss2sd(xmm1, Operand(ebx, ecx, times_4, 10000)); | 451 __ cvtss2sd(xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 448 __ cvtss2sd(xmm1, xmm0); | 452 __ cvtss2sd(xmm1, xmm0); |
| 453 __ cvtdq2ps(xmm1, xmm0); |
| 454 __ cvtdq2ps(xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 455 __ cvttps2dq(xmm1, xmm0); |
| 456 __ cvttps2dq(xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 449 __ movsd(xmm1, Operand(ebx, ecx, times_4, 10000)); | 457 __ movsd(xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 450 __ movsd(Operand(ebx, ecx, times_4, 10000), xmm1); | 458 __ movsd(Operand(ebx, ecx, times_4, 10000), xmm1); |
| 451 // 128 bit move instructions. | 459 // 128 bit move instructions. |
| 452 __ movdqa(xmm0, Operand(ebx, ecx, times_4, 10000)); | 460 __ movdqa(xmm0, Operand(ebx, ecx, times_4, 10000)); |
| 453 __ movdqa(Operand(ebx, ecx, times_4, 10000), xmm0); | 461 __ movdqa(Operand(ebx, ecx, times_4, 10000), xmm0); |
| 454 __ movdqu(xmm0, Operand(ebx, ecx, times_4, 10000)); | 462 __ movdqu(xmm0, Operand(ebx, ecx, times_4, 10000)); |
| 455 __ movdqu(Operand(ebx, ecx, times_4, 10000), xmm0); | 463 __ movdqu(Operand(ebx, ecx, times_4, 10000), xmm0); |
| 456 | 464 |
| 457 __ addsd(xmm1, xmm0); | 465 __ addsd(xmm1, xmm0); |
| 458 __ addsd(xmm1, Operand(ebx, ecx, times_4, 10000)); | 466 __ addsd(xmm1, Operand(ebx, ecx, times_4, 10000)); |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 568 __ vmulps(xmm0, xmm1, xmm2); | 576 __ vmulps(xmm0, xmm1, xmm2); |
| 569 __ vmulps(xmm0, xmm1, Operand(ebx, ecx, times_4, 10000)); | 577 __ vmulps(xmm0, xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 570 __ vsubps(xmm0, xmm1, xmm2); | 578 __ vsubps(xmm0, xmm1, xmm2); |
| 571 __ vsubps(xmm0, xmm1, Operand(ebx, ecx, times_4, 10000)); | 579 __ vsubps(xmm0, xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 572 __ vminps(xmm0, xmm1, xmm2); | 580 __ vminps(xmm0, xmm1, xmm2); |
| 573 __ vminps(xmm0, xmm1, Operand(ebx, ecx, times_4, 10000)); | 581 __ vminps(xmm0, xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 574 __ vdivps(xmm0, xmm1, xmm2); | 582 __ vdivps(xmm0, xmm1, xmm2); |
| 575 __ vdivps(xmm0, xmm1, Operand(ebx, ecx, times_4, 10000)); | 583 __ vdivps(xmm0, xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 576 __ vmaxps(xmm0, xmm1, xmm2); | 584 __ vmaxps(xmm0, xmm1, xmm2); |
| 577 __ vmaxps(xmm0, xmm1, Operand(ebx, ecx, times_4, 10000)); | 585 __ vmaxps(xmm0, xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 586 __ vrcpps(xmm1, xmm0); |
| 587 __ vrcpps(xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 588 __ vrsqrtps(xmm1, xmm0); |
| 589 __ vrsqrtps(xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 578 | 590 |
| 579 __ vcmpeqps(xmm5, xmm4, xmm1); | 591 __ vcmpeqps(xmm5, xmm4, xmm1); |
| 580 __ vcmpeqps(xmm5, xmm4, Operand(ebx, ecx, times_4, 10000)); | 592 __ vcmpeqps(xmm5, xmm4, Operand(ebx, ecx, times_4, 10000)); |
| 581 __ vcmpltps(xmm5, xmm4, xmm1); | 593 __ vcmpltps(xmm5, xmm4, xmm1); |
| 582 __ vcmpltps(xmm5, xmm4, Operand(ebx, ecx, times_4, 10000)); | 594 __ vcmpltps(xmm5, xmm4, Operand(ebx, ecx, times_4, 10000)); |
| 583 __ vcmpleps(xmm5, xmm4, xmm1); | 595 __ vcmpleps(xmm5, xmm4, xmm1); |
| 584 __ vcmpleps(xmm5, xmm4, Operand(ebx, ecx, times_4, 10000)); | 596 __ vcmpleps(xmm5, xmm4, Operand(ebx, ecx, times_4, 10000)); |
| 585 __ vcmpneqps(xmm5, xmm4, xmm1); | 597 __ vcmpneqps(xmm5, xmm4, xmm1); |
| 586 __ vcmpneqps(xmm5, xmm4, Operand(ebx, ecx, times_4, 10000)); | 598 __ vcmpneqps(xmm5, xmm4, Operand(ebx, ecx, times_4, 10000)); |
| 587 | 599 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 601 __ vdivpd(xmm0, xmm1, Operand(ebx, ecx, times_4, 10000)); | 613 __ vdivpd(xmm0, xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 602 __ vmaxpd(xmm0, xmm1, xmm2); | 614 __ vmaxpd(xmm0, xmm1, xmm2); |
| 603 __ vmaxpd(xmm0, xmm1, Operand(ebx, ecx, times_4, 10000)); | 615 __ vmaxpd(xmm0, xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 604 | 616 |
| 605 __ vpsllw(xmm0, xmm7, 21); | 617 __ vpsllw(xmm0, xmm7, 21); |
| 606 __ vpslld(xmm0, xmm7, 21); | 618 __ vpslld(xmm0, xmm7, 21); |
| 607 __ vpsrlw(xmm0, xmm7, 21); | 619 __ vpsrlw(xmm0, xmm7, 21); |
| 608 __ vpsrld(xmm0, xmm7, 21); | 620 __ vpsrld(xmm0, xmm7, 21); |
| 609 __ vpsraw(xmm0, xmm7, 21); | 621 __ vpsraw(xmm0, xmm7, 21); |
| 610 __ vpsrad(xmm0, xmm7, 21); | 622 __ vpsrad(xmm0, xmm7, 21); |
| 623 |
| 624 __ vcvtdq2ps(xmm1, xmm0); |
| 625 __ vcvtdq2ps(xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 626 __ vcvttps2dq(xmm1, xmm0); |
| 627 __ vcvttps2dq(xmm1, Operand(ebx, ecx, times_4, 10000)); |
| 628 |
| 611 #define EMIT_SSE2_AVXINSTR(instruction, notUsed1, notUsed2, notUsed3) \ | 629 #define EMIT_SSE2_AVXINSTR(instruction, notUsed1, notUsed2, notUsed3) \ |
| 612 __ v##instruction(xmm7, xmm5, xmm1); \ | 630 __ v##instruction(xmm7, xmm5, xmm1); \ |
| 613 __ v##instruction(xmm7, xmm5, Operand(edx, 4)); | 631 __ v##instruction(xmm7, xmm5, Operand(edx, 4)); |
| 614 | 632 |
| 615 SSE2_INSTRUCTION_LIST(EMIT_SSE2_AVXINSTR) | 633 SSE2_INSTRUCTION_LIST(EMIT_SSE2_AVXINSTR) |
| 616 #undef EMIT_SSE2_AVXINSTR | 634 #undef EMIT_SSE2_AVXINSTR |
| 617 | 635 |
| 618 #define EMIT_SSE4_AVXINSTR(instruction, notUsed1, notUsed2, notUsed3, \ | 636 #define EMIT_SSE4_AVXINSTR(instruction, notUsed1, notUsed2, notUsed3, \ |
| 619 notUsed4) \ | 637 notUsed4) \ |
| 620 __ v##instruction(xmm7, xmm5, xmm1); \ | 638 __ v##instruction(xmm7, xmm5, xmm1); \ |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 788 #ifdef OBJECT_PRINT | 806 #ifdef OBJECT_PRINT |
| 789 OFStream os(stdout); | 807 OFStream os(stdout); |
| 790 code->Print(os); | 808 code->Print(os); |
| 791 byte* begin = code->instruction_start(); | 809 byte* begin = code->instruction_start(); |
| 792 byte* end = begin + code->instruction_size(); | 810 byte* end = begin + code->instruction_size(); |
| 793 disasm::Disassembler::Disassemble(stdout, begin, end); | 811 disasm::Disassembler::Disassemble(stdout, begin, end); |
| 794 #endif | 812 #endif |
| 795 } | 813 } |
| 796 | 814 |
| 797 #undef __ | 815 #undef __ |
| OLD | NEW |