hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_32.ad

Print this page
rev 611 : Merge

*** 1,7 **** // ! // Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License version 2 only, as // published by the Free Software Foundation. --- 1,7 ---- // ! // Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License version 2 only, as // published by the Free Software Foundation.
*** 60,76 **** %} enc_class solaris_breakpoint %{ MacroAssembler* masm = new MacroAssembler(&cbuf); // Really need to fix this ! masm->pushl(rax); ! masm->pushl(rcx); ! masm->pushl(rdx); masm->call(RuntimeAddress(CAST_FROM_FN_PTR(address, os::breakpoint))); ! masm->popl(rdx); ! masm->popl(rcx); ! masm->popl(rax); %} enc_class call_epilog %{ if( VerifyStackAtCalls ) { // Check that stack depth is unchanged: find majik cookie on stack --- 60,76 ---- %} enc_class solaris_breakpoint %{ MacroAssembler* masm = new MacroAssembler(&cbuf); // Really need to fix this ! masm->push(rax); ! masm->push(rcx); ! masm->push(rdx); masm->call(RuntimeAddress(CAST_FROM_FN_PTR(address, os::breakpoint))); ! masm->pop(rdx); ! masm->pop(rcx); ! masm->pop(rax); %} enc_class call_epilog %{ if( VerifyStackAtCalls ) { // Check that stack depth is unchanged: find majik cookie on stack
*** 108,127 **** //----------OS and Locking Instructions---------------------------------------- // This name is KNOWN by the ADLC and cannot be changed. // The ADLC forces a 'TypeRawPtr::BOTTOM' output type // for this guy. ! instruct tlsLoadP(eAXRegP dst, eFlagsReg cr) %{ match(Set dst (ThreadLocal)); effect(DEF dst, KILL cr); ! format %{ "MOV EAX, Thread::current()" %} ins_encode( solaris_tlsencode(dst) ); ins_pipe( ialu_reg_fat ); %} ! instruct TLS(eAXRegP dst) %{ match(Set dst (ThreadLocal)); expand %{ tlsLoadP(dst); %} --- 108,127 ---- //----------OS and Locking Instructions---------------------------------------- // This name is KNOWN by the ADLC and cannot be changed. // The ADLC forces a 'TypeRawPtr::BOTTOM' output type // for this guy. ! instruct tlsLoadP(eRegP dst, eFlagsReg cr) %{ match(Set dst (ThreadLocal)); effect(DEF dst, KILL cr); ! format %{ "MOV $dst, Thread::current()" %} ins_encode( solaris_tlsencode(dst) ); ins_pipe( ialu_reg_fat ); %} ! instruct TLS(eRegP dst) %{ match(Set dst (ThreadLocal)); expand %{ tlsLoadP(dst); %}