Mercurial > hg > graal-compiler
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: |