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

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

Issue 616873003: Use UnboxedInt32 and UnboxedUint32 representation for LoadIndexedInstr (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 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) 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_X64) 6 #if defined(TARGET_ARCH_X64)
7 7
8 #include "vm/assembler.h" 8 #include "vm/assembler.h"
9 #include "vm/cpu.h" 9 #include "vm/cpu.h"
10 #include "vm/heap.h" 10 #include "vm/heap.h"
(...skipping 1283 matching lines...) Expand 10 before | Expand all | Expand 10 after
1294 ASSERT(dst <= XMM15); 1294 ASSERT(dst <= XMM15);
1295 Operand operand(src); 1295 Operand operand(src);
1296 EmitUint8(0xF2); 1296 EmitUint8(0xF2);
1297 EmitOperandREX(dst, operand, REX_W); 1297 EmitOperandREX(dst, operand, REX_W);
1298 EmitUint8(0x0F); 1298 EmitUint8(0x0F);
1299 EmitUint8(0x2A); 1299 EmitUint8(0x2A);
1300 EmitOperand(dst & 7, operand); 1300 EmitOperand(dst & 7, operand);
1301 } 1301 }
1302 1302
1303 1303
1304 void Assembler::cvtsi2sd32(XmmRegister dst, Register src) {
1305 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
1306 ASSERT(dst <= XMM15);
1307 Operand operand(src);
1308 EmitUint8(0xF2);
1309 EmitOperandREX(dst, operand, REX_NONE);
1310 EmitUint8(0x0F);
1311 EmitUint8(0x2A);
1312 EmitOperand(dst & 7, operand);
1313 }
1314
1315
1304 void Assembler::cvttsd2siq(Register dst, XmmRegister src) { 1316 void Assembler::cvttsd2siq(Register dst, XmmRegister src) {
1305 ASSERT(src <= XMM15); 1317 ASSERT(src <= XMM15);
1306 AssemblerBuffer::EnsureCapacity ensured(&buffer_); 1318 AssemblerBuffer::EnsureCapacity ensured(&buffer_);
1307 EmitUint8(0xF2); 1319 EmitUint8(0xF2);
1308 Operand operand(dst); 1320 Operand operand(dst);
1309 EmitREX_RB(dst, src, REX_W); 1321 EmitREX_RB(dst, src, REX_W);
1310 EmitUint8(0x0F); 1322 EmitUint8(0x0F);
1311 EmitUint8(0x2C); 1323 EmitUint8(0x2C);
1312 EmitXmmRegisterOperand(dst & 7, src); 1324 EmitXmmRegisterOperand(dst & 7, src);
1313 } 1325 }
(...skipping 2249 matching lines...) Expand 10 before | Expand all | Expand 10 after
3563 3575
3564 3576
3565 const char* Assembler::FpuRegisterName(FpuRegister reg) { 3577 const char* Assembler::FpuRegisterName(FpuRegister reg) {
3566 ASSERT((0 <= reg) && (reg < kNumberOfXmmRegisters)); 3578 ASSERT((0 <= reg) && (reg < kNumberOfXmmRegisters));
3567 return xmm_reg_names[reg]; 3579 return xmm_reg_names[reg];
3568 } 3580 }
3569 3581
3570 } // namespace dart 3582 } // namespace dart
3571 3583
3572 #endif // defined TARGET_ARCH_X64 3584 #endif // defined TARGET_ARCH_X64
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698