comparison src/cpu/x86/vm/sharedRuntime_x86_64.cpp @ 1187:cf0685d550f1

6911204: generated adapters with large signatures can fill up the code cache Reviewed-by: kvn, jrose
author never
date Wed, 20 Jan 2010 22:10:33 -0800
parents e66fd840cb6b
children 93767e6a2dfd
comparison
equal deleted inserted replaced
1179:3d6016e040d6 1187:cf0685d550f1
1 /* 1 /*
2 * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved. 2 * Copyright 2003-2010 Sun Microsystems, Inc. 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.
776 // --------------------------------------------------------------- 776 // ---------------------------------------------------------------
777 AdapterHandlerEntry* SharedRuntime::generate_i2c2i_adapters(MacroAssembler *masm, 777 AdapterHandlerEntry* SharedRuntime::generate_i2c2i_adapters(MacroAssembler *masm,
778 int total_args_passed, 778 int total_args_passed,
779 int comp_args_on_stack, 779 int comp_args_on_stack,
780 const BasicType *sig_bt, 780 const BasicType *sig_bt,
781 const VMRegPair *regs) { 781 const VMRegPair *regs,
782 AdapterFingerPrint* fingerprint) {
782 address i2c_entry = __ pc(); 783 address i2c_entry = __ pc();
783 784
784 gen_i2c_adapter(masm, total_args_passed, comp_args_on_stack, sig_bt, regs); 785 gen_i2c_adapter(masm, total_args_passed, comp_args_on_stack, sig_bt, regs);
785 786
786 // ------------------------------------------------------------------------- 787 // -------------------------------------------------------------------------
822 address c2i_entry = __ pc(); 823 address c2i_entry = __ pc();
823 824
824 gen_c2i_adapter(masm, total_args_passed, comp_args_on_stack, sig_bt, regs, skip_fixup); 825 gen_c2i_adapter(masm, total_args_passed, comp_args_on_stack, sig_bt, regs, skip_fixup);
825 826
826 __ flush(); 827 __ flush();
827 return new AdapterHandlerEntry(i2c_entry, c2i_entry, c2i_unverified_entry); 828 return AdapterHandlerLibrary::new_entry(fingerprint, i2c_entry, c2i_entry, c2i_unverified_entry);
828 } 829 }
829 830
830 int SharedRuntime::c_calling_convention(const BasicType *sig_bt, 831 int SharedRuntime::c_calling_convention(const BasicType *sig_bt,
831 VMRegPair *regs, 832 VMRegPair *regs,
832 int total_args_passed) { 833 int total_args_passed) {