OLD | NEW |
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 Loading... |
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 | |
389 void addsd(XmmRegister dst, XmmRegister src); | 386 void addsd(XmmRegister dst, XmmRegister src); |
390 void subsd(XmmRegister dst, XmmRegister src); | 387 void subsd(XmmRegister dst, XmmRegister src); |
391 void mulsd(XmmRegister dst, XmmRegister src); | 388 void mulsd(XmmRegister dst, XmmRegister src); |
392 void divsd(XmmRegister dst, XmmRegister src); | 389 void divsd(XmmRegister dst, XmmRegister src); |
393 | 390 |
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 | |
420 void comisd(XmmRegister a, XmmRegister b); | 391 void comisd(XmmRegister a, XmmRegister b); |
421 void cvtsi2sd(XmmRegister a, Register b); | 392 void cvtsi2sd(XmmRegister a, Register b); |
422 void cvttsd2siq(Register dst, XmmRegister src); | 393 void cvttsd2siq(Register dst, XmmRegister src); |
423 | 394 |
424 void cvtss2sd(XmmRegister dst, XmmRegister src); | 395 void cvtss2sd(XmmRegister dst, XmmRegister src); |
425 void cvtsd2ss(XmmRegister dst, XmmRegister src); | 396 void cvtsd2ss(XmmRegister dst, XmmRegister src); |
426 | 397 |
427 void pxor(XmmRegister dst, XmmRegister src); | 398 void pxor(XmmRegister dst, XmmRegister src); |
428 | 399 |
429 enum RoundingMode { | 400 enum RoundingMode { |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
529 | 500 |
530 void negl(Register reg); | 501 void negl(Register reg); |
531 void negq(Register reg); | 502 void negq(Register reg); |
532 void notq(Register reg); | 503 void notq(Register reg); |
533 | 504 |
534 void enter(const Immediate& imm); | 505 void enter(const Immediate& imm); |
535 void leave(); | 506 void leave(); |
536 void ret(); | 507 void ret(); |
537 | 508 |
538 void movmskpd(Register dst, XmmRegister src); | 509 void movmskpd(Register dst, XmmRegister src); |
539 void movmskps(Register dst, XmmRegister src); | |
540 | 510 |
541 void sqrtsd(XmmRegister dst, XmmRegister src); | 511 void sqrtsd(XmmRegister dst, XmmRegister src); |
542 | 512 |
543 void xorpd(XmmRegister dst, const Address& src); | 513 void xorpd(XmmRegister dst, const Address& src); |
544 void xorpd(XmmRegister dst, XmmRegister src); | 514 void xorpd(XmmRegister dst, XmmRegister src); |
545 | 515 |
546 void xorps(XmmRegister dst, const Address& src); | |
547 void xorps(XmmRegister dst, XmmRegister src); | |
548 | |
549 void andpd(XmmRegister dst, const Address& src); | 516 void andpd(XmmRegister dst, const Address& src); |
550 | 517 |
551 void fldl(const Address& src); | 518 void fldl(const Address& src); |
552 void fstpl(const Address& dst); | 519 void fstpl(const Address& dst); |
553 | 520 |
554 void fildl(const Address& src); | 521 void fildl(const Address& src); |
555 | 522 |
556 void fincstp(); | 523 void fincstp(); |
557 void ffree(intptr_t value); | 524 void ffree(intptr_t value); |
558 | 525 |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
843 } | 810 } |
844 | 811 |
845 | 812 |
846 inline void Assembler::EmitOperandSizeOverride() { | 813 inline void Assembler::EmitOperandSizeOverride() { |
847 EmitUint8(0x66); | 814 EmitUint8(0x66); |
848 } | 815 } |
849 | 816 |
850 } // namespace dart | 817 } // namespace dart |
851 | 818 |
852 #endif // VM_ASSEMBLER_X64_H_ | 819 #endif // VM_ASSEMBLER_X64_H_ |
OLD | NEW |