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 712 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
723 emit_operand(reg, op); | 723 emit_operand(reg, op); |
724 } | 724 } |
725 | 725 |
726 void Assembler::xchg_w(Register reg, const Operand& op) { | 726 void Assembler::xchg_w(Register reg, const Operand& op) { |
727 EnsureSpace ensure_space(this); | 727 EnsureSpace ensure_space(this); |
728 EMIT(0x66); | 728 EMIT(0x66); |
729 EMIT(0x87); | 729 EMIT(0x87); |
730 emit_operand(reg, op); | 730 emit_operand(reg, op); |
731 } | 731 } |
732 | 732 |
| 733 void Assembler::lock() { |
| 734 EnsureSpace ensure_space(this); |
| 735 EMIT(0xF0); |
| 736 } |
| 737 |
| 738 void Assembler::cmpxchg(const Operand& dst, Register src) { |
| 739 EnsureSpace ensure_space(this); |
| 740 EMIT(0x0F); |
| 741 EMIT(0xB1); |
| 742 emit_operand(src, dst); |
| 743 } |
| 744 |
| 745 void Assembler::cmpxchg_b(const Operand& dst, Register src) { |
| 746 EnsureSpace ensure_space(this); |
| 747 EMIT(0x0F); |
| 748 EMIT(0xB0); |
| 749 emit_operand(src, dst); |
| 750 } |
| 751 |
| 752 void Assembler::cmpxchg_w(const Operand& dst, Register src) { |
| 753 EnsureSpace ensure_space(this); |
| 754 EMIT(0x66); |
| 755 EMIT(0x0F); |
| 756 EMIT(0xB1); |
| 757 emit_operand(src, dst); |
| 758 } |
| 759 |
733 void Assembler::adc(Register dst, int32_t imm32) { | 760 void Assembler::adc(Register dst, int32_t imm32) { |
734 EnsureSpace ensure_space(this); | 761 EnsureSpace ensure_space(this); |
735 emit_arith(2, Operand(dst), Immediate(imm32)); | 762 emit_arith(2, Operand(dst), Immediate(imm32)); |
736 } | 763 } |
737 | 764 |
738 | 765 |
739 void Assembler::adc(Register dst, const Operand& src) { | 766 void Assembler::adc(Register dst, const Operand& src) { |
740 EnsureSpace ensure_space(this); | 767 EnsureSpace ensure_space(this); |
741 EMIT(0x13); | 768 EMIT(0x13); |
742 emit_operand(dst, src); | 769 emit_operand(dst, src); |
(...skipping 2318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3061 fflush(coverage_log); | 3088 fflush(coverage_log); |
3062 } | 3089 } |
3063 } | 3090 } |
3064 | 3091 |
3065 #endif | 3092 #endif |
3066 | 3093 |
3067 } // namespace internal | 3094 } // namespace internal |
3068 } // namespace v8 | 3095 } // namespace v8 |
3069 | 3096 |
3070 #endif // V8_TARGET_ARCH_IA32 | 3097 #endif // V8_TARGET_ARCH_IA32 |
OLD | NEW |