comparison src/cpu/x86/vm/interp_masm_x86_64.cpp @ 10408:836a62f43af9

Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/
author Doug Simon <doug.simon@oracle.com>
date Wed, 19 Jun 2013 10:45:56 +0200
parents c76b43ed5089 aeaca88565e6
children 63e44cdabb91
comparison
equal deleted inserted replaced
10086:e0fb8a213650 10408:836a62f43af9
1 /* 1 /*
2 * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
267 shll(tmp, 2 + LogBytesPerWord); 267 shll(tmp, 2 + LogBytesPerWord);
268 movptr(cache, Address(rbp, frame::interpreter_frame_cache_offset * wordSize)); 268 movptr(cache, Address(rbp, frame::interpreter_frame_cache_offset * wordSize));
269 // skip past the header 269 // skip past the header
270 addptr(cache, in_bytes(ConstantPoolCache::base_offset())); 270 addptr(cache, in_bytes(ConstantPoolCache::base_offset()));
271 addptr(cache, tmp); // construct pointer to cache entry 271 addptr(cache, tmp); // construct pointer to cache entry
272 }
273
274 void InterpreterMacroAssembler::get_method_counters(Register method,
275 Register mcs, Label& skip) {
276 Label has_counters;
277 movptr(mcs, Address(method, Method::method_counters_offset()));
278 testptr(mcs, mcs);
279 jcc(Assembler::notZero, has_counters);
280 call_VM(noreg, CAST_FROM_FN_PTR(address,
281 InterpreterRuntime::build_method_counters), method);
282 movptr(mcs, Address(method,Method::method_counters_offset()));
283 testptr(mcs, mcs);
284 jcc(Assembler::zero, skip); // No MethodCounters allocated, OutOfMemory
285 bind(has_counters);
272 } 286 }
273 287
274 // Load object from cpool->resolved_references(index) 288 // Load object from cpool->resolved_references(index)
275 void InterpreterMacroAssembler::load_resolved_reference_at_index( 289 void InterpreterMacroAssembler::load_resolved_reference_at_index(
276 Register result, Register index) { 290 Register result, Register index) {