OLD | NEW |
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. | 1 // Copyright (c) 1994-2006 Sun Microsystems Inc. |
2 // All Rights Reserved. | 2 // All Rights Reserved. |
3 // | 3 // |
4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // met: |
7 // | 7 // |
8 // - Redistributions of source code must retain the above copyright notice, | 8 // - Redistributions of source code must retain the above copyright notice, |
9 // this list of conditions and the following disclaimer. | 9 // this list of conditions and the following disclaimer. |
10 // | 10 // |
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
533 | 533 |
534 void movzx_b(Register dst, const Operand& src); | 534 void movzx_b(Register dst, const Operand& src); |
535 | 535 |
536 void movzx_w(Register dst, const Operand& src); | 536 void movzx_w(Register dst, const Operand& src); |
537 | 537 |
538 // Conditional moves | 538 // Conditional moves |
539 void cmov(Condition cc, Register dst, int32_t imm32); | 539 void cmov(Condition cc, Register dst, int32_t imm32); |
540 void cmov(Condition cc, Register dst, Handle<Object> handle); | 540 void cmov(Condition cc, Register dst, Handle<Object> handle); |
541 void cmov(Condition cc, Register dst, const Operand& src); | 541 void cmov(Condition cc, Register dst, const Operand& src); |
542 | 542 |
543 // Repetitive moves. | 543 // Repetitive string instructions. |
544 void rep_movs(); | 544 void rep_movs(); |
545 | 545 |
546 // Exchange two registers | 546 // Exchange two registers |
547 void xchg(Register dst, Register src); | 547 void xchg(Register dst, Register src); |
548 | 548 |
549 // Arithmetics | 549 // Arithmetics |
550 void adc(Register dst, int32_t imm32); | 550 void adc(Register dst, int32_t imm32); |
551 void adc(Register dst, const Operand& src); | 551 void adc(Register dst, const Operand& src); |
552 | 552 |
553 void add(Register dst, const Operand& src); | 553 void add(Register dst, const Operand& src); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
610 | 610 |
611 void shl(Register dst, uint8_t imm8); | 611 void shl(Register dst, uint8_t imm8); |
612 void shl_cl(Register dst); | 612 void shl_cl(Register dst); |
613 | 613 |
614 void shrd(Register dst, const Operand& src); | 614 void shrd(Register dst, const Operand& src); |
615 | 615 |
616 void shr(Register dst, uint8_t imm8); | 616 void shr(Register dst, uint8_t imm8); |
617 void shr_cl(Register dst); | 617 void shr_cl(Register dst); |
618 | 618 |
619 void subb(const Operand& dst, int8_t imm8); | 619 void subb(const Operand& dst, int8_t imm8); |
| 620 void subb(Register dst, const Operand& src); |
620 void sub(const Operand& dst, const Immediate& x); | 621 void sub(const Operand& dst, const Immediate& x); |
621 void sub(Register dst, const Operand& src); | 622 void sub(Register dst, const Operand& src); |
622 void sub(const Operand& dst, Register src); | 623 void sub(const Operand& dst, Register src); |
623 | 624 |
624 void test(Register reg, const Immediate& imm); | 625 void test(Register reg, const Immediate& imm); |
625 void test(Register reg, const Operand& op); | 626 void test(Register reg, const Operand& op); |
626 void test(const Operand& op, const Immediate& imm); | 627 void test(const Operand& op, const Immediate& imm); |
627 | 628 |
628 void xor_(Register dst, int32_t imm32); | 629 void xor_(Register dst, int32_t imm32); |
629 void xor_(Register dst, const Operand& src); | 630 void xor_(Register dst, const Operand& src); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
668 void jmp(Label* L); // unconditional jump to L | 669 void jmp(Label* L); // unconditional jump to L |
669 void jmp(byte* entry, RelocInfo::Mode rmode); | 670 void jmp(byte* entry, RelocInfo::Mode rmode); |
670 void jmp(const Operand& adr); | 671 void jmp(const Operand& adr); |
671 void jmp(Handle<Code> code, RelocInfo::Mode rmode); | 672 void jmp(Handle<Code> code, RelocInfo::Mode rmode); |
672 | 673 |
673 // Conditional jumps | 674 // Conditional jumps |
674 void j(Condition cc, Label* L, Hint hint = no_hint); | 675 void j(Condition cc, Label* L, Hint hint = no_hint); |
675 void j(Condition cc, byte* entry, RelocInfo::Mode rmode, Hint hint = no_hint); | 676 void j(Condition cc, byte* entry, RelocInfo::Mode rmode, Hint hint = no_hint); |
676 void j(Condition cc, Handle<Code> code, Hint hint = no_hint); | 677 void j(Condition cc, Handle<Code> code, Hint hint = no_hint); |
677 | 678 |
| 679 // Loop instruction using ecx as counter. |
| 680 void loope(Label* L); |
| 681 |
678 // Floating-point operations | 682 // Floating-point operations |
679 void fld(int i); | 683 void fld(int i); |
680 | 684 |
681 void fld1(); | 685 void fld1(); |
682 void fldz(); | 686 void fldz(); |
683 | 687 |
684 void fld_s(const Operand& adr); | 688 void fld_s(const Operand& adr); |
685 void fld_d(const Operand& adr); | 689 void fld_d(const Operand& adr); |
686 | 690 |
687 void fstp_s(const Operand& adr); | 691 void fstp_s(const Operand& adr); |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
904 private: | 908 private: |
905 Assembler* assembler_; | 909 Assembler* assembler_; |
906 #ifdef DEBUG | 910 #ifdef DEBUG |
907 int space_before_; | 911 int space_before_; |
908 #endif | 912 #endif |
909 }; | 913 }; |
910 | 914 |
911 } } // namespace v8::internal | 915 } } // namespace v8::internal |
912 | 916 |
913 #endif // V8_IA32_ASSEMBLER_IA32_H_ | 917 #endif // V8_IA32_ASSEMBLER_IA32_H_ |
OLD | NEW |