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 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
351 __ nop(); | 351 __ nop(); |
352 { | 352 { |
353 if (CpuFeatures::IsSupported(SSE2)) { | 353 if (CpuFeatures::IsSupported(SSE2)) { |
354 CpuFeatureScope fscope(&assm, SSE2); | 354 CpuFeatureScope fscope(&assm, SSE2); |
355 __ cvttss2si(edx, Operand(ebx, ecx, times_4, 10000)); | 355 __ cvttss2si(edx, Operand(ebx, ecx, times_4, 10000)); |
356 __ cvtsi2sd(xmm1, Operand(ebx, ecx, times_4, 10000)); | 356 __ cvtsi2sd(xmm1, Operand(ebx, ecx, times_4, 10000)); |
357 __ addsd(xmm1, xmm0); | 357 __ addsd(xmm1, xmm0); |
358 __ mulsd(xmm1, xmm0); | 358 __ mulsd(xmm1, xmm0); |
359 __ subsd(xmm1, xmm0); | 359 __ subsd(xmm1, xmm0); |
360 __ divsd(xmm1, xmm0); | 360 __ divsd(xmm1, xmm0); |
361 __ movdbl(xmm1, Operand(ebx, ecx, times_4, 10000)); | 361 __ movsd(xmm1, Operand(ebx, ecx, times_4, 10000)); |
362 __ movdbl(Operand(ebx, ecx, times_4, 10000), xmm1); | 362 __ movsd(Operand(ebx, ecx, times_4, 10000), xmm1); |
363 __ ucomisd(xmm0, xmm1); | 363 __ ucomisd(xmm0, xmm1); |
364 | 364 |
365 // 128 bit move instructions. | 365 // 128 bit move instructions. |
366 __ movdqa(xmm0, Operand(ebx, ecx, times_4, 10000)); | 366 __ movdqa(xmm0, Operand(ebx, ecx, times_4, 10000)); |
367 __ movdqa(Operand(ebx, ecx, times_4, 10000), xmm0); | 367 __ movdqa(Operand(ebx, ecx, times_4, 10000), xmm0); |
368 __ movdqu(xmm0, Operand(ebx, ecx, times_4, 10000)); | 368 __ movdqu(xmm0, Operand(ebx, ecx, times_4, 10000)); |
369 __ movdqu(Operand(ebx, ecx, times_4, 10000), xmm0); | 369 __ movdqu(Operand(ebx, ecx, times_4, 10000), xmm0); |
370 } | 370 } |
371 } | 371 } |
372 | 372 |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
449 CHECK(code->IsCode()); | 449 CHECK(code->IsCode()); |
450 #ifdef OBJECT_PRINT | 450 #ifdef OBJECT_PRINT |
451 Code::cast(code)->Print(); | 451 Code::cast(code)->Print(); |
452 byte* begin = Code::cast(code)->instruction_start(); | 452 byte* begin = Code::cast(code)->instruction_start(); |
453 byte* end = begin + Code::cast(code)->instruction_size(); | 453 byte* end = begin + Code::cast(code)->instruction_size(); |
454 disasm::Disassembler::Disassemble(stdout, begin, end); | 454 disasm::Disassembler::Disassemble(stdout, begin, end); |
455 #endif | 455 #endif |
456 } | 456 } |
457 | 457 |
458 #undef __ | 458 #undef __ |
OLD | NEW |