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 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
280 bool is_zero() const { return x_ == 0 && RelocInfo::IsNone(rmode_); } | 280 bool is_zero() const { return x_ == 0 && RelocInfo::IsNone(rmode_); } |
281 bool is_int8() const { | 281 bool is_int8() const { |
282 return -128 <= x_ && x_ < 128 && RelocInfo::IsNone(rmode_); | 282 return -128 <= x_ && x_ < 128 && RelocInfo::IsNone(rmode_); |
283 } | 283 } |
284 bool is_uint8() const { | 284 bool is_uint8() const { |
285 return v8::internal::is_uint8(x_) && RelocInfo::IsNone(rmode_); | 285 return v8::internal::is_uint8(x_) && RelocInfo::IsNone(rmode_); |
286 } | 286 } |
287 bool is_int16() const { | 287 bool is_int16() const { |
288 return -32768 <= x_ && x_ < 32768 && RelocInfo::IsNone(rmode_); | 288 return -32768 <= x_ && x_ < 32768 && RelocInfo::IsNone(rmode_); |
289 } | 289 } |
| 290 bool is_uint16() const { |
| 291 return v8::internal::is_uint16(x_) && RelocInfo::IsNone(rmode_); |
| 292 } |
290 | 293 |
291 private: | 294 private: |
292 inline explicit Immediate(Label* value); | 295 inline explicit Immediate(Label* value); |
293 | 296 |
294 int x_; | 297 int x_; |
295 RelocInfo::Mode rmode_; | 298 RelocInfo::Mode rmode_; |
296 | 299 |
297 friend class Operand; | 300 friend class Operand; |
298 friend class Assembler; | 301 friend class Assembler; |
299 friend class MacroAssembler; | 302 friend class MacroAssembler; |
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
764 | 767 |
765 void sub(Register dst, const Immediate& imm) { sub(Operand(dst), imm); } | 768 void sub(Register dst, const Immediate& imm) { sub(Operand(dst), imm); } |
766 void sub(const Operand& dst, const Immediate& x); | 769 void sub(const Operand& dst, const Immediate& x); |
767 void sub(Register dst, Register src) { sub(dst, Operand(src)); } | 770 void sub(Register dst, Register src) { sub(dst, Operand(src)); } |
768 void sub(Register dst, const Operand& src); | 771 void sub(Register dst, const Operand& src); |
769 void sub(const Operand& dst, Register src); | 772 void sub(const Operand& dst, Register src); |
770 | 773 |
771 void test(Register reg, const Immediate& imm); | 774 void test(Register reg, const Immediate& imm); |
772 void test(Register reg0, Register reg1) { test(reg0, Operand(reg1)); } | 775 void test(Register reg0, Register reg1) { test(reg0, Operand(reg1)); } |
773 void test(Register reg, const Operand& op); | 776 void test(Register reg, const Operand& op); |
| 777 void test(const Operand& op, const Immediate& imm); |
| 778 void test(const Operand& op, Register reg) { test(reg, op); } |
774 void test_b(Register reg, const Operand& op); | 779 void test_b(Register reg, const Operand& op); |
775 void test(const Operand& op, const Immediate& imm); | |
776 void test_b(Register reg, Immediate imm8); | 780 void test_b(Register reg, Immediate imm8); |
777 void test_b(const Operand& op, Immediate imm8); | 781 void test_b(const Operand& op, Immediate imm8); |
| 782 void test_b(const Operand& op, Register reg) { test_b(reg, op); } |
| 783 void test_b(Register dst, Register src) { test_b(dst, Operand(src)); } |
| 784 void test_w(Register reg, const Operand& op); |
| 785 void test_w(Register reg, Immediate imm16); |
| 786 void test_w(const Operand& op, Immediate imm16); |
| 787 void test_w(const Operand& op, Register reg) { test_w(reg, op); } |
| 788 void test_w(Register dst, Register src) { test_w(dst, Operand(src)); } |
778 | 789 |
779 void xor_(Register dst, int32_t imm32); | 790 void xor_(Register dst, int32_t imm32); |
780 void xor_(Register dst, Register src) { xor_(dst, Operand(src)); } | 791 void xor_(Register dst, Register src) { xor_(dst, Operand(src)); } |
781 void xor_(Register dst, const Operand& src); | 792 void xor_(Register dst, const Operand& src); |
782 void xor_(const Operand& dst, Register src); | 793 void xor_(const Operand& dst, Register src); |
783 void xor_(Register dst, const Immediate& imm) { xor_(Operand(dst), imm); } | 794 void xor_(Register dst, const Immediate& imm) { xor_(Operand(dst), imm); } |
784 void xor_(const Operand& dst, const Immediate& x); | 795 void xor_(const Operand& dst, const Immediate& x); |
785 | 796 |
786 // Bit operations. | 797 // Bit operations. |
787 void bt(const Operand& dst, Register src); | 798 void bt(const Operand& dst, Register src); |
(...skipping 794 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1582 Assembler* assembler_; | 1593 Assembler* assembler_; |
1583 #ifdef DEBUG | 1594 #ifdef DEBUG |
1584 int space_before_; | 1595 int space_before_; |
1585 #endif | 1596 #endif |
1586 }; | 1597 }; |
1587 | 1598 |
1588 } // namespace internal | 1599 } // namespace internal |
1589 } // namespace v8 | 1600 } // namespace v8 |
1590 | 1601 |
1591 #endif // V8_IA32_ASSEMBLER_IA32_H_ | 1602 #endif // V8_IA32_ASSEMBLER_IA32_H_ |
OLD | NEW |