1.1 --- a/src/share/vm/code/relocInfo.hpp Mon Sep 08 12:35:01 2014 -0700 1.2 +++ b/src/share/vm/code/relocInfo.hpp Tue Aug 08 15:57:29 2017 +0800 1.3 @@ -22,6 +22,12 @@ 1.4 * 1.5 */ 1.6 1.7 +/* 1.8 + * This file has been modified by Loongson Technology in 2015. These 1.9 + * modifications are Copyright (c) 2015 Loongson Technology, and are made 1.10 + * available on the same license terms set forth above. 1.11 + */ 1.12 + 1.13 #ifndef SHARE_VM_CODE_RELOCINFO_HPP 1.14 #define SHARE_VM_CODE_RELOCINFO_HPP 1.15 1.16 @@ -261,7 +267,11 @@ 1.17 poll_return_type = 11, // polling instruction for safepoints at return 1.18 metadata_type = 12, // metadata that used to be oops 1.19 trampoline_stub_type = 13, // stub-entry for trampoline 1.20 +#ifndef MIPS64 1.21 yet_unused_type_1 = 14, // Still unused 1.22 +#else 1.23 + internal_pc_type = 14, // tag for internal data,?? 1.24 +#endif 1.25 data_prefix_tag = 15, // tag for a prefix (carries data arguments) 1.26 type_mask = 15 // A mask which selects only the above values 1.27 }; 1.28 @@ -300,8 +310,8 @@ 1.29 visitor(internal_word) \ 1.30 visitor(poll) \ 1.31 visitor(poll_return) \ 1.32 - visitor(section_word) \ 1.33 visitor(trampoline_stub) \ 1.34 + NOT_MIPS64(visitor(section_word)) MIPS64_ONLY(visitor(internal_pc)) \ 1.35 1.36 1.37 public: 1.38 @@ -430,6 +440,9 @@ 1.39 #ifdef TARGET_ARCH_ppc 1.40 # include "relocInfo_ppc.hpp" 1.41 #endif 1.42 +#ifdef TARGET_ARCH_mips 1.43 +# include "relocInfo_mips.hpp" 1.44 +#endif 1.45 1.46 1.47 protected: 1.48 @@ -1021,6 +1034,16 @@ 1.49 // Note: metadata_value transparently converts Universe::non_metadata_word to NULL. 1.50 }; 1.51 1.52 + #ifdef MIPS64 1.53 + // to handle the set_last_java_frame pc 1.54 + class internal_pc_Relocation : public Relocation { 1.55 + relocInfo::relocType type() { return relocInfo::internal_pc_type; } 1.56 + public: 1.57 + address pc() {pd_get_address_from_code();} 1.58 + //void fix_relocation_at_move(intptr_t delta); 1.59 + void fix_relocation_after_move(const CodeBuffer* src, CodeBuffer* dest); 1.60 + }; 1.61 + #endif 1.62 1.63 class virtual_call_Relocation : public CallRelocation { 1.64 relocInfo::relocType type() { return relocInfo::virtual_call_type; }