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 478 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
489 __ pextrd(r12, xmm0, 1); | 489 __ pextrd(r12, xmm0, 1); |
490 __ pinsrd(xmm9, r9, 0); | 490 __ pinsrd(xmm9, r9, 0); |
491 __ pinsrd(xmm5, rax, 1); | 491 __ pinsrd(xmm5, rax, 1); |
492 } | 492 } |
493 } | 493 } |
494 | 494 |
495 // AVX instruction | 495 // AVX instruction |
496 { | 496 { |
497 if (CpuFeatures::IsSupported(AVX)) { | 497 if (CpuFeatures::IsSupported(AVX)) { |
498 CpuFeatureScope scope(&assm, AVX); | 498 CpuFeatureScope scope(&assm, AVX); |
| 499 __ vmovss(xmm6, xmm14, xmm2); |
| 500 __ vmovss(xmm9, Operand(rbx, rcx, times_4, 10000)); |
| 501 __ vmovss(Operand(rbx, rcx, times_4, 10000), xmm0); |
| 502 |
499 __ vaddss(xmm0, xmm1, xmm2); | 503 __ vaddss(xmm0, xmm1, xmm2); |
500 __ vaddss(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); | 504 __ vaddss(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); |
501 __ vmulss(xmm0, xmm1, xmm2); | 505 __ vmulss(xmm0, xmm1, xmm2); |
502 __ vmulss(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); | 506 __ vmulss(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); |
503 __ vsubss(xmm0, xmm1, xmm2); | 507 __ vsubss(xmm0, xmm1, xmm2); |
504 __ vsubss(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); | 508 __ vsubss(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); |
505 __ vdivss(xmm0, xmm1, xmm2); | 509 __ vdivss(xmm0, xmm1, xmm2); |
506 __ vdivss(xmm0, xmm1, Operand(rbx, rcx, times_2, 10000)); | 510 __ vdivss(xmm0, xmm1, Operand(rbx, rcx, times_2, 10000)); |
507 __ vminss(xmm8, xmm1, xmm2); | 511 __ vminss(xmm8, xmm1, xmm2); |
508 __ vminss(xmm9, xmm1, Operand(rbx, rcx, times_8, 10000)); | 512 __ vminss(xmm9, xmm1, Operand(rbx, rcx, times_8, 10000)); |
509 __ vmaxss(xmm8, xmm1, xmm2); | 513 __ vmaxss(xmm8, xmm1, xmm2); |
510 __ vmaxss(xmm9, xmm1, Operand(rbx, rcx, times_1, 10000)); | 514 __ vmaxss(xmm9, xmm1, Operand(rbx, rcx, times_1, 10000)); |
511 __ vmovss(xmm9, Operand(r11, rcx, times_8, -10000)); | 515 __ vmovss(xmm9, Operand(r11, rcx, times_8, -10000)); |
512 __ vmovss(Operand(rbx, r9, times_4, 10000), xmm1); | 516 __ vmovss(Operand(rbx, r9, times_4, 10000), xmm1); |
513 __ vucomiss(xmm9, xmm1); | 517 __ vucomiss(xmm9, xmm1); |
514 __ vucomiss(xmm8, Operand(rbx, rdx, times_2, 10981)); | 518 __ vucomiss(xmm8, Operand(rbx, rdx, times_2, 10981)); |
515 | 519 |
516 __ vmovd(xmm5, rdi); | 520 __ vmovd(xmm5, rdi); |
517 __ vmovd(xmm9, Operand(rbx, rcx, times_4, 10000)); | 521 __ vmovd(xmm9, Operand(rbx, rcx, times_4, 10000)); |
518 __ vmovd(r9, xmm6); | 522 __ vmovd(r9, xmm6); |
519 __ vmovq(xmm5, rdi); | 523 __ vmovq(xmm5, rdi); |
520 __ vmovq(xmm9, Operand(rbx, rcx, times_4, 10000)); | 524 __ vmovq(xmm9, Operand(rbx, rcx, times_4, 10000)); |
521 __ vmovq(r9, xmm6); | 525 __ vmovq(r9, xmm6); |
522 | 526 |
523 __ vmovsd(xmm6, xmm2); | 527 __ vmovsd(xmm6, xmm14, xmm2); |
524 __ vmovsd(xmm9, Operand(rbx, rcx, times_4, 10000)); | 528 __ vmovsd(xmm9, Operand(rbx, rcx, times_4, 10000)); |
525 __ vmovsd(Operand(rbx, rcx, times_4, 10000), xmm0); | 529 __ vmovsd(Operand(rbx, rcx, times_4, 10000), xmm0); |
526 | 530 |
527 __ vaddsd(xmm0, xmm1, xmm2); | 531 __ vaddsd(xmm0, xmm1, xmm2); |
528 __ vaddsd(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); | 532 __ vaddsd(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); |
529 __ vmulsd(xmm0, xmm1, xmm2); | 533 __ vmulsd(xmm0, xmm1, xmm2); |
530 __ vmulsd(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); | 534 __ vmulsd(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); |
531 __ vsubsd(xmm0, xmm1, xmm2); | 535 __ vsubsd(xmm0, xmm1, xmm2); |
532 __ vsubsd(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); | 536 __ vsubsd(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); |
533 __ vdivsd(xmm0, xmm1, xmm2); | 537 __ vdivsd(xmm0, xmm1, xmm2); |
534 __ vdivsd(xmm0, xmm1, Operand(rbx, rcx, times_2, 10000)); | 538 __ vdivsd(xmm0, xmm1, Operand(rbx, rcx, times_2, 10000)); |
535 __ vminsd(xmm8, xmm1, xmm2); | 539 __ vminsd(xmm8, xmm1, xmm2); |
536 __ vminsd(xmm9, xmm1, Operand(rbx, rcx, times_8, 10000)); | 540 __ vminsd(xmm9, xmm1, Operand(rbx, rcx, times_8, 10000)); |
537 __ vmaxsd(xmm8, xmm1, xmm2); | 541 __ vmaxsd(xmm8, xmm1, xmm2); |
538 __ vmaxsd(xmm9, xmm1, Operand(rbx, rcx, times_1, 10000)); | 542 __ vmaxsd(xmm9, xmm1, Operand(rbx, rcx, times_1, 10000)); |
539 __ vucomisd(xmm9, xmm1); | 543 __ vucomisd(xmm9, xmm1); |
540 __ vucomisd(xmm8, Operand(rbx, rdx, times_2, 10981)); | 544 __ vucomisd(xmm8, Operand(rbx, rdx, times_2, 10981)); |
541 | 545 |
542 __ vcvtss2sd(xmm4, xmm9, xmm11); | 546 __ vcvtss2sd(xmm4, xmm9, xmm11); |
543 __ vcvtsd2ss(xmm9, xmm3, xmm2); | 547 __ vcvtsd2ss(xmm9, xmm3, xmm2); |
544 __ vcvtss2sd(xmm4, xmm9, Operand(rbx, rcx, times_1, 10000)); | 548 __ vcvtss2sd(xmm4, xmm9, Operand(rbx, rcx, times_1, 10000)); |
545 __ vcvtsd2ss(xmm9, xmm3, Operand(rbx, rcx, times_1, 10000)); | 549 __ vcvtsd2ss(xmm9, xmm3, Operand(rbx, rcx, times_1, 10000)); |
546 __ vcvtlsi2sd(xmm5, xmm9, rcx); | 550 __ vcvtlsi2sd(xmm5, xmm9, rcx); |
547 __ vcvtlsi2sd(xmm9, xmm3, Operand(rbx, r9, times_4, 10000)); | 551 __ vcvtlsi2sd(xmm9, xmm3, Operand(rbx, r9, times_4, 10000)); |
548 __ vcvttsd2si(r9, xmm6); | 552 __ vcvttsd2si(r9, xmm6); |
549 __ vcvttsd2si(rax, Operand(rbx, r9, times_4, 10000)); | 553 __ vcvttsd2si(rax, Operand(rbx, r9, times_4, 10000)); |
550 __ vcvttsd2siq(rdi, xmm9); | 554 __ vcvttsd2siq(rdi, xmm9); |
551 __ vcvttsd2siq(r8, Operand(r9, rbx, times_4, 10000)); | 555 __ vcvttsd2siq(r8, Operand(r9, rbx, times_4, 10000)); |
552 | 556 |
| 557 __ vmovaps(xmm10, xmm11); |
553 __ vmovapd(xmm7, xmm0); | 558 __ vmovapd(xmm7, xmm0); |
554 __ vmovmskpd(r9, xmm4); | 559 __ vmovmskpd(r9, xmm4); |
555 | 560 |
556 __ vandps(xmm0, xmm9, xmm2); | 561 __ vandps(xmm0, xmm9, xmm2); |
557 __ vandps(xmm9, xmm1, Operand(rbx, rcx, times_4, 10000)); | 562 __ vandps(xmm9, xmm1, Operand(rbx, rcx, times_4, 10000)); |
558 __ vxorps(xmm0, xmm1, xmm9); | 563 __ vxorps(xmm0, xmm1, xmm9); |
559 __ vxorps(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); | 564 __ vxorps(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); |
560 | 565 |
561 __ vandpd(xmm0, xmm9, xmm2); | 566 __ vandpd(xmm0, xmm9, xmm2); |
562 __ vandpd(xmm9, xmm1, Operand(rbx, rcx, times_4, 10000)); | 567 __ vandpd(xmm9, xmm1, Operand(rbx, rcx, times_4, 10000)); |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
749 #ifdef OBJECT_PRINT | 754 #ifdef OBJECT_PRINT |
750 OFStream os(stdout); | 755 OFStream os(stdout); |
751 code->Print(os); | 756 code->Print(os); |
752 byte* begin = code->instruction_start(); | 757 byte* begin = code->instruction_start(); |
753 byte* end = begin + code->instruction_size(); | 758 byte* end = begin + code->instruction_size(); |
754 disasm::Disassembler::Disassemble(stdout, begin, end); | 759 disasm::Disassembler::Disassemble(stdout, begin, end); |
755 #endif | 760 #endif |
756 } | 761 } |
757 | 762 |
758 #undef __ | 763 #undef __ |
OLD | NEW |