8181785: Remove the experimental ClearFPUAtPark JVM Flag
Removing the experimental and unstable ClearFPUAtPark optimization for SPARC Reviewed-by: kbarrett, tschatzl, rehn
This commit is contained in:
parent
7bea157c87
commit
2a0bd0cd04
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -37,14 +37,6 @@ void handle_unexpected_exception(Thread* thread, int sig, siginfo_t* info, addre
|
|||||||
void continue_with_dump(void);
|
void continue_with_dump(void);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__sparc) && defined(COMPILER2)
|
|
||||||
// For Sun Studio compiler implementation is in file
|
|
||||||
// src/os_cpu/solaris_sparc/vm/solaris_sparc.il
|
|
||||||
// For gcc implementation is in file
|
|
||||||
// src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp
|
|
||||||
extern "C" void _mark_fpu_nosave() ;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define PROCFILE_LENGTH 128
|
#define PROCFILE_LENGTH 128
|
||||||
|
|
||||||
#endif // OS_SOLARIS_VM_OS_SHARE_SOLARIS_HPP
|
#endif // OS_SOLARIS_VM_OS_SHARE_SOLARIS_HPP
|
||||||
|
@ -5103,11 +5103,6 @@ void os::PlatformEvent::park() { // AKA: down()
|
|||||||
if (v == 0) {
|
if (v == 0) {
|
||||||
// Do this the hard way by blocking ...
|
// Do this the hard way by blocking ...
|
||||||
// See http://monaco.sfbay/detail.jsf?cr=5094058.
|
// See http://monaco.sfbay/detail.jsf?cr=5094058.
|
||||||
// TODO-FIXME: for Solaris SPARC set fprs.FEF=0 prior to parking.
|
|
||||||
// Only for SPARC >= V8PlusA
|
|
||||||
#if defined(__sparc) && defined(COMPILER2)
|
|
||||||
if (ClearFPUAtPark) { _mark_fpu_nosave(); }
|
|
||||||
#endif
|
|
||||||
int status = os::Solaris::mutex_lock(_mutex);
|
int status = os::Solaris::mutex_lock(_mutex);
|
||||||
assert_status(status == 0, status, "mutex_lock");
|
assert_status(status == 0, status, "mutex_lock");
|
||||||
guarantee(_nParked == 0, "invariant");
|
guarantee(_nParked == 0, "invariant");
|
||||||
@ -5150,11 +5145,6 @@ int os::PlatformEvent::park(jlong millis) {
|
|||||||
compute_abstime(&abst, millis);
|
compute_abstime(&abst, millis);
|
||||||
|
|
||||||
// See http://monaco.sfbay/detail.jsf?cr=5094058.
|
// See http://monaco.sfbay/detail.jsf?cr=5094058.
|
||||||
// For Solaris SPARC set fprs.FEF=0 prior to parking.
|
|
||||||
// Only for SPARC >= V8PlusA
|
|
||||||
#if defined(__sparc) && defined(COMPILER2)
|
|
||||||
if (ClearFPUAtPark) { _mark_fpu_nosave(); }
|
|
||||||
#endif
|
|
||||||
int status = os::Solaris::mutex_lock(_mutex);
|
int status = os::Solaris::mutex_lock(_mutex);
|
||||||
assert_status(status == 0, status, "mutex_lock");
|
assert_status(status == 0, status, "mutex_lock");
|
||||||
guarantee(_nParked == 0, "invariant");
|
guarantee(_nParked == 0, "invariant");
|
||||||
@ -5347,12 +5337,6 @@ void Parker::park(bool isAbsolute, jlong time) {
|
|||||||
|
|
||||||
// Do this the hard way by blocking ...
|
// Do this the hard way by blocking ...
|
||||||
// See http://monaco.sfbay/detail.jsf?cr=5094058.
|
// See http://monaco.sfbay/detail.jsf?cr=5094058.
|
||||||
// TODO-FIXME: for Solaris SPARC set fprs.FEF=0 prior to parking.
|
|
||||||
// Only for SPARC >= V8PlusA
|
|
||||||
#if defined(__sparc) && defined(COMPILER2)
|
|
||||||
if (ClearFPUAtPark) { _mark_fpu_nosave(); }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (time == 0) {
|
if (time == 0) {
|
||||||
status = os::Solaris::cond_wait(_cond, _mutex);
|
status = os::Solaris::cond_wait(_cond, _mutex);
|
||||||
} else {
|
} else {
|
||||||
|
@ -725,14 +725,6 @@ void os::Solaris::init_thread_fpu_state(void) {
|
|||||||
// Nothing needed on Sparc.
|
// Nothing needed on Sparc.
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(__sparc) && defined(COMPILER2) && defined(_GNU_SOURCE)
|
|
||||||
// See file build/solaris/makefiles/$compiler.make
|
|
||||||
// For compiler1 the architecture is v8 and frps isn't present in v8
|
|
||||||
extern "C" void _mark_fpu_nosave() {
|
|
||||||
__asm__ __volatile__ ("wr %%g0, 0, %%fprs \n\t" : : :);
|
|
||||||
}
|
|
||||||
#endif //defined(__sparc) && defined(COMPILER2)
|
|
||||||
|
|
||||||
#ifndef PRODUCT
|
#ifndef PRODUCT
|
||||||
void os::verify_stack_alignment() {
|
void os::verify_stack_alignment() {
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
|
// Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||||
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
//
|
//
|
||||||
// This code is free software; you can redistribute it and/or modify it
|
// This code is free software; you can redistribute it and/or modify it
|
||||||
@ -32,17 +32,6 @@
|
|||||||
.end
|
.end
|
||||||
|
|
||||||
|
|
||||||
// Clear SPARC fprs.FEF DU and DL bits --
|
|
||||||
// allows the kernel to avoid saving FPU state at context-switch time.
|
|
||||||
// Use for state-transition points (into _thread_blocked) or when
|
|
||||||
// parking.
|
|
||||||
|
|
||||||
.inline _mark_fpu_nosave, 0
|
|
||||||
.volatile
|
|
||||||
wr %g0, 0, %fprs
|
|
||||||
.nonvolatile
|
|
||||||
.end
|
|
||||||
|
|
||||||
// Support for jint Atomic::xchg(jint exchange_value, volatile jint* dest).
|
// Support for jint Atomic::xchg(jint exchange_value, volatile jint* dest).
|
||||||
//
|
//
|
||||||
// Arguments:
|
// Arguments:
|
||||||
|
@ -1191,8 +1191,6 @@ public:
|
|||||||
\
|
\
|
||||||
diagnostic(bool, InlineNotify, true, "intrinsify subset of notify") \
|
diagnostic(bool, InlineNotify, true, "intrinsify subset of notify") \
|
||||||
\
|
\
|
||||||
experimental(intx, ClearFPUAtPark, 0, "(Unsafe, Unstable)") \
|
|
||||||
\
|
|
||||||
experimental(intx, hashCode, 5, \
|
experimental(intx, hashCode, 5, \
|
||||||
"(Unstable) select hashCode generation algorithm") \
|
"(Unstable) select hashCode generation algorithm") \
|
||||||
\
|
\
|
||||||
|
Loading…
x
Reference in New Issue
Block a user