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 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
388 | 388 |
389 // ----------------------------------------------------------------------------- | 389 // ----------------------------------------------------------------------------- |
390 // Machine instruction Operands | 390 // Machine instruction Operands |
391 | 391 |
392 enum ScaleFactor { | 392 enum ScaleFactor { |
393 times_1 = 0, | 393 times_1 = 0, |
394 times_2 = 1, | 394 times_2 = 1, |
395 times_4 = 2, | 395 times_4 = 2, |
396 times_8 = 3, | 396 times_8 = 3, |
397 times_int_size = times_4, | 397 times_int_size = times_4, |
398 times_pointer_size = times_8 | 398 times_pointer_size = (kPointerSize == 8) ? times_8 : times_4 |
399 }; | 399 }; |
400 | 400 |
401 | 401 |
402 class Operand BASE_EMBEDDED { | 402 class Operand BASE_EMBEDDED { |
403 public: | 403 public: |
404 // [base + disp/r] | 404 // [base + disp/r] |
405 Operand(Register base, int32_t disp); | 405 Operand(Register base, int32_t disp); |
406 | 406 |
407 // [base + index*scale + disp/r] | 407 // [base + index*scale + disp/r] |
408 Operand(Register base, | 408 Operand(Register base, |
(...skipping 605 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1014 } | 1014 } |
1015 | 1015 |
1016 void or_(const Operand& dst, Immediate src) { | 1016 void or_(const Operand& dst, Immediate src) { |
1017 immediate_arithmetic_op(0x1, dst, src); | 1017 immediate_arithmetic_op(0x1, dst, src); |
1018 } | 1018 } |
1019 | 1019 |
1020 void orl(const Operand& dst, Immediate src) { | 1020 void orl(const Operand& dst, Immediate src) { |
1021 immediate_arithmetic_op_32(0x1, dst, src); | 1021 immediate_arithmetic_op_32(0x1, dst, src); |
1022 } | 1022 } |
1023 | 1023 |
1024 | |
1025 void rcl(Register dst, Immediate imm8) { | 1024 void rcl(Register dst, Immediate imm8) { |
1026 shift(dst, imm8, 0x2); | 1025 shift(dst, imm8, 0x2); |
1027 } | 1026 } |
1028 | 1027 |
1029 void rol(Register dst, Immediate imm8) { | 1028 void rol(Register dst, Immediate imm8) { |
1030 shift(dst, imm8, 0x0); | 1029 shift(dst, imm8, 0x0); |
1031 } | 1030 } |
1032 | 1031 |
1033 void roll(Register dst, Immediate imm8) { | 1032 void roll(Register dst, Immediate imm8) { |
1034 shift_32(dst, imm8, 0x0); | 1033 shift_32(dst, imm8, 0x0); |
(...skipping 718 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1753 private: | 1752 private: |
1754 Assembler* assembler_; | 1753 Assembler* assembler_; |
1755 #ifdef DEBUG | 1754 #ifdef DEBUG |
1756 int space_before_; | 1755 int space_before_; |
1757 #endif | 1756 #endif |
1758 }; | 1757 }; |
1759 | 1758 |
1760 } } // namespace v8::internal | 1759 } } // namespace v8::internal |
1761 | 1760 |
1762 #endif // V8_X64_ASSEMBLER_X64_H_ | 1761 #endif // V8_X64_ASSEMBLER_X64_H_ |
OLD | NEW |