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 893 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
904 // convert inline target address to code object | 904 // convert inline target address to code object |
905 Address addr = target_address(); | 905 Address addr = target_address(); |
906 CHECK(addr != NULL); | 906 CHECK(addr != NULL); |
907 // Check that we can find the right code object. | 907 // Check that we can find the right code object. |
908 Code* code = Code::GetCodeFromTargetAddress(addr); | 908 Code* code = Code::GetCodeFromTargetAddress(addr); |
909 Object* found = isolate->FindCodeObject(addr); | 909 Object* found = isolate->FindCodeObject(addr); |
910 CHECK(found->IsCode()); | 910 CHECK(found->IsCode()); |
911 CHECK(code->address() == HeapObject::cast(found)->address()); | 911 CHECK(code->address() == HeapObject::cast(found)->address()); |
912 break; | 912 break; |
913 } | 913 } |
| 914 case INTERNAL_REFERENCE: |
| 915 case INTERNAL_REFERENCE_ENCODED: { |
| 916 Address target = target_internal_reference(); |
| 917 Address pc = target_internal_reference_address(); |
| 918 Code* code = Code::cast(isolate->FindCodeObject(pc)); |
| 919 CHECK(target >= code->instruction_start()); |
| 920 CHECK(target <= code->instruction_end()); |
| 921 break; |
| 922 } |
914 case RUNTIME_ENTRY: | 923 case RUNTIME_ENTRY: |
915 case JS_RETURN: | 924 case JS_RETURN: |
916 case COMMENT: | 925 case COMMENT: |
917 case POSITION: | 926 case POSITION: |
918 case STATEMENT_POSITION: | 927 case STATEMENT_POSITION: |
919 case EXTERNAL_REFERENCE: | 928 case EXTERNAL_REFERENCE: |
920 case INTERNAL_REFERENCE: | |
921 case INTERNAL_REFERENCE_ENCODED: | |
922 case DEOPT_REASON: | 929 case DEOPT_REASON: |
923 case CONST_POOL: | 930 case CONST_POOL: |
924 case VENEER_POOL: | 931 case VENEER_POOL: |
925 case DEBUG_BREAK_SLOT: | 932 case DEBUG_BREAK_SLOT: |
926 case NONE32: | 933 case NONE32: |
927 case NONE64: | 934 case NONE64: |
928 break; | 935 break; |
929 case NUMBER_OF_MODES: | 936 case NUMBER_OF_MODES: |
930 UNREACHABLE(); | 937 UNREACHABLE(); |
931 break; | 938 break; |
(...skipping 723 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1655 RecordRelocInfo(RelocInfo::JS_RETURN); | 1662 RecordRelocInfo(RelocInfo::JS_RETURN); |
1656 } | 1663 } |
1657 | 1664 |
1658 | 1665 |
1659 void Assembler::RecordDebugBreakSlot() { | 1666 void Assembler::RecordDebugBreakSlot() { |
1660 positions_recorder()->WriteRecordedPositions(); | 1667 positions_recorder()->WriteRecordedPositions(); |
1661 EnsureSpace ensure_space(this); | 1668 EnsureSpace ensure_space(this); |
1662 RecordRelocInfo(RelocInfo::DEBUG_BREAK_SLOT); | 1669 RecordRelocInfo(RelocInfo::DEBUG_BREAK_SLOT); |
1663 } | 1670 } |
1664 } } // namespace v8::internal | 1671 } } // namespace v8::internal |
OLD | NEW |