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.
|
||||
*
|
||||
* 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);
|
||||
#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
|
||||
|
||||
#endif // OS_SOLARIS_VM_OS_SHARE_SOLARIS_HPP
|
||||
|
@ -5103,11 +5103,6 @@ void os::PlatformEvent::park() { // AKA: down()
|
||||
if (v == 0) {
|
||||
// Do this the hard way by blocking ...
|
||||
// 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);
|
||||
assert_status(status == 0, status, "mutex_lock");
|
||||
guarantee(_nParked == 0, "invariant");
|
||||
@ -5150,11 +5145,6 @@ int os::PlatformEvent::park(jlong millis) {
|
||||
compute_abstime(&abst, millis);
|
||||
|
||||
// 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);
|
||||
assert_status(status == 0, status, "mutex_lock");
|
||||
guarantee(_nParked == 0, "invariant");
|
||||
@ -5347,12 +5337,6 @@ void Parker::park(bool isAbsolute, jlong time) {
|
||||
|
||||
// Do this the hard way by blocking ...
|
||||
// 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) {
|
||||
status = os::Solaris::cond_wait(_cond, _mutex);
|
||||
} else {
|
||||
|
@ -725,14 +725,6 @@ void os::Solaris::init_thread_fpu_state(void) {
|
||||
// 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
|
||||
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.
|
||||
//
|
||||
// This code is free software; you can redistribute it and/or modify it
|
||||
@ -32,17 +32,6 @@
|
||||
.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).
|
||||
//
|
||||
// Arguments:
|
||||
|
@ -1191,8 +1191,6 @@ public:
|
||||
\
|
||||
diagnostic(bool, InlineNotify, true, "intrinsify subset of notify") \
|
||||
\
|
||||
experimental(intx, ClearFPUAtPark, 0, "(Unsafe, Unstable)") \
|
||||
\
|
||||
experimental(intx, hashCode, 5, \
|
||||
"(Unstable) select hashCode generation algorithm") \
|
||||
\
|
||||
|
Loading…
Reference in New Issue
Block a user