| 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 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 397 | 397 |
| 398 // Arithmetic operation | 398 // Arithmetic operation |
| 399 __ addss(xmm1, xmm0); | 399 __ addss(xmm1, xmm0); |
| 400 __ addss(xmm1, Operand(rbx, rcx, times_4, 10000)); | 400 __ addss(xmm1, Operand(rbx, rcx, times_4, 10000)); |
| 401 __ mulss(xmm1, xmm0); | 401 __ mulss(xmm1, xmm0); |
| 402 __ mulss(xmm1, Operand(rbx, rcx, times_4, 10000)); | 402 __ mulss(xmm1, Operand(rbx, rcx, times_4, 10000)); |
| 403 __ subss(xmm1, xmm0); | 403 __ subss(xmm1, xmm0); |
| 404 __ subss(xmm1, Operand(rbx, rcx, times_4, 10000)); | 404 __ subss(xmm1, Operand(rbx, rcx, times_4, 10000)); |
| 405 __ divss(xmm1, xmm0); | 405 __ divss(xmm1, xmm0); |
| 406 __ divss(xmm1, Operand(rbx, rcx, times_4, 10000)); | 406 __ divss(xmm1, Operand(rbx, rcx, times_4, 10000)); |
| 407 __ maxss(xmm1, xmm0); |
| 408 __ maxss(xmm1, Operand(rbx, rcx, times_4, 10000)); |
| 409 __ minss(xmm1, xmm0); |
| 410 __ minss(xmm1, Operand(rbx, rcx, times_4, 10000)); |
| 407 __ addps(xmm1, xmm0); | 411 __ addps(xmm1, xmm0); |
| 408 __ addps(xmm1, Operand(rbx, rcx, times_4, 10000)); | 412 __ addps(xmm1, Operand(rbx, rcx, times_4, 10000)); |
| 409 __ subps(xmm1, xmm0); | 413 __ subps(xmm1, xmm0); |
| 410 __ subps(xmm1, Operand(rbx, rcx, times_4, 10000)); | 414 __ subps(xmm1, Operand(rbx, rcx, times_4, 10000)); |
| 411 __ mulps(xmm1, xmm0); | 415 __ mulps(xmm1, xmm0); |
| 412 __ mulps(xmm1, Operand(rbx, rcx, times_4, 10000)); | 416 __ mulps(xmm1, Operand(rbx, rcx, times_4, 10000)); |
| 413 __ divps(xmm1, xmm0); | 417 __ divps(xmm1, xmm0); |
| 414 __ divps(xmm1, Operand(rbx, rcx, times_4, 10000)); | 418 __ divps(xmm1, Operand(rbx, rcx, times_4, 10000)); |
| 415 | 419 |
| 416 __ ucomiss(xmm0, xmm1); | 420 __ ucomiss(xmm0, xmm1); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 485 __ pextrd(r12, xmm0, 1); | 489 __ pextrd(r12, xmm0, 1); |
| 486 __ pinsrd(xmm9, r9, 0); | 490 __ pinsrd(xmm9, r9, 0); |
| 487 __ pinsrd(xmm5, rax, 1); | 491 __ pinsrd(xmm5, rax, 1); |
| 488 } | 492 } |
| 489 } | 493 } |
| 490 | 494 |
| 491 // AVX instruction | 495 // AVX instruction |
| 492 { | 496 { |
| 493 if (CpuFeatures::IsSupported(AVX)) { | 497 if (CpuFeatures::IsSupported(AVX)) { |
| 494 CpuFeatureScope scope(&assm, AVX); | 498 CpuFeatureScope scope(&assm, AVX); |
| 499 __ vaddss(xmm0, xmm1, xmm2); |
| 500 __ vaddss(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); |
| 501 __ vmulss(xmm0, xmm1, xmm2); |
| 502 __ vmulss(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); |
| 503 __ vsubss(xmm0, xmm1, xmm2); |
| 504 __ vsubss(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); |
| 505 __ vdivss(xmm0, xmm1, xmm2); |
| 506 __ vdivss(xmm0, xmm1, Operand(rbx, rcx, times_2, 10000)); |
| 507 __ vminss(xmm8, xmm1, xmm2); |
| 508 __ vminss(xmm9, xmm1, Operand(rbx, rcx, times_8, 10000)); |
| 509 __ vmaxss(xmm8, xmm1, xmm2); |
| 510 __ vmaxss(xmm9, xmm1, Operand(rbx, rcx, times_1, 10000)); |
| 511 __ vucomiss(xmm9, xmm1); |
| 512 __ vucomiss(xmm8, Operand(rbx, rdx, times_2, 10981)); |
| 513 |
| 495 __ vaddsd(xmm0, xmm1, xmm2); | 514 __ vaddsd(xmm0, xmm1, xmm2); |
| 496 __ vaddsd(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); | 515 __ vaddsd(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); |
| 497 __ vmulsd(xmm0, xmm1, xmm2); | 516 __ vmulsd(xmm0, xmm1, xmm2); |
| 498 __ vmulsd(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); | 517 __ vmulsd(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); |
| 499 __ vsubsd(xmm0, xmm1, xmm2); | 518 __ vsubsd(xmm0, xmm1, xmm2); |
| 500 __ vsubsd(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); | 519 __ vsubsd(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); |
| 501 __ vdivsd(xmm0, xmm1, xmm2); | 520 __ vdivsd(xmm0, xmm1, xmm2); |
| 502 __ vdivsd(xmm0, xmm1, Operand(rbx, rcx, times_2, 10000)); | 521 __ vdivsd(xmm0, xmm1, Operand(rbx, rcx, times_2, 10000)); |
| 503 __ vminsd(xmm8, xmm1, xmm2); | 522 __ vminsd(xmm8, xmm1, xmm2); |
| 504 __ vminsd(xmm9, xmm1, Operand(rbx, rcx, times_8, 10000)); | 523 __ vminsd(xmm9, xmm1, Operand(rbx, rcx, times_8, 10000)); |
| 505 __ vmaxsd(xmm8, xmm1, xmm2); | 524 __ vmaxsd(xmm8, xmm1, xmm2); |
| 506 __ vmaxsd(xmm9, xmm1, Operand(rbx, rcx, times_1, 10000)); | 525 __ vmaxsd(xmm9, xmm1, Operand(rbx, rcx, times_1, 10000)); |
| 526 __ vucomisd(xmm9, xmm1); |
| 527 __ vucomisd(xmm8, Operand(rbx, rdx, times_2, 10981)); |
| 507 } | 528 } |
| 508 } | 529 } |
| 509 | 530 |
| 510 // FMA3 instruction | 531 // FMA3 instruction |
| 511 { | 532 { |
| 512 if (CpuFeatures::IsSupported(FMA3)) { | 533 if (CpuFeatures::IsSupported(FMA3)) { |
| 513 CpuFeatureScope scope(&assm, FMA3); | 534 CpuFeatureScope scope(&assm, FMA3); |
| 514 __ vfmadd132sd(xmm0, xmm1, xmm2); | 535 __ vfmadd132sd(xmm0, xmm1, xmm2); |
| 515 __ vfmadd132sd(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); | 536 __ vfmadd132sd(xmm0, xmm1, Operand(rbx, rcx, times_4, 10000)); |
| 516 __ vfmadd213sd(xmm0, xmm1, xmm2); | 537 __ vfmadd213sd(xmm0, xmm1, xmm2); |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 598 #ifdef OBJECT_PRINT | 619 #ifdef OBJECT_PRINT |
| 599 OFStream os(stdout); | 620 OFStream os(stdout); |
| 600 code->Print(os); | 621 code->Print(os); |
| 601 byte* begin = code->instruction_start(); | 622 byte* begin = code->instruction_start(); |
| 602 byte* end = begin + code->instruction_size(); | 623 byte* end = begin + code->instruction_size(); |
| 603 disasm::Disassembler::Disassemble(stdout, begin, end); | 624 disasm::Disassembler::Disassemble(stdout, begin, end); |
| 604 #endif | 625 #endif |
| 605 } | 626 } |
| 606 | 627 |
| 607 #undef __ | 628 #undef __ |
| OLD | NEW |