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);
%}