src/share/vm/code/relocInfo.hpp

changeset 8856
ac27a9c85bea
parent 6876
710a3c8b516e
     1.1 --- a/src/share/vm/code/relocInfo.hpp	Wed Sep 06 00:35:24 2017 -0700
     1.2 +++ b/src/share/vm/code/relocInfo.hpp	Thu May 24 18:41:44 2018 +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; }

mercurial