comparison src/share/vm/runtime/javaCalls.cpp @ 1930:2d26b0046e0d

Merge.
author Thomas Wuerthinger <wuerthinger@ssw.jku.at>
date Tue, 30 Nov 2010 14:53:30 +0100
parents 6223633ce7dd d5d065957597
children 06f017f7daa7
comparison
equal deleted inserted replaced
1484:6b7001391c97 1930:2d26b0046e0d
1 /* 1 /*
2 * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. 2 * Copyright (c) 1997, 2010, 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.
14 * 14 *
15 * You should have received a copy of the GNU General Public License version 15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation, 16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 * 18 *
19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * CA 95054 USA or visit www.sun.com if you need additional information or 20 * or visit www.oracle.com if you need additional information or have any
21 * have any questions. 21 * questions.
22 * 22 *
23 */ 23 */
24 24
25 #include "incls/_precompiled.incl" 25 #include "incls/_precompiled.incl"
26 #include "incls/_javaCalls.cpp.incl" 26 #include "incls/_javaCalls.cpp.incl"
346 #endif 346 #endif
347 347
348 348
349 // (tw) may we do this? 349 // (tw) may we do this?
350 //assert(!thread->is_Compiler_thread(), "cannot compile from the compiler"); 350 //assert(!thread->is_Compiler_thread(), "cannot compile from the compiler");
351 if (CompilationPolicy::mustBeCompiled(method)) { 351 if (CompilationPolicy::must_be_compiled(method)) {
352 CompileBroker::compile_method(method, InvocationEntryBci, 352 CompileBroker::compile_method(method, InvocationEntryBci,
353 methodHandle(), 0, "mustBeCompiled", CHECK); 353 CompLevel_initial_compile,
354 methodHandle(), 0, "must_be_compiled", CHECK);
354 } 355 }
355 356
356 // Since the call stub sets up like the interpreter we call the from_interpreted_entry 357 // Since the call stub sets up like the interpreter we call the from_interpreted_entry
357 // so we can go compiled via a i2c. Otherwise initial entry method will always 358 // so we can go compiled via a i2c. Otherwise initial entry method will always
358 // run interpreted. 359 // run interpreted.
434 for(int i = 0; i < _size; i++) { 435 for(int i = 0; i < _size; i++) {
435 if (_is_oop[i]) { 436 if (_is_oop[i]) {
436 // Handle conversion 437 // Handle conversion
437 _value[i] = (intptr_t)Handle::raw_resolve((oop *)_value[i]); 438 _value[i] = (intptr_t)Handle::raw_resolve((oop *)_value[i]);
438 } 439 }
439 // The parameters are moved to the parameters array to include the tags.
440 if (TaggedStackInterpreter) {
441 // Tags are interspersed with arguments. Tags are first.
442 int tagged_index = i*2;
443 _parameters[tagged_index] = _is_oop[i] ? frame::TagReference :
444 frame::TagValue;
445 _parameters[tagged_index+1] = _value[i];
446 }
447 } 440 }
448 // Return argument vector 441 // Return argument vector
449 return TaggedStackInterpreter ? _parameters : _value; 442 return _value;
450 } 443 }
451 444
452 445
453 class SignatureChekker : public SignatureIterator { 446 class SignatureChekker : public SignatureIterator {
454 private: 447 private: