Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(385)

Side by Side Diff: runtime/vm/assembler_ia32.cc

Issue 9320023: Intrinisifed more core library methods: isNaN, isNegative, cos, sin. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: '' Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/vm/assembler_ia32.h ('k') | runtime/vm/assembler_ia32_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/globals.h" 5 #include "vm/globals.h"
6 #if defined(TARGET_ARCH_IA32) 6 #if defined(TARGET_ARCH_IA32)
7 7
8 #include "vm/assembler.h" 8 #include "vm/assembler.h"
9 #include "vm/heap.h" 9 #include "vm/heap.h"
10 #include "vm/memory_region.h" 10 #include "vm/memory_region.h"
(...skipping 564 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 575
576 void Assembler::comisd(XmmRegister a, XmmRegister b) { 576 void Assembler::comisd(XmmRegister a, XmmRegister b) {
577 AssemblerBuffer::EnsureCapacity ensured(&buffer_); 577 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
578 EmitUint8(0x66); 578 EmitUint8(0x66);
579 EmitUint8(0x0F); 579 EmitUint8(0x0F);
580 EmitUint8(0x2F); 580 EmitUint8(0x2F);
581 EmitXmmRegisterOperand(a, b); 581 EmitXmmRegisterOperand(a, b);
582 } 582 }
583 583
584 584
585 void Assembler::movmskpd(Register dst, XmmRegister src) {
586 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
587 EmitUint8(0x66);
588 EmitUint8(0x0F);
589 EmitUint8(0x50);
590 EmitXmmRegisterOperand(dst, src);
591 }
592
593
585 void Assembler::sqrtsd(XmmRegister dst, XmmRegister src) { 594 void Assembler::sqrtsd(XmmRegister dst, XmmRegister src) {
586 AssemblerBuffer::EnsureCapacity ensured(&buffer_); 595 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
587 EmitUint8(0xF2); 596 EmitUint8(0xF2);
588 EmitUint8(0x0F); 597 EmitUint8(0x0F);
589 EmitUint8(0x51); 598 EmitUint8(0x51);
590 EmitXmmRegisterOperand(dst, src); 599 EmitXmmRegisterOperand(dst, src);
591 } 600 }
592 601
593 602
594 void Assembler::sqrtss(XmmRegister dst, XmmRegister src) { 603 void Assembler::sqrtss(XmmRegister dst, XmmRegister src) {
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
685 } 694 }
686 695
687 696
688 void Assembler::fildl(const Address& src) { 697 void Assembler::fildl(const Address& src) {
689 AssemblerBuffer::EnsureCapacity ensured(&buffer_); 698 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
690 EmitUint8(0xDF); 699 EmitUint8(0xDF);
691 EmitOperand(5, src); 700 EmitOperand(5, src);
692 } 701 }
693 702
694 703
704 void Assembler::filds(const Address& src) {
705 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
706 EmitUint8(0xDB);
707 EmitOperand(0, src);
708 }
709
710
695 void Assembler::fincstp() { 711 void Assembler::fincstp() {
696 AssemblerBuffer::EnsureCapacity ensured(&buffer_); 712 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
697 EmitUint8(0xD9); 713 EmitUint8(0xD9);
698 EmitUint8(0xF7); 714 EmitUint8(0xF7);
699 } 715 }
700 716
701 717
702 void Assembler::ffree(const Immediate& index) { 718 void Assembler::ffree(const Immediate& index) {
703 ASSERT(index.value() < 7); 719 ASSERT(index.value() < 7);
704 AssemblerBuffer::EnsureCapacity ensured(&buffer_); 720 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
(...skipping 839 matching lines...) Expand 10 before | Expand all | Expand 10 after
1544 Register shifter) { 1560 Register shifter) {
1545 AssemblerBuffer::EnsureCapacity ensured(&buffer_); 1561 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
1546 ASSERT(shifter == ECX); 1562 ASSERT(shifter == ECX);
1547 EmitUint8(0xD3); 1563 EmitUint8(0xD3);
1548 EmitOperand(rm, Operand(operand)); 1564 EmitOperand(rm, Operand(operand));
1549 } 1565 }
1550 1566
1551 } // namespace dart 1567 } // namespace dart
1552 1568
1553 #endif // defined TARGET_ARCH_IA32 1569 #endif // defined TARGET_ARCH_IA32
OLDNEW
« no previous file with comments | « runtime/vm/assembler_ia32.h ('k') | runtime/vm/assembler_ia32_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698