| 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 490 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 501 next_position_candidate_pos_delta_ += pos_delta; | 501 next_position_candidate_pos_delta_ += pos_delta; |
| 502 } | 502 } |
| 503 next_position_candidate_flushed_ = false; | 503 next_position_candidate_flushed_ = false; |
| 504 } | 504 } |
| 505 last_position_ = static_cast<int>(rinfo->data()); | 505 last_position_ = static_cast<int>(rinfo->data()); |
| 506 } else { | 506 } else { |
| 507 WriteModeAndPC(pc_delta, rmode); | 507 WriteModeAndPC(pc_delta, rmode); |
| 508 if (RelocInfo::IsComment(rmode)) { | 508 if (RelocInfo::IsComment(rmode)) { |
| 509 WriteData(rinfo->data()); | 509 WriteData(rinfo->data()); |
| 510 } else if (RelocInfo::IsConstPool(rmode) || | 510 } else if (RelocInfo::IsConstPool(rmode) || |
| 511 RelocInfo::IsVeneerPool(rmode) || | 511 RelocInfo::IsVeneerPool(rmode)) { |
| 512 RelocInfo::IsDebugBreakSlotAtCall(rmode) || | |
| 513 RelocInfo::IsDebugBreakSlotAtConstructCall(rmode)) { | |
| 514 WriteIntData(static_cast<int>(rinfo->data())); | 512 WriteIntData(static_cast<int>(rinfo->data())); |
| 515 } | 513 } |
| 516 } | 514 } |
| 517 last_pc_ = rinfo->pc(); | 515 last_pc_ = rinfo->pc(); |
| 518 last_mode_ = rmode; | 516 last_mode_ = rmode; |
| 519 #ifdef DEBUG | 517 #ifdef DEBUG |
| 520 DCHECK(begin_pos - pos_ <= kMaxSize); | 518 DCHECK(begin_pos - pos_ <= kMaxSize); |
| 521 #endif | 519 #endif |
| 522 } | 520 } |
| 523 | 521 |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 694 } else if (RelocInfo::IsPosition(rmode)) { | 692 } else if (RelocInfo::IsPosition(rmode)) { |
| 695 if (mode_mask_ & RelocInfo::kPositionMask) { | 693 if (mode_mask_ & RelocInfo::kPositionMask) { |
| 696 // Always update the position if we are interested in either | 694 // Always update the position if we are interested in either |
| 697 // statement positions or non-statement positions. | 695 // statement positions or non-statement positions. |
| 698 AdvanceReadPosition(); | 696 AdvanceReadPosition(); |
| 699 if (SetMode(rmode)) return; | 697 if (SetMode(rmode)) return; |
| 700 } else { | 698 } else { |
| 701 Advance(kIntSize); | 699 Advance(kIntSize); |
| 702 } | 700 } |
| 703 } else if (RelocInfo::IsConstPool(rmode) || | 701 } else if (RelocInfo::IsConstPool(rmode) || |
| 704 RelocInfo::IsVeneerPool(rmode) || | 702 RelocInfo::IsVeneerPool(rmode)) { |
| 705 RelocInfo::IsDebugBreakSlotAtCall(rmode) || | |
| 706 RelocInfo::IsDebugBreakSlotAtConstructCall(rmode)) { | |
| 707 if (SetMode(rmode)) { | 703 if (SetMode(rmode)) { |
| 708 AdvanceReadInt(); | 704 AdvanceReadInt(); |
| 709 return; | 705 return; |
| 710 } | 706 } |
| 711 Advance(kIntSize); | 707 Advance(kIntSize); |
| 712 } else if (SetMode(static_cast<RelocInfo::Mode>(rmode))) { | 708 } else if (SetMode(static_cast<RelocInfo::Mode>(rmode))) { |
| 713 return; | 709 return; |
| 714 } | 710 } |
| 715 } | 711 } |
| 716 } | 712 } |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 826 case CONST_POOL: | 822 case CONST_POOL: |
| 827 return "constant pool"; | 823 return "constant pool"; |
| 828 case VENEER_POOL: | 824 case VENEER_POOL: |
| 829 return "veneer pool"; | 825 return "veneer pool"; |
| 830 case DEBUG_BREAK_SLOT_AT_POSITION: | 826 case DEBUG_BREAK_SLOT_AT_POSITION: |
| 831 return "debug break slot at position"; | 827 return "debug break slot at position"; |
| 832 case DEBUG_BREAK_SLOT_AT_RETURN: | 828 case DEBUG_BREAK_SLOT_AT_RETURN: |
| 833 return "debug break slot at return"; | 829 return "debug break slot at return"; |
| 834 case DEBUG_BREAK_SLOT_AT_CALL: | 830 case DEBUG_BREAK_SLOT_AT_CALL: |
| 835 return "debug break slot at call"; | 831 return "debug break slot at call"; |
| 836 case DEBUG_BREAK_SLOT_AT_CONSTRUCT_CALL: | |
| 837 return "debug break slot at construct call"; | |
| 838 case CODE_AGE_SEQUENCE: | 832 case CODE_AGE_SEQUENCE: |
| 839 return "code age sequence"; | 833 return "code age sequence"; |
| 840 case GENERATOR_CONTINUATION: | 834 case GENERATOR_CONTINUATION: |
| 841 return "generator continuation"; | 835 return "generator continuation"; |
| 842 case NUMBER_OF_MODES: | 836 case NUMBER_OF_MODES: |
| 843 case PC_JUMP: | 837 case PC_JUMP: |
| 844 UNREACHABLE(); | 838 UNREACHABLE(); |
| 845 return "number_of_modes"; | 839 return "number_of_modes"; |
| 846 } | 840 } |
| 847 return "unknown relocation type"; | 841 return "unknown relocation type"; |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 924 case COMMENT: | 918 case COMMENT: |
| 925 case POSITION: | 919 case POSITION: |
| 926 case STATEMENT_POSITION: | 920 case STATEMENT_POSITION: |
| 927 case EXTERNAL_REFERENCE: | 921 case EXTERNAL_REFERENCE: |
| 928 case DEOPT_REASON: | 922 case DEOPT_REASON: |
| 929 case CONST_POOL: | 923 case CONST_POOL: |
| 930 case VENEER_POOL: | 924 case VENEER_POOL: |
| 931 case DEBUG_BREAK_SLOT_AT_POSITION: | 925 case DEBUG_BREAK_SLOT_AT_POSITION: |
| 932 case DEBUG_BREAK_SLOT_AT_RETURN: | 926 case DEBUG_BREAK_SLOT_AT_RETURN: |
| 933 case DEBUG_BREAK_SLOT_AT_CALL: | 927 case DEBUG_BREAK_SLOT_AT_CALL: |
| 934 case DEBUG_BREAK_SLOT_AT_CONSTRUCT_CALL: | |
| 935 case GENERATOR_CONTINUATION: | 928 case GENERATOR_CONTINUATION: |
| 936 case NONE32: | 929 case NONE32: |
| 937 case NONE64: | 930 case NONE64: |
| 938 break; | 931 break; |
| 939 case NUMBER_OF_MODES: | 932 case NUMBER_OF_MODES: |
| 940 case PC_JUMP: | 933 case PC_JUMP: |
| 941 UNREACHABLE(); | 934 UNREACHABLE(); |
| 942 break; | 935 break; |
| 943 case CODE_AGE_SEQUENCE: | 936 case CODE_AGE_SEQUENCE: |
| 944 DCHECK(Code::IsYoungSequence(isolate, pc_) || code_age_stub()->IsCode()); | 937 DCHECK(Code::IsYoungSequence(isolate, pc_) || code_age_stub()->IsCode()); |
| 945 break; | 938 break; |
| 946 } | 939 } |
| 947 } | 940 } |
| 948 #endif // VERIFY_HEAP | 941 #endif // VERIFY_HEAP |
| 949 | 942 |
| 950 | 943 |
| 951 int RelocInfo::DebugBreakCallArgumentsCount(intptr_t data) { | |
| 952 return static_cast<int>(data); | |
| 953 } | |
| 954 | |
| 955 | |
| 956 // ----------------------------------------------------------------------------- | |
| 957 // Implementation of ExternalReference | 944 // Implementation of ExternalReference |
| 958 | 945 |
| 959 void ExternalReference::SetUp() { | 946 void ExternalReference::SetUp() { |
| 960 double_constants.min_int = kMinInt; | 947 double_constants.min_int = kMinInt; |
| 961 double_constants.one_half = 0.5; | 948 double_constants.one_half = 0.5; |
| 962 double_constants.minus_one_half = -0.5; | 949 double_constants.minus_one_half = -0.5; |
| 963 double_constants.the_hole_nan = bit_cast<double>(kHoleNanInt64); | 950 double_constants.the_hole_nan = bit_cast<double>(kHoleNanInt64); |
| 964 double_constants.negative_infinity = -V8_INFINITY; | 951 double_constants.negative_infinity = -V8_INFINITY; |
| 965 double_constants.uint32_bias = | 952 double_constants.uint32_bias = |
| 966 static_cast<double>(static_cast<uint32_t>(0xFFFFFFFF)) + 1; | 953 static_cast<double>(static_cast<uint32_t>(0xFFFFFFFF)) + 1; |
| (...skipping 909 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1876 } | 1863 } |
| 1877 } | 1864 } |
| 1878 | 1865 |
| 1879 | 1866 |
| 1880 void Assembler::RecordGeneratorContinuation() { | 1867 void Assembler::RecordGeneratorContinuation() { |
| 1881 EnsureSpace ensure_space(this); | 1868 EnsureSpace ensure_space(this); |
| 1882 RecordRelocInfo(RelocInfo::GENERATOR_CONTINUATION); | 1869 RecordRelocInfo(RelocInfo::GENERATOR_CONTINUATION); |
| 1883 } | 1870 } |
| 1884 | 1871 |
| 1885 | 1872 |
| 1886 void Assembler::RecordDebugBreakSlot(RelocInfo::Mode mode, int call_argc) { | 1873 void Assembler::RecordDebugBreakSlot(RelocInfo::Mode mode) { |
| 1887 EnsureSpace ensure_space(this); | 1874 EnsureSpace ensure_space(this); |
| 1888 DCHECK(RelocInfo::IsDebugBreakSlot(mode)); | 1875 DCHECK(RelocInfo::IsDebugBreakSlot(mode)); |
| 1889 intptr_t data = static_cast<intptr_t>(call_argc); | 1876 RecordRelocInfo(mode); |
| 1890 RecordRelocInfo(mode, data); | |
| 1891 } | 1877 } |
| 1892 | 1878 |
| 1893 | 1879 |
| 1894 void Assembler::DataAlign(int m) { | 1880 void Assembler::DataAlign(int m) { |
| 1895 DCHECK(m >= 2 && base::bits::IsPowerOfTwo32(m)); | 1881 DCHECK(m >= 2 && base::bits::IsPowerOfTwo32(m)); |
| 1896 while ((pc_offset() & (m - 1)) != 0) { | 1882 while ((pc_offset() & (m - 1)) != 0) { |
| 1897 db(0); | 1883 db(0); |
| 1898 } | 1884 } |
| 1899 } | 1885 } |
| 1900 } // namespace internal | 1886 } // namespace internal |
| 1901 } // namespace v8 | 1887 } // namespace v8 |
| OLD | NEW |