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

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

Issue 12207117: SSE Assembler and Disassembler support (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Review fixes Created 7 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_test.cc ('k') | runtime/vm/assembler_x64.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 #ifndef VM_ASSEMBLER_X64_H_ 5 #ifndef VM_ASSEMBLER_X64_H_
6 #define VM_ASSEMBLER_X64_H_ 6 #define VM_ASSEMBLER_X64_H_
7 7
8 #ifndef VM_ASSEMBLER_H_ 8 #ifndef VM_ASSEMBLER_H_
9 #error Do not include assembler_x64.h directly; use assembler.h instead. 9 #error Do not include assembler_x64.h directly; use assembler.h instead.
10 #endif 10 #endif
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 void subss(XmmRegister dst, XmmRegister src); 376 void subss(XmmRegister dst, XmmRegister src);
377 void mulss(XmmRegister dst, XmmRegister src); 377 void mulss(XmmRegister dst, XmmRegister src);
378 void divss(XmmRegister dst, XmmRegister src); 378 void divss(XmmRegister dst, XmmRegister src);
379 379
380 void movsd(XmmRegister dst, const Address& src); 380 void movsd(XmmRegister dst, const Address& src);
381 void movsd(const Address& dst, XmmRegister src); 381 void movsd(const Address& dst, XmmRegister src);
382 void movsd(XmmRegister dst, XmmRegister src); 382 void movsd(XmmRegister dst, XmmRegister src);
383 383
384 void movaps(XmmRegister dst, XmmRegister src); 384 void movaps(XmmRegister dst, XmmRegister src);
385 385
386 void movups(const Address& dst, XmmRegister src);
387 void movups(XmmRegister dst, const Address& src);
388
386 void addsd(XmmRegister dst, XmmRegister src); 389 void addsd(XmmRegister dst, XmmRegister src);
387 void subsd(XmmRegister dst, XmmRegister src); 390 void subsd(XmmRegister dst, XmmRegister src);
388 void mulsd(XmmRegister dst, XmmRegister src); 391 void mulsd(XmmRegister dst, XmmRegister src);
389 void divsd(XmmRegister dst, XmmRegister src); 392 void divsd(XmmRegister dst, XmmRegister src);
390 393
394 void addps(XmmRegister dst, XmmRegister src);
395 void subps(XmmRegister dst, XmmRegister src);
396 void divps(XmmRegister dst, XmmRegister src);
397 void mulps(XmmRegister dst, XmmRegister src);
398 void minps(XmmRegister dst, XmmRegister src);
399 void maxps(XmmRegister dst, XmmRegister src);
400 void andps(XmmRegister dst, XmmRegister src);
401 void andps(XmmRegister dst, const Address& src);
402 void orps(XmmRegister dst, XmmRegister src);
403 void notps(XmmRegister dst);
404 void negateps(XmmRegister dst);
405 void absps(XmmRegister dst);
406 void zerowps(XmmRegister dst);
407 void cmppseq(XmmRegister dst, XmmRegister src);
408 void cmppsneq(XmmRegister dst, XmmRegister src);
409 void cmppslt(XmmRegister dst, XmmRegister src);
410 void cmppsle(XmmRegister dst, XmmRegister src);
411 void cmppsnlt(XmmRegister dst, XmmRegister src);
412 void cmppsnle(XmmRegister dst, XmmRegister src);
413 void sqrtps(XmmRegister dst);
414 void rsqrtps(XmmRegister dst);
415 void reciprocalps(XmmRegister dst);
416
417 void set1ps(XmmRegister dst, Register tmp, const Immediate& imm);
418 void shufps(XmmRegister dst, XmmRegister src, const Immediate& mask);
419
391 void comisd(XmmRegister a, XmmRegister b); 420 void comisd(XmmRegister a, XmmRegister b);
392 void cvtsi2sd(XmmRegister a, Register b); 421 void cvtsi2sd(XmmRegister a, Register b);
393 void cvttsd2siq(Register dst, XmmRegister src); 422 void cvttsd2siq(Register dst, XmmRegister src);
394 423
395 void cvtss2sd(XmmRegister dst, XmmRegister src); 424 void cvtss2sd(XmmRegister dst, XmmRegister src);
396 void cvtsd2ss(XmmRegister dst, XmmRegister src); 425 void cvtsd2ss(XmmRegister dst, XmmRegister src);
397 426
398 void pxor(XmmRegister dst, XmmRegister src); 427 void pxor(XmmRegister dst, XmmRegister src);
399 428
400 enum RoundingMode { 429 enum RoundingMode {
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 529
501 void negl(Register reg); 530 void negl(Register reg);
502 void negq(Register reg); 531 void negq(Register reg);
503 void notq(Register reg); 532 void notq(Register reg);
504 533
505 void enter(const Immediate& imm); 534 void enter(const Immediate& imm);
506 void leave(); 535 void leave();
507 void ret(); 536 void ret();
508 537
509 void movmskpd(Register dst, XmmRegister src); 538 void movmskpd(Register dst, XmmRegister src);
539 void movmskps(Register dst, XmmRegister src);
510 540
511 void sqrtsd(XmmRegister dst, XmmRegister src); 541 void sqrtsd(XmmRegister dst, XmmRegister src);
512 542
513 void xorpd(XmmRegister dst, const Address& src); 543 void xorpd(XmmRegister dst, const Address& src);
514 void xorpd(XmmRegister dst, XmmRegister src); 544 void xorpd(XmmRegister dst, XmmRegister src);
515 545
546 void xorps(XmmRegister dst, const Address& src);
547 void xorps(XmmRegister dst, XmmRegister src);
548
516 void andpd(XmmRegister dst, const Address& src); 549 void andpd(XmmRegister dst, const Address& src);
517 550
518 void fldl(const Address& src); 551 void fldl(const Address& src);
519 void fstpl(const Address& dst); 552 void fstpl(const Address& dst);
520 553
521 void fildl(const Address& src); 554 void fildl(const Address& src);
522 555
523 void fincstp(); 556 void fincstp();
524 void ffree(intptr_t value); 557 void ffree(intptr_t value);
525 558
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
810 } 843 }
811 844
812 845
813 inline void Assembler::EmitOperandSizeOverride() { 846 inline void Assembler::EmitOperandSizeOverride() {
814 EmitUint8(0x66); 847 EmitUint8(0x66);
815 } 848 }
816 849
817 } // namespace dart 850 } // namespace dart
818 851
819 #endif // VM_ASSEMBLER_X64_H_ 852 #endif // VM_ASSEMBLER_X64_H_
OLDNEW
« no previous file with comments | « runtime/vm/assembler_ia32_test.cc ('k') | runtime/vm/assembler_x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698