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

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

Issue 11043020: Add fast 64-bit bitwise negation to the IA32 optimizing compiler. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: fixed bug in the optimizer that prevented optimization Created 8 years, 2 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
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 779 matching lines...) Expand 10 before | Expand all | Expand 10 after
790 ASSERT(CPUFeatures::sse4_1_supported()); 790 ASSERT(CPUFeatures::sse4_1_supported());
791 AssemblerBuffer::EnsureCapacity ensured(&buffer_); 791 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
792 EmitUint8(0x66); 792 EmitUint8(0x66);
793 EmitUint8(0x0F); 793 EmitUint8(0x0F);
794 EmitUint8(0x38); 794 EmitUint8(0x38);
795 EmitUint8(0x29); 795 EmitUint8(0x29);
796 EmitXmmRegisterOperand(dst, src); 796 EmitXmmRegisterOperand(dst, src);
797 } 797 }
798 798
799 799
800 void Assembler::pxor(XmmRegister dst, XmmRegister src) {
801 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
802 EmitUint8(0x66);
803 EmitUint8(0x0F);
804 EmitUint8(0xEF);
805 EmitXmmRegisterOperand(dst, src);
806 }
807
808
800 void Assembler::fldl(const Address& src) { 809 void Assembler::fldl(const Address& src) {
801 AssemblerBuffer::EnsureCapacity ensured(&buffer_); 810 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
802 EmitUint8(0xDD); 811 EmitUint8(0xDD);
803 EmitOperand(0, src); 812 EmitOperand(0, src);
804 } 813 }
805 814
806 815
807 void Assembler::fstpl(const Address& dst) { 816 void Assembler::fstpl(const Address& dst) {
808 AssemblerBuffer::EnsureCapacity ensured(&buffer_); 817 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
809 EmitUint8(0xDD); 818 EmitUint8(0xDD);
(...skipping 1182 matching lines...) Expand 10 before | Expand all | Expand 10 after
1992 2001
1993 const char* Assembler::XmmRegisterName(XmmRegister reg) { 2002 const char* Assembler::XmmRegisterName(XmmRegister reg) {
1994 ASSERT((0 <= reg) && (reg < kNumberOfXmmRegisters)); 2003 ASSERT((0 <= reg) && (reg < kNumberOfXmmRegisters));
1995 return xmm_reg_names[reg]; 2004 return xmm_reg_names[reg];
1996 } 2005 }
1997 2006
1998 2007
1999 } // namespace dart 2008 } // namespace dart
2000 2009
2001 #endif // defined TARGET_ARCH_IA32 2010 #endif // defined TARGET_ARCH_IA32
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698