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

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

Issue 23129014: Add packed add and subtract to IA32 and X64 assemblers (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 4 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) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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/code_generator.h" 9 #include "vm/code_generator.h"
10 #include "vm/heap.h" 10 #include "vm/heap.h"
(...skipping 553 matching lines...) Expand 10 before | Expand all | Expand 10 after
564 564
565 void Assembler::addsd(XmmRegister dst, const Address& src) { 565 void Assembler::addsd(XmmRegister dst, const Address& src) {
566 AssemblerBuffer::EnsureCapacity ensured(&buffer_); 566 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
567 EmitUint8(0xF2); 567 EmitUint8(0xF2);
568 EmitUint8(0x0F); 568 EmitUint8(0x0F);
569 EmitUint8(0x58); 569 EmitUint8(0x58);
570 EmitOperand(dst, src); 570 EmitOperand(dst, src);
571 } 571 }
572 572
573 573
574 void Assembler::addpl(XmmRegister dst, XmmRegister src) {
575 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
576 EmitUint8(0x66);
577 EmitUint8(0x0F);
578 EmitUint8(0xFE);
579 EmitXmmRegisterOperand(dst, src);
580 }
581
582
583 void Assembler::subpl(XmmRegister dst, XmmRegister src) {
584 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
585 EmitUint8(0x66);
586 EmitUint8(0x0F);
587 EmitUint8(0xFA);
588 EmitXmmRegisterOperand(dst, src);
589 }
590
591
574 void Assembler::addps(XmmRegister dst, XmmRegister src) { 592 void Assembler::addps(XmmRegister dst, XmmRegister src) {
575 AssemblerBuffer::EnsureCapacity ensured(&buffer_); 593 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
576 EmitUint8(0x0F); 594 EmitUint8(0x0F);
577 EmitUint8(0x58); 595 EmitUint8(0x58);
578 EmitXmmRegisterOperand(dst, src); 596 EmitXmmRegisterOperand(dst, src);
579 } 597 }
580 598
581 599
582 void Assembler::subps(XmmRegister dst, XmmRegister src) { 600 void Assembler::subps(XmmRegister dst, XmmRegister src) {
583 AssemblerBuffer::EnsureCapacity ensured(&buffer_); 601 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
(...skipping 1885 matching lines...) Expand 10 before | Expand all | Expand 10 after
2469 2487
2470 const char* Assembler::FpuRegisterName(FpuRegister reg) { 2488 const char* Assembler::FpuRegisterName(FpuRegister reg) {
2471 ASSERT((0 <= reg) && (reg < kNumberOfXmmRegisters)); 2489 ASSERT((0 <= reg) && (reg < kNumberOfXmmRegisters));
2472 return xmm_reg_names[reg]; 2490 return xmm_reg_names[reg];
2473 } 2491 }
2474 2492
2475 2493
2476 } // namespace dart 2494 } // namespace dart
2477 2495
2478 #endif // defined TARGET_ARCH_IA32 2496 #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