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 | 5 // modification, are permitted provided that the following conditions |
6 // are met: | 6 // are 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 690 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
701 } | 701 } |
702 | 702 |
703 | 703 |
704 void Assembler::xchg(Register dst, const Operand& src) { | 704 void Assembler::xchg(Register dst, const Operand& src) { |
705 EnsureSpace ensure_space(this); | 705 EnsureSpace ensure_space(this); |
706 EMIT(0x87); | 706 EMIT(0x87); |
707 emit_operand(dst, src); | 707 emit_operand(dst, src); |
708 } | 708 } |
709 | 709 |
710 void Assembler::xchg_b(Register reg, const Operand& op) { | 710 void Assembler::xchg_b(Register reg, const Operand& op) { |
| 711 DCHECK(reg.is_byte_register()); |
711 EnsureSpace ensure_space(this); | 712 EnsureSpace ensure_space(this); |
712 EMIT(0x86); | 713 EMIT(0x86); |
713 emit_operand(reg, op); | 714 emit_operand(reg, op); |
714 } | 715 } |
715 | 716 |
716 void Assembler::xchg_w(Register reg, const Operand& op) { | 717 void Assembler::xchg_w(Register reg, const Operand& op) { |
717 EnsureSpace ensure_space(this); | 718 EnsureSpace ensure_space(this); |
718 EMIT(0x66); | 719 EMIT(0x66); |
719 EMIT(0x87); | 720 EMIT(0x87); |
720 emit_operand(reg, op); | 721 emit_operand(reg, op); |
721 } | 722 } |
722 | 723 |
723 void Assembler::lock() { | 724 void Assembler::lock() { |
724 EnsureSpace ensure_space(this); | 725 EnsureSpace ensure_space(this); |
725 EMIT(0xF0); | 726 EMIT(0xF0); |
726 } | 727 } |
727 | 728 |
728 void Assembler::cmpxchg(const Operand& dst, Register src) { | 729 void Assembler::cmpxchg(const Operand& dst, Register src) { |
729 EnsureSpace ensure_space(this); | 730 EnsureSpace ensure_space(this); |
730 EMIT(0x0F); | 731 EMIT(0x0F); |
731 EMIT(0xB1); | 732 EMIT(0xB1); |
732 emit_operand(src, dst); | 733 emit_operand(src, dst); |
733 } | 734 } |
734 | 735 |
735 void Assembler::cmpxchg_b(const Operand& dst, Register src) { | 736 void Assembler::cmpxchg_b(const Operand& dst, Register src) { |
| 737 DCHECK(src.is_byte_register()); |
736 EnsureSpace ensure_space(this); | 738 EnsureSpace ensure_space(this); |
737 EMIT(0x0F); | 739 EMIT(0x0F); |
738 EMIT(0xB0); | 740 EMIT(0xB0); |
739 emit_operand(src, dst); | 741 emit_operand(src, dst); |
740 } | 742 } |
741 | 743 |
742 void Assembler::cmpxchg_w(const Operand& dst, Register src) { | 744 void Assembler::cmpxchg_w(const Operand& dst, Register src) { |
743 EnsureSpace ensure_space(this); | 745 EnsureSpace ensure_space(this); |
744 EMIT(0x66); | 746 EMIT(0x66); |
745 EMIT(0x0F); | 747 EMIT(0x0F); |
(...skipping 2372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3118 } | 3120 } |
3119 RelocInfo rinfo(pc_, rmode, data, NULL); | 3121 RelocInfo rinfo(pc_, rmode, data, NULL); |
3120 reloc_info_writer.Write(&rinfo); | 3122 reloc_info_writer.Write(&rinfo); |
3121 } | 3123 } |
3122 | 3124 |
3123 | 3125 |
3124 } // namespace internal | 3126 } // namespace internal |
3125 } // namespace v8 | 3127 } // namespace v8 |
3126 | 3128 |
3127 #endif // V8_TARGET_ARCH_IA32 | 3129 #endif // V8_TARGET_ARCH_IA32 |
OLD | NEW |