Chromium Code Reviews| 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 337 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 348 // The reference is not checked here but at runtime. Validity of references | 348 // The reference is not checked here but at runtime. Validity of references |
| 349 // may change over time. | 349 // may change over time. |
| 350 unchecked_update_wasm_memory_reference(updated_reference, | 350 unchecked_update_wasm_memory_reference(updated_reference, |
| 351 icache_flush_mode); | 351 icache_flush_mode); |
| 352 } else if (IsWasmMemorySizeReference(rmode_)) { | 352 } else if (IsWasmMemorySizeReference(rmode_)) { |
| 353 uint32_t current_size_reference = wasm_memory_size_reference(); | 353 uint32_t current_size_reference = wasm_memory_size_reference(); |
| 354 DCHECK(old_size == 0 || current_size_reference <= old_size); | 354 DCHECK(old_size == 0 || current_size_reference <= old_size); |
| 355 uint32_t offset = old_size - current_size_reference; | 355 uint32_t offset = old_size - current_size_reference; |
| 356 DCHECK_GE(new_size, offset); | 356 DCHECK_GE(new_size, offset); |
| 357 uint32_t updated_size_reference = new_size - offset; | 357 uint32_t updated_size_reference = new_size - offset; |
| 358 | |
| 359 if (old_size == 0) { | |
| 360 switch (rmode_) { | |
| 361 case RelocInfo::WASM_MEMORY_WORD_SIZE_REFERENCE: | |
| 362 updated_size_reference = updated_size_reference - 1; | |
| 363 break; | |
| 364 case RelocInfo::WASM_MEMORY_DWORD_SIZE_REFERENCE: | |
| 365 updated_size_reference = updated_size_reference - 3; | |
| 366 break; | |
| 367 case RelocInfo::WASM_MEMORY_QWORD_SIZE_REFERENCE: | |
| 368 updated_size_reference = updated_size_reference - 7; | |
| 369 break; | |
| 370 default: | |
| 371 DCHECK(rmode_ == RelocInfo::WASM_MEMORY_BYTE_SIZE_REFERENCE); | |
|
bradn
2016/10/12 18:50:45
Handle explicit and make default unreachable?
gdeepti
2016/10/13 08:42:59
Got rid of additional RelocInfo modes, code remove
| |
| 372 } | |
| 373 } | |
| 358 unchecked_update_wasm_memory_size(updated_size_reference, | 374 unchecked_update_wasm_memory_size(updated_size_reference, |
| 359 icache_flush_mode); | 375 icache_flush_mode); |
| 360 } else { | 376 } else { |
| 361 UNREACHABLE(); | 377 UNREACHABLE(); |
| 362 } | 378 } |
| 363 if (icache_flush_mode != SKIP_ICACHE_FLUSH) { | 379 if (icache_flush_mode != SKIP_ICACHE_FLUSH) { |
| 364 Assembler::FlushICache(isolate_, pc_, sizeof(int64_t)); | 380 Assembler::FlushICache(isolate_, pc_, sizeof(int64_t)); |
| 365 } | 381 } |
| 366 } | 382 } |
| 367 | 383 |
| (...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 779 case DEBUG_BREAK_SLOT_AT_CALL: | 795 case DEBUG_BREAK_SLOT_AT_CALL: |
| 780 return "debug break slot at call"; | 796 return "debug break slot at call"; |
| 781 case DEBUG_BREAK_SLOT_AT_TAIL_CALL: | 797 case DEBUG_BREAK_SLOT_AT_TAIL_CALL: |
| 782 return "debug break slot at tail call"; | 798 return "debug break slot at tail call"; |
| 783 case CODE_AGE_SEQUENCE: | 799 case CODE_AGE_SEQUENCE: |
| 784 return "code age sequence"; | 800 return "code age sequence"; |
| 785 case GENERATOR_CONTINUATION: | 801 case GENERATOR_CONTINUATION: |
| 786 return "generator continuation"; | 802 return "generator continuation"; |
| 787 case WASM_MEMORY_REFERENCE: | 803 case WASM_MEMORY_REFERENCE: |
| 788 return "wasm memory reference"; | 804 return "wasm memory reference"; |
| 789 case WASM_MEMORY_SIZE_REFERENCE: | 805 case WASM_MEMORY_BYTE_SIZE_REFERENCE: |
| 790 return "wasm memory size reference"; | 806 return "wasm memory size byte reference"; |
| 807 case WASM_MEMORY_WORD_SIZE_REFERENCE: | |
| 808 return "wasm memory size word reference"; | |
| 809 case WASM_MEMORY_DWORD_SIZE_REFERENCE: | |
| 810 return "wasm memory size dword reference"; | |
| 811 case WASM_MEMORY_QWORD_SIZE_REFERENCE: | |
| 812 return "wasm memory size qword reference"; | |
| 791 case WASM_GLOBAL_REFERENCE: | 813 case WASM_GLOBAL_REFERENCE: |
| 792 return "wasm global value reference"; | 814 return "wasm global value reference"; |
| 793 case NUMBER_OF_MODES: | 815 case NUMBER_OF_MODES: |
| 794 case PC_JUMP: | 816 case PC_JUMP: |
| 795 UNREACHABLE(); | 817 UNREACHABLE(); |
| 796 return "number_of_modes"; | 818 return "number_of_modes"; |
| 797 } | 819 } |
| 798 return "unknown relocation type"; | 820 return "unknown relocation type"; |
| 799 } | 821 } |
| 800 | 822 |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 878 case DEOPT_REASON: | 900 case DEOPT_REASON: |
| 879 case DEOPT_ID: | 901 case DEOPT_ID: |
| 880 case CONST_POOL: | 902 case CONST_POOL: |
| 881 case VENEER_POOL: | 903 case VENEER_POOL: |
| 882 case DEBUG_BREAK_SLOT_AT_POSITION: | 904 case DEBUG_BREAK_SLOT_AT_POSITION: |
| 883 case DEBUG_BREAK_SLOT_AT_RETURN: | 905 case DEBUG_BREAK_SLOT_AT_RETURN: |
| 884 case DEBUG_BREAK_SLOT_AT_CALL: | 906 case DEBUG_BREAK_SLOT_AT_CALL: |
| 885 case DEBUG_BREAK_SLOT_AT_TAIL_CALL: | 907 case DEBUG_BREAK_SLOT_AT_TAIL_CALL: |
| 886 case GENERATOR_CONTINUATION: | 908 case GENERATOR_CONTINUATION: |
| 887 case WASM_MEMORY_REFERENCE: | 909 case WASM_MEMORY_REFERENCE: |
| 888 case WASM_MEMORY_SIZE_REFERENCE: | 910 case WASM_MEMORY_BYTE_SIZE_REFERENCE: |
| 911 case WASM_MEMORY_WORD_SIZE_REFERENCE: | |
| 912 case WASM_MEMORY_DWORD_SIZE_REFERENCE: | |
| 913 case WASM_MEMORY_QWORD_SIZE_REFERENCE: | |
| 889 case WASM_GLOBAL_REFERENCE: | 914 case WASM_GLOBAL_REFERENCE: |
| 890 case NONE32: | 915 case NONE32: |
| 891 case NONE64: | 916 case NONE64: |
| 892 break; | 917 break; |
| 893 case NUMBER_OF_MODES: | 918 case NUMBER_OF_MODES: |
| 894 case PC_JUMP: | 919 case PC_JUMP: |
| 895 UNREACHABLE(); | 920 UNREACHABLE(); |
| 896 break; | 921 break; |
| 897 case CODE_AGE_SEQUENCE: | 922 case CODE_AGE_SEQUENCE: |
| 898 DCHECK(Code::IsYoungSequence(isolate, pc_) || code_age_stub()->IsCode()); | 923 DCHECK(Code::IsYoungSequence(isolate, pc_) || code_age_stub()->IsCode()); |
| (...skipping 1040 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1939 | 1964 |
| 1940 | 1965 |
| 1941 void Assembler::DataAlign(int m) { | 1966 void Assembler::DataAlign(int m) { |
| 1942 DCHECK(m >= 2 && base::bits::IsPowerOfTwo32(m)); | 1967 DCHECK(m >= 2 && base::bits::IsPowerOfTwo32(m)); |
| 1943 while ((pc_offset() & (m - 1)) != 0) { | 1968 while ((pc_offset() & (m - 1)) != 0) { |
| 1944 db(0); | 1969 db(0); |
| 1945 } | 1970 } |
| 1946 } | 1971 } |
| 1947 } // namespace internal | 1972 } // namespace internal |
| 1948 } // namespace v8 | 1973 } // namespace v8 |
| OLD | NEW |