comparison src/cpu/sparc/vm/sharedRuntime_sparc.cpp @ 2405:3d58a4983660

7022998: JSR 292 recursive method handle calls inline themselves infinitely Reviewed-by: never, kvn
author twisti
date Mon, 28 Mar 2011 03:58:07 -0700
parents 3582bf76420e
children f7d55ea6ee56
comparison
equal deleted inserted replaced
2404:b40d4fa697bf 2405:3d58a4983660
1 /* 1 /*
2 * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2003, 2011, 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.
1767 // convention (handlizes oops, etc), transitions to native, makes the call, 1767 // convention (handlizes oops, etc), transitions to native, makes the call,
1768 // returns to java state (possibly blocking), unhandlizes any result and 1768 // returns to java state (possibly blocking), unhandlizes any result and
1769 // returns. 1769 // returns.
1770 nmethod *SharedRuntime::generate_native_wrapper(MacroAssembler* masm, 1770 nmethod *SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
1771 methodHandle method, 1771 methodHandle method,
1772 int compile_id,
1772 int total_in_args, 1773 int total_in_args,
1773 int comp_args_on_stack, // in VMRegStackSlots 1774 int comp_args_on_stack, // in VMRegStackSlots
1774 BasicType *in_sig_bt, 1775 BasicType *in_sig_bt,
1775 VMRegPair *in_regs, 1776 VMRegPair *in_regs,
1776 BasicType ret_type) { 1777 BasicType ret_type) {
2460 __ delayed()->restore(); 2461 __ delayed()->restore();
2461 2462
2462 __ flush(); 2463 __ flush();
2463 2464
2464 nmethod *nm = nmethod::new_native_nmethod(method, 2465 nmethod *nm = nmethod::new_native_nmethod(method,
2466 compile_id,
2465 masm->code(), 2467 masm->code(),
2466 vep_offset, 2468 vep_offset,
2467 frame_complete, 2469 frame_complete,
2468 stack_slots / VMRegImpl::slots_per_word, 2470 stack_slots / VMRegImpl::slots_per_word,
2469 (is_static ? in_ByteSize(klass_offset) : in_ByteSize(receiver_offset)), 2471 (is_static ? in_ByteSize(klass_offset) : in_ByteSize(receiver_offset)),