src/cpu/ppc/vm/compiledIC_ppc.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File hotspot Sdiff src/cpu/ppc/vm

src/cpu/ppc/vm/compiledIC_ppc.cpp

Print this page
rev 29185 : Review changes


 146 #else
 147   ShouldNotReachHere();
 148   return NULL;
 149 #endif
 150 }
 151 #undef __
 152 
 153 // Size of java_to_interp stub, this doesn't need to be accurate but it must
 154 // be larger or equal to the real size of the stub.
 155 // Used for optimization in Compile::Shorten_branches.
 156 int CompiledStaticCall::to_interp_stub_size() {
 157   return 12 * BytesPerInstWord;
 158 }
 159 
 160 // Relocation entries for call stub, compiled java to interpreter.
 161 // Used for optimization in Compile::Shorten_branches.
 162 int CompiledStaticCall::reloc_to_interp_stub() {
 163   return 5;
 164 }
 165 
 166 void CompiledDirectStaticCall::set_to_interpreted(methodHandle callee, address entry) {
 167   address stub = find_stub(/*is_aot*/ false);
 168   guarantee(stub != NULL, "stub not found");
 169 
 170   if (TraceICs) {
 171     ResourceMark rm;
 172     tty->print_cr("CompiledDirectStaticCall@" INTPTR_FORMAT ": set_to_interpreted %s",
 173                   p2i(instruction_address()),
 174                   callee->name_and_sig_as_C_string());
 175   }
 176 
 177   // Creation also verifies the object.
 178   NativeMovConstReg* method_holder = nativeMovConstReg_at(stub + IC_pos_in_java_to_interp_stub);
 179   NativeJump*        jump          = nativeJump_at(method_holder->next_instruction_address());
 180 
 181 #ifdef ASSERT
 182   // read the value once
 183   volatile intptr_t data = method_holder->data();
 184   volatile address destination = jump->jump_destination();
 185   assert(data == 0 || data == (intptr_t)callee(),
 186          "a) MT-unsafe modification of inline cache");




 146 #else
 147   ShouldNotReachHere();
 148   return NULL;
 149 #endif
 150 }
 151 #undef __
 152 
 153 // Size of java_to_interp stub, this doesn't need to be accurate but it must
 154 // be larger or equal to the real size of the stub.
 155 // Used for optimization in Compile::Shorten_branches.
 156 int CompiledStaticCall::to_interp_stub_size() {
 157   return 12 * BytesPerInstWord;
 158 }
 159 
 160 // Relocation entries for call stub, compiled java to interpreter.
 161 // Used for optimization in Compile::Shorten_branches.
 162 int CompiledStaticCall::reloc_to_interp_stub() {
 163   return 5;
 164 }
 165 
 166 void CompiledDirectStaticCall::set_to_interpreted(const methodHandle& callee, address entry) {
 167   address stub = find_stub(/*is_aot*/ false);
 168   guarantee(stub != NULL, "stub not found");
 169 
 170   if (TraceICs) {
 171     ResourceMark rm;
 172     tty->print_cr("CompiledDirectStaticCall@" INTPTR_FORMAT ": set_to_interpreted %s",
 173                   p2i(instruction_address()),
 174                   callee->name_and_sig_as_C_string());
 175   }
 176 
 177   // Creation also verifies the object.
 178   NativeMovConstReg* method_holder = nativeMovConstReg_at(stub + IC_pos_in_java_to_interp_stub);
 179   NativeJump*        jump          = nativeJump_at(method_holder->next_instruction_address());
 180 
 181 #ifdef ASSERT
 182   // read the value once
 183   volatile intptr_t data = method_holder->data();
 184   volatile address destination = jump->jump_destination();
 185   assert(data == 0 || data == (intptr_t)callee(),
 186          "a) MT-unsafe modification of inline cache");


src/cpu/ppc/vm/compiledIC_ppc.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File