svn commit: r417048 - head/java/openjdk8/files

Greg Lewis glewis at FreeBSD.org
Sat Jun 18 05:44:37 UTC 2016


Author: glewis
Date: Sat Jun 18 05:44:35 2016
New Revision: 417048
URL: https://svnweb.freebsd.org/changeset/ports/417048

Log:
  . Regenerate patch-bsd and patch-bsd-test.  This obsoletes another patch
    and should also fix ppc64 support.

Deleted:
  head/java/openjdk8/files/patch-jdk-src-solaris-native-java-net-bsd_close.c
Modified:
  head/java/openjdk8/files/patch-bsd
  head/java/openjdk8/files/patch-bsd-test

Modified: head/java/openjdk8/files/patch-bsd
==============================================================================
--- head/java/openjdk8/files/patch-bsd	Sat Jun 18 05:09:50 2016	(r417047)
+++ head/java/openjdk8/files/patch-bsd	Sat Jun 18 05:44:35 2016	(r417048)
@@ -1067,20 +1067,20 @@
    ifneq (,$$($1_BIN))
      $$(error BIN has been replaced with OBJECT_DIR)
 --- ./hotspot/make/bsd/Makefile	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/make/bsd/Makefile	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/make/bsd/Makefile	Fri Jun 17 22:08:33 2016 -0700
 @@ -66,6 +66,10 @@
      FORCE_TIERED=1
    endif
  endif
 +# C1 is not ported on ppc64, so we cannot build a tiered VM:
-+ifeq ($(ARCH),ppc64)
++ifneq (,$(findstring $(ARCH), ppc ppc64))
 +  FORCE_TIERED=0
 +endif
  
  ifdef LP64
    ifeq ("$(filter $(LP64_ARCH),$(BUILDARCH))","")
 --- ./hotspot/make/bsd/makefiles/build_vm_def.sh	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/make/bsd/makefiles/build_vm_def.sh	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/make/bsd/makefiles/build_vm_def.sh	Fri Jun 17 22:08:33 2016 -0700
 @@ -1,12 +1,28 @@
  #!/bin/sh
  
@@ -1117,7 +1117,7 @@
 +    }' | sort -u ;;
 +esac
 --- ./hotspot/make/bsd/makefiles/debug.make	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/make/bsd/makefiles/debug.make	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/make/bsd/makefiles/debug.make	Fri Jun 17 22:08:33 2016 -0700
 @@ -35,7 +35,10 @@
  # to inhibit the effect of the previous line on CFLAGS.
  
@@ -1131,8 +1131,8 @@
  VERSION = debug
  SYSDEFS += -DASSERT
 --- ./hotspot/make/bsd/makefiles/defs.make	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/make/bsd/makefiles/defs.make	Mon May 09 17:15:53 2016 -0400
-@@ -29,7 +29,10 @@
++++ ./hotspot/make/bsd/makefiles/defs.make	Fri Jun 17 22:08:33 2016 -0700
+@@ -29,7 +29,15 @@
  SLASH_JAVA ?= /java
  
  # Need PLATFORM (os-arch combo names) for jdk and hotspot, plus libarch name
@@ -1140,27 +1140,41 @@
 +# ARCH can be set explicitly in spec.gmk
 +ifndef ARCH
 +  ARCH := $(shell uname -m)
++  # Fold little endian PowerPC64 into big-endian (if ARCH is set in
++  # hotspot-spec.gmk, this will be done by the configure script).
++  ifeq ($(ARCH),ppc64le)
++    ARCH := ppc64
++  endif
 +endif
  PATH_SEP = :
  ifeq ($(LP64), 1)
    ARCH_DATA_MODEL ?= 64
-@@ -124,6 +127,15 @@
-   HS_ARCH          = ppc
+@@ -117,11 +125,19 @@
+ endif
+ 
+ # PPC
+-ifeq ($(ARCH), ppc)
+-  ARCH_DATA_MODEL  = 32
+-  PLATFORM         = bsd-ppc
+-  VM_PLATFORM      = bsd_ppc
+-  HS_ARCH          = ppc
++# Notice: after 8046471 ARCH will be 'ppc' for top-level ppc64 builds but
++# 'ppc64' for HotSpot-only ppc64 builds. Need to detect both variants here!
++ifneq (,$(findstring $(ARCH), ppc ppc64))
++  ifeq ($(ARCH_DATA_MODEL), 64)
++    MAKE_ARGS        += LP64=1
++    PLATFORM         = bsd-ppc64
++    VM_PLATFORM      = bsd_ppc64
++  else
++    ARCH_DATA_MODEL  = 32
++    PLATFORM         = bsd-ppc
++    VM_PLATFORM      = bsd_ppc
++  endif
++  HS_ARCH = ppc
  endif
  
-+# PPC64
-+ifeq ($(ARCH), ppc64)
-+  ARCH_DATA_MODEL  = 64
-+  MAKE_ARGS        += LP64=1
-+  PLATFORM         = bsd-ppc64
-+  VM_PLATFORM      = bsd_ppc64
-+  HS_ARCH          = ppc
-+endif
-+
  # On 32 bit bsd we build server and client, on 64 bit just server.
- ifeq ($(JVM_VARIANTS),)
-   ifeq ($(ARCH_DATA_MODEL), 32)
-@@ -321,6 +333,18 @@
+@@ -321,6 +337,18 @@
  ifeq ($(JVM_VARIANT_MINIMAL1),true)
    EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/Xusage.txt
    EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/libjvm.$(LIBRARY_SUFFIX)
@@ -1180,7 +1194,7 @@
  
  # Serviceability Binaries
 --- ./hotspot/make/bsd/makefiles/fastdebug.make	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/make/bsd/makefiles/fastdebug.make	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/make/bsd/makefiles/fastdebug.make	Fri Jun 17 22:08:33 2016 -0700
 @@ -56,7 +56,10 @@
  # to inhibit the effect of the previous line on CFLAGS.
  
@@ -1194,7 +1208,7 @@
  VERSION = fastdebug
  SYSDEFS += -DASSERT -DCHECK_UNHANDLED_OOPS
 --- ./hotspot/make/bsd/makefiles/gcc.make	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/make/bsd/makefiles/gcc.make	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/make/bsd/makefiles/gcc.make	Fri Jun 17 22:08:33 2016 -0700
 @@ -168,6 +168,9 @@
    CFLAGS += -DDONT_USE_PRECOMPILED_HEADER
  endif
@@ -1321,7 +1335,7 @@
  endif
  
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ ./hotspot/make/bsd/makefiles/launcher.make	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/make/bsd/makefiles/launcher.make	Fri Jun 17 22:08:33 2016 -0700
 @@ -0,0 +1,117 @@
 +#
 +# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
@@ -1441,7 +1455,7 @@
 +	$(QUIETLY) chmod +x $@
 +
 --- ./hotspot/make/bsd/makefiles/mapfile-vers-debug	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/make/bsd/makefiles/mapfile-vers-debug	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/make/bsd/makefiles/mapfile-vers-debug	Fri Jun 17 22:08:33 2016 -0700
 @@ -21,246 +21,254 @@
  # questions.
  #
@@ -1449,16 +1463,10 @@
 -# Only used for OSX/Darwin builds
  
  # Define public interface.
-+
-+SUNWprivate_1.1 {
-+        global:
-                 # _JNI
+-                # _JNI
 -                _JNI_CreateJavaVM
 -                _JNI_GetCreatedJavaVMs
 -                _JNI_GetDefaultJavaVMInitArgs
-+                JNI_CreateJavaVM;
-+                JNI_GetCreatedJavaVMs;
-+                JNI_GetDefaultJavaVMInitArgs;
  
 -                # _JVM
 -                _JVM_Accept
@@ -1677,6 +1685,17 @@
 -                _JVM_Write
 -                _JVM_Yield
 -                _JVM_handle_bsd_signal
++SUNWprivate_1.1 {
++        global:
++                # _JNI
++                JNI_CreateJavaVM;
++                JNI_GetCreatedJavaVMs;
++                JNI_GetDefaultJavaVMInitArgs;
+ 
+-                # debug _JVM
+-                _JVM_AccessVMBooleanFlag
+-                _JVM_AccessVMIntFlag
+-                _JVM_VMBreakPoint
 +                # JVM
 +                JVM_Accept;
 +                JVM_ActiveProcessorCount;
@@ -1894,11 +1913,7 @@
 +                JVM_Write;
 +                JVM_Yield;
 +                JVM_handle_bsd_signal;
- 
--                # debug _JVM
--                _JVM_AccessVMBooleanFlag
--                _JVM_AccessVMIntFlag
--                _JVM_VMBreakPoint
++
 +                # debug JVM
 +                JVM_AccessVMBooleanFlag;
 +                JVM_AccessVMIntFlag;
@@ -1929,7 +1944,7 @@
 +                *;
 +};
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ ./hotspot/make/bsd/makefiles/mapfile-vers-debug.macosx	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/make/bsd/makefiles/mapfile-vers-debug.macosx	Fri Jun 17 22:08:33 2016 -0700
 @@ -0,0 +1,266 @@
 +#
 +# Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
@@ -2198,7 +2213,7 @@
 +                # INSERT VTABLE SYMBOLS HERE
 +
 --- ./hotspot/make/bsd/makefiles/mapfile-vers-product	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/make/bsd/makefiles/mapfile-vers-product	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/make/bsd/makefiles/mapfile-vers-product	Fri Jun 17 22:08:33 2016 -0700
 @@ -21,241 +21,249 @@
  # questions.
  #
@@ -2206,16 +2221,10 @@
 -# Only used for OSX/Darwin builds
  
  # Define public interface.
-+
-+SUNWprivate_1.1 {
-+        global:
-                 # _JNI
+-                # _JNI
 -                _JNI_CreateJavaVM
 -                _JNI_GetCreatedJavaVMs
 -                _JNI_GetDefaultJavaVMInitArgs
-+                JNI_CreateJavaVM;
-+                JNI_GetCreatedJavaVMs;
-+                JNI_GetDefaultJavaVMInitArgs;
  
 -                # _JVM
 -                _JVM_Accept
@@ -2434,6 +2443,13 @@
 -                _JVM_Write
 -                _JVM_Yield
 -                _JVM_handle_bsd_signal
++SUNWprivate_1.1 {
++        global:
++                # _JNI
++                JNI_CreateJavaVM;
++                JNI_GetCreatedJavaVMs;
++                JNI_GetDefaultJavaVMInitArgs;
++
 +                # JVM
 +                JVM_Accept;
 +                JVM_ActiveProcessorCount;
@@ -2677,7 +2693,7 @@
 +                *;
 +};
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ ./hotspot/make/bsd/makefiles/mapfile-vers-product.macosx	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/make/bsd/makefiles/mapfile-vers-product.macosx	Fri Jun 17 22:08:33 2016 -0700
 @@ -0,0 +1,261 @@
 +#
 +# Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
@@ -2941,7 +2957,7 @@
 +                # INSERT VTABLE SYMBOLS HERE
 +
 --- ./hotspot/make/bsd/makefiles/optimized.make	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/make/bsd/makefiles/optimized.make	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/make/bsd/makefiles/optimized.make	Fri Jun 17 22:08:33 2016 -0700
 @@ -38,6 +38,9 @@
  # to inhibit the effect of the previous line on CFLAGS.
  
@@ -2954,59 +2970,8 @@
  
  VERSION = optimized
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ ./hotspot/make/bsd/makefiles/ppc64.make	Mon May 09 17:15:53 2016 -0400
-@@ -0,0 +1,102 @@
-+#
-+# Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
-+# Copyright 2012, 2013 SAP AG. 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.
-+#
-+# This code is distributed in the hope that it will be useful, but WITHOUT
-+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-+# version 2 for more details (a copy is included in the LICENSE file that
-+# accompanied this code).
-+#
-+# You should have received a copy of the GNU General Public License version
-+# 2 along with this work; if not, write to the Free Software Foundation,
-+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-+#
-+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-+# or visit www.oracle.com if you need additional information or have any
-+# questions.
-+#
-+#
-+
-+# make c code know it is on a 64 bit platform.
-+CFLAGS += -D_LP64=1
-+
-+ifeq ($(origin OPENJDK_TARGET_CPU_ENDIAN),undefined)
-+  # This can happen during hotspot standalone build. Set endianness from
-+  # uname. We assume build and target machines are the same.
-+  OPENJDK_TARGET_CPU_ENDIAN:=$(if $(filter ppc64le,$(shell uname -m)),little,big)
-+endif
-+
-+ifeq ($(filter $(OPENJDK_TARGET_CPU_ENDIAN),big little),)
-+  $(error OPENJDK_TARGET_CPU_ENDIAN value should be 'big' or 'little')
-+endif
-+
-+ifeq ($(OPENJDK_TARGET_CPU_ENDIAN),big)
-+  # fixes `relocation truncated to fit' error for gcc 4.1.
-+  CFLAGS += -mminimal-toc
-+
-+  # finds use ppc64 instructions, but schedule for power5
-+  CFLAGS += -mcpu=powerpc64 -mtune=power5 -minsert-sched-nops=regroup_exact -mno-multiple -mno-string
-+else
-+  # Little endian machine uses ELFv2 ABI.
-+  CFLAGS += -DVM_LITTLE_ENDIAN -DABI_ELFv2
-+
-+  # Use Power8, this is the first CPU to support PPC64 LE with ELFv2 ABI.
-+  CFLAGS += -mcpu=power7 -mtune=power8 -minsert-sched-nops=regroup_exact -mno-multiple -mno-string
-+endif
++++ ./hotspot/make/bsd/makefiles/ppc64.make	Fri Jun 17 22:08:33 2016 -0700
+@@ -0,0 +1,51 @@
 +#
 +# Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
 +# Copyright 2012, 2013 SAP AG. All rights reserved.
@@ -3059,7 +3024,7 @@
 +  CFLAGS += -mcpu=power7 -mtune=power8 -minsert-sched-nops=regroup_exact -mno-multiple -mno-string
 +endif
 --- ./hotspot/make/bsd/makefiles/product.make	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/make/bsd/makefiles/product.make	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/make/bsd/makefiles/product.make	Fri Jun 17 22:08:33 2016 -0700
 @@ -38,7 +38,10 @@
  # to inhibit the effect of the previous line on CFLAGS.
  
@@ -3073,7 +3038,7 @@
  SYSDEFS += -DPRODUCT
  VERSION = optimized
 --- ./hotspot/make/bsd/makefiles/rules.make	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/make/bsd/makefiles/rules.make	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/make/bsd/makefiles/rules.make	Fri Jun 17 22:08:33 2016 -0700
 @@ -34,7 +34,7 @@
  CC_COMPILE       = $(CC) $(CXXFLAGS) $(CFLAGS)
  CXX_COMPILE      = $(CXX) $(CXXFLAGS) $(CFLAGS)
@@ -3084,7 +3049,7 @@
  COMPILE.CC       = $(CC_COMPILE) -c
  GENASM.CC        = $(CC_COMPILE) -S
 --- ./hotspot/make/bsd/makefiles/vm.make	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/make/bsd/makefiles/vm.make	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/make/bsd/makefiles/vm.make	Fri Jun 17 22:08:33 2016 -0700
 @@ -107,7 +107,7 @@
  # File specific flags
  CXXFLAGS += $(CXXFLAGS/BYFILE)
@@ -3095,25 +3060,8 @@
  endif
  
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ ./hotspot/make/bsd/platform_ppc64	Mon May 09 17:15:53 2016 -0400
-@@ -0,0 +1,34 @@
-+os_family = bsd
-+
-+arch = ppc
-+
-+arch_model = ppc_64
-+
-+os_arch = bsd_ppc
-+
-+os_arch_model = bsd_ppc_64
-+
-+lib_arch = ppc64
-+
-+compiler = gcc
-+
-+gnu_dis_arch = ppc64
-+
-+sysdefs = -DBSD -D_ALLBSD_SOURCE -D_GNU_SOURCE -DPPC64
++++ ./hotspot/make/bsd/platform_ppc64	Fri Jun 17 22:08:33 2016 -0700
+@@ -0,0 +1,17 @@
 +os_family = bsd
 +
 +arch = ppc
@@ -3132,7 +3080,7 @@
 +
 +sysdefs = -DBSD -D_ALLBSD_SOURCE -D_GNU_SOURCE -DPPC64
 --- ./hotspot/src/cpu/ppc/vm/bytes_ppc.hpp	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/src/cpu/ppc/vm/bytes_ppc.hpp	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/src/cpu/ppc/vm/bytes_ppc.hpp	Fri Jun 17 22:08:33 2016 -0700
 @@ -277,5 +277,9 @@
  #if defined(TARGET_OS_ARCH_linux_ppc)
  #include "bytes_linux_ppc.inline.hpp"
@@ -3144,7 +3092,7 @@
  
  #endif // CPU_PPC_VM_BYTES_PPC_HPP
 --- ./hotspot/src/cpu/ppc/vm/interpreter_ppc.cpp	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/src/cpu/ppc/vm/interpreter_ppc.cpp	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/src/cpu/ppc/vm/interpreter_ppc.cpp	Fri Jun 17 22:08:33 2016 -0700
 @@ -307,6 +307,8 @@
    // Although AIX runs on big endian CPU, float is in most significant
    // word of an argument slot.
@@ -3154,8 +3102,19 @@
  #else
  #error "unknown OS"
  #endif
+--- ./hotspot/src/cpu/ppc/vm/sharedRuntime_ppc.cpp	Tue Mar 22 11:05:52 2016 -0700
++++ ./hotspot/src/cpu/ppc/vm/sharedRuntime_ppc.cpp	Fri Jun 17 22:08:33 2016 -0700
+@@ -778,6 +778,8 @@
+       // Although AIX runs on big endian CPU, float is in the most
+       // significant word of an argument slot.
+ #define FLOAT_WORD_OFFSET_IN_SLOT 0
++#elif defined(BSD)
++#define FLOAT_WORD_OFFSET_IN_SLOT 1
+ #else
+ #error "unknown OS"
+ #endif
 --- ./hotspot/src/cpu/x86/vm/jni_x86.h	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/src/cpu/x86/vm/jni_x86.h	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/src/cpu/x86/vm/jni_x86.h	Fri Jun 17 22:08:33 2016 -0700
 @@ -34,7 +34,7 @@
  #ifndef __has_attribute
    #define __has_attribute(x) 0
@@ -3166,7 +3125,7 @@
    #define JNIIMPORT     __attribute__((visibility("default")))
  #else
 --- ./hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp	Fri Jun 17 22:08:33 2016 -0700
 @@ -2266,7 +2266,7 @@
    if (!is_critical_native) {
      // reset handle block
@@ -3177,7 +3136,7 @@
      // Any exception pending?
      __ cmpptr(Address(thread, in_bytes(Thread::pending_exception_offset())), (int32_t)NULL_WORD);
 --- ./hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp	Fri Jun 17 22:08:33 2016 -0700
 @@ -1293,7 +1293,7 @@
  
    // reset handle block
@@ -3188,7 +3147,7 @@
    // If result was an oop then unbox and save it in the frame
    { Label L;
 --- ./hotspot/src/cpu/x86/vm/x86_32.ad	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/src/cpu/x86/vm/x86_32.ad	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/src/cpu/x86/vm/x86_32.ad	Fri Jun 17 22:08:33 2016 -0700
 @@ -1250,6 +1250,7 @@
  
  
@@ -3198,7 +3157,7 @@
  
  #ifndef PRODUCT
 --- ./hotspot/src/os/aix/vm/os_aix.cpp	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/src/os/aix/vm/os_aix.cpp	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/src/os/aix/vm/os_aix.cpp	Fri Jun 17 22:08:33 2016 -0700
 @@ -5236,6 +5236,10 @@
      return 0;
    }
@@ -3211,7 +3170,7 @@
  }
  
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ ./hotspot/src/os/bsd/vm/decoder_bsd.cpp	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/src/os/bsd/vm/decoder_bsd.cpp	Fri Jun 17 22:08:33 2016 -0700
 @@ -0,0 +1,53 @@
 +/*
 + * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
@@ -3267,7 +3226,7 @@
 +}
 +#endif
 --- ./hotspot/src/os/bsd/vm/jsig.c	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/src/os/bsd/vm/jsig.c	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/src/os/bsd/vm/jsig.c	Fri Jun 17 22:08:33 2016 -0700
 @@ -165,9 +165,8 @@
  }
  
@@ -3281,7 +3240,7 @@
  static int call_os_sigaction(int sig, const struct sigaction  *act,
                               struct sigaction *oact) {
 --- ./hotspot/src/os/bsd/vm/jvm_bsd.cpp	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/src/os/bsd/vm/jvm_bsd.cpp	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/src/os/bsd/vm/jvm_bsd.cpp	Fri Jun 17 22:08:33 2016 -0700
 @@ -50,6 +50,7 @@
      case INTERRUPT_SIGNAL:
      case SIGFPE:
@@ -3392,7 +3351,7 @@
 +  return true;
  }
 --- ./hotspot/src/os/bsd/vm/jvm_bsd.h	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/src/os/bsd/vm/jvm_bsd.h	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/src/os/bsd/vm/jvm_bsd.h	Fri Jun 17 22:08:33 2016 -0700
 @@ -112,20 +112,6 @@
  #define SHUTDOWN2_SIGNAL SIGINT
  #define SHUTDOWN3_SIGNAL SIGTERM
@@ -3415,7 +3374,7 @@
  
  #endif // OS_BSD_VM_JVM_BSD_H
 --- ./hotspot/src/os/bsd/vm/osThread_bsd.cpp	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/src/os/bsd/vm/osThread_bsd.cpp	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/src/os/bsd/vm/osThread_bsd.cpp	Fri Jun 17 22:08:33 2016 -0700
 @@ -30,7 +30,7 @@
  
  void OSThread::pd_initialize() {
@@ -3426,7 +3385,7 @@
  #else
    _thread_id        = NULL;
 --- ./hotspot/src/os/bsd/vm/os_bsd.cpp	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/src/os/bsd/vm/os_bsd.cpp	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/src/os/bsd/vm/os_bsd.cpp	Fri Jun 17 22:08:33 2016 -0700
 @@ -97,16 +97,31 @@
  # include <sys/shm.h>
  #ifndef __APPLE__
@@ -3989,7 +3948,7 @@
  
  #ifndef PRODUCT
 --- ./hotspot/src/os/bsd/vm/os_bsd.hpp	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/src/os/bsd/vm/os_bsd.hpp	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/src/os/bsd/vm/os_bsd.hpp	Fri Jun 17 22:08:33 2016 -0700
 @@ -58,12 +58,16 @@
    // For signal flags diagnostics
    static int sigflags[MAXSIGNUM];
@@ -4018,7 +3977,7 @@
    static void set_page_size(int val)                                { _page_size = val; }
  
 --- ./hotspot/src/os/bsd/vm/vmError_bsd.cpp	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/src/os/bsd/vm/vmError_bsd.cpp	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/src/os/bsd/vm/vmError_bsd.cpp	Fri Jun 17 22:08:33 2016 -0700
 @@ -33,30 +33,50 @@
  #include <sys/syscall.h>
  #include <unistd.h>
@@ -4081,7 +4040,7 @@
        yes = false;
      }
 --- ./hotspot/src/os/linux/vm/os_linux.cpp	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/src/os/linux/vm/os_linux.cpp	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/src/os/linux/vm/os_linux.cpp	Fri Jun 17 22:08:33 2016 -0700
 @@ -6048,6 +6048,10 @@
      return 0;
    }
@@ -4094,7 +4053,7 @@
  }
  
 --- ./hotspot/src/os/posix/vm/os_posix.cpp	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/src/os/posix/vm/os_posix.cpp	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/src/os/posix/vm/os_posix.cpp	Fri Jun 17 22:08:33 2016 -0700
 @@ -53,12 +53,11 @@
    n = get_core_path(buffer, bufferSize);
  
@@ -4158,7 +4117,7 @@
  #ifdef SI_TKILL
      { SI_TKILL,     "SI_TKILL",    "Signal sent by tkill (pthread_kill)" },
 --- ./hotspot/src/os/solaris/vm/os_solaris.cpp	Tue Mar 22 11:05:52 2016 -0700
-+++ ./hotspot/src/os/solaris/vm/os_solaris.cpp	Mon May 09 17:15:53 2016 -0400
++++ ./hotspot/src/os/solaris/vm/os_solaris.cpp	Fri Jun 17 22:08:33 2016 -0700
 @@ -6375,6 +6375,10 @@
      return 0;
    }
@@ -4171,8 +4130,8 @@
  }
  
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ ./hotspot/src/os_cpu/bsd_ppc/vm/atomic_bsd_ppc.inline.hpp	Mon May 09 17:15:53 2016 -0400
-@@ -0,0 +1,800 @@
++++ ./hotspot/src/os_cpu/bsd_ppc/vm/atomic_bsd_ppc.inline.hpp	Fri Jun 17 22:08:33 2016 -0700
+@@ -0,0 +1,400 @@
 +/*
 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
 + * Copyright 2012, 2013 SAP AG. All rights reserved.
@@ -4573,6 +4532,108 @@
 +#undef strasm_nobarrier_clobber_memory
 +
 +#endif // OS_CPU_BSD_PPC_VM_ATOMIC_BSD_PPC_INLINE_HPP
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ ./hotspot/src/os_cpu/bsd_ppc/vm/bytes_bsd_ppc.inline.hpp	Fri Jun 17 22:08:33 2016 -0700
+@@ -0,0 +1,39 @@
++/*
++ * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright 2014 Google 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.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++ * or visit www.oracle.com if you need additional information or have any
++ * questions.
++ *
++ */
++
++#ifndef OS_CPU_BSD_PPC_VM_BYTES_BSD_PPC_INLINE_HPP
++#define OS_CPU_BSD_PPC_VM_BYTES_BSD_PPC_INLINE_HPP
++
++#if defined(VM_LITTLE_ENDIAN)
++#include <byteswap.h>
++
++// Efficient swapping of data bytes from Java byte
++// ordering to native byte ordering and vice versa.
++inline u2 Bytes::swap_u2(u2 x) { return bswap_16(x); }
++inline u4 Bytes::swap_u4(u4 x) { return bswap_32(x); }
++inline u8 Bytes::swap_u8(u8 x) { return bswap_64(x); }
++#endif // VM_LITTLE_ENDIAN
++
++#endif // OS_CPU_BSD_PPC_VM_BYTES_BSD_PPC_INLINE_HPP
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ ./hotspot/src/os_cpu/bsd_ppc/vm/globals_bsd_ppc.hpp	Fri Jun 17 22:08:33 2016 -0700
+@@ -0,0 +1,54 @@
++/*
++ * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright 2012, 2013 SAP AG. 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.
++ *
++ * This code is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++ * or visit www.oracle.com if you need additional information or have any
++ * questions.
++ *
++ */
++
++#ifndef OS_CPU_BSD_PPC_VM_GLOBALS_BSD_PPC_HPP
++#define OS_CPU_BSD_PPC_VM_GLOBALS_BSD_PPC_HPP
++
++// Sets the default values for platform dependent flags used by the runtime system.
++// (see globals.hpp)
++
++define_pd_global(bool, DontYieldALot,            false);
++define_pd_global(intx, ThreadStackSize,          2048); // 0 => use system default
++define_pd_global(intx, VMThreadStackSize,        2048);
++
++// if we set CompilerThreadStackSize to a value different than 0, it will
++// be used in os::create_thread(). Otherwise, due the strange logic in os::create_thread(),
++// the stack size for compiler threads will default to VMThreadStackSize, although it
++// is defined to 4M in os::Bsd::default_stack_size()!
++define_pd_global(intx, CompilerThreadStackSize,  4096);
++
++// Allow extra space in DEBUG builds for asserts.
++define_pd_global(uintx,JVMInvokeMethodSlack,     8192);
++
++define_pd_global(intx, StackYellowPages,         6);
++define_pd_global(intx, StackRedPages,            1);
++define_pd_global(intx, StackShadowPages,         6 DEBUG_ONLY(+2));
++
++// Only used on 64 bit platforms
++define_pd_global(uintx,HeapBaseMinAddress,       2*G);
++// Only used on 64 bit Windows platforms
++define_pd_global(bool, UseVectoredExceptions,    false);
++
++#endif // OS_CPU_BSD_PPC_VM_GLOBALS_BSD_PPC_HPP
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ ./hotspot/src/os_cpu/bsd_ppc/vm/orderAccess_bsd_ppc.inline.hpp	Fri Jun 17 22:08:33 2016 -0700
+@@ -0,0 +1,149 @@
 +/*
 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
 + * Copyright 2012, 2013 SAP AG. All rights reserved.
@@ -4598,1543 +4659,133 @@
 + *
 + */
 +
-+#ifndef OS_CPU_BSD_PPC_VM_ATOMIC_BSD_PPC_INLINE_HPP
-+#define OS_CPU_BSD_PPC_VM_ATOMIC_BSD_PPC_INLINE_HPP
++#ifndef OS_CPU_BSD_PPC_VM_ORDERACCESS_BSD_PPC_INLINE_HPP
++#define OS_CPU_BSD_PPC_VM_ORDERACCESS_BSD_PPC_INLINE_HPP
 +
-+#include "runtime/atomic.hpp"
-+#include "runtime/os.hpp"
++#include "runtime/orderAccess.hpp"
 +#include "vm_version_ppc.hpp"
 +
 +#ifndef PPC64
-+#error "Atomic currently only implemented for PPC64"
++#error "OrderAccess currently only implemented for PPC64"
 +#endif
 +
-+// Implementation of class atomic
-+
-+inline void Atomic::store    (jbyte    store_value, jbyte*    dest) { *dest = store_value; }
-+inline void Atomic::store    (jshort   store_value, jshort*   dest) { *dest = store_value; }
-+inline void Atomic::store    (jint     store_value, jint*     dest) { *dest = store_value; }
-+inline void Atomic::store    (jlong    store_value, jlong*    dest) { *dest = store_value; }
-+inline void Atomic::store_ptr(intptr_t store_value, intptr_t* dest) { *dest = store_value; }
-+inline void Atomic::store_ptr(void*    store_value, void*     dest) { *(void**)dest = store_value; }
-+
-+inline void Atomic::store    (jbyte    store_value, volatile jbyte*    dest) { *dest = store_value; }
-+inline void Atomic::store    (jshort   store_value, volatile jshort*   dest) { *dest = store_value; }
-+inline void Atomic::store    (jint     store_value, volatile jint*     dest) { *dest = store_value; }
-+inline void Atomic::store    (jlong    store_value, volatile jlong*    dest) { *dest = store_value; }
-+inline void Atomic::store_ptr(intptr_t store_value, volatile intptr_t* dest) { *dest = store_value; }
-+inline void Atomic::store_ptr(void*    store_value, volatile void*     dest) { *(void* volatile *)dest = store_value; }
-+
-+inline jlong Atomic::load(volatile jlong* src) { return *src; }
++// Implementation of class OrderAccess.
 +
 +//
-+// machine barrier instructions:
++// Machine barrier instructions:
 +//
-+// - sync            two-way memory barrier, aka fence
++// - sync            Two-way memory barrier, aka fence.
 +// - lwsync          orders  Store|Store,
 +//                            Load|Store,
 +//                            Load|Load,
 +//                   but not Store|Load
-+// - eieio           orders memory accesses for device memory (only)
-+// - isync           invalidates speculatively executed instructions
-+//                   From the POWER ISA 2.06 documentation:
-+//                    "[...] an isync instruction prevents the execution of
-+//                   instructions following the isync until instructions
-+//                   preceding the isync have completed, [...]"
-+//                   From IBM's AIX assembler reference:
-+//                    "The isync [...] instructions causes the processor to
-+//                   refetch any instructions that might have been fetched
-+//                   prior to the isync instruction. The instruction isync
-+//                   causes the processor to wait for all previous instructions
-+//                   to complete. Then any instructions already fetched are
-+//                   discarded and instruction processing continues in the
-+//                   environment established by the previous instructions."
-+//
-+// semantic barrier instructions:
-+// (as defined in orderAccess.hpp)
-+//
-+// - release         orders Store|Store,       (maps to lwsync)
-+//                           Load|Store
-+// - acquire         orders  Load|Store,       (maps to lwsync)
-+//                           Load|Load
-+// - fence           orders Store|Store,       (maps to sync)
-+//                           Load|Store,
-+//                           Load|Load,
-+//                          Store|Load
-+//
-+
-+#define strasm_sync                       "\n  sync    \n"
-+#define strasm_lwsync                     "\n  lwsync  \n"
-+#define strasm_isync                      "\n  isync   \n"
-+#define strasm_release                    strasm_lwsync
-+#define strasm_acquire                    strasm_lwsync
-+#define strasm_fence                      strasm_sync
-+#define strasm_nobarrier                  ""
-+#define strasm_nobarrier_clobber_memory   ""
-+
-+inline jint     Atomic::add    (jint     add_value, volatile jint*     dest) {
-+
-+  unsigned int result;
-+
-+  __asm__ __volatile__ (
-+    strasm_lwsync
-+    "1: lwarx   %0,  0, %2    \n"
-+    "   add     %0, %0, %1    \n"
-+    "   stwcx.  %0,  0, %2    \n"
-+    "   bne-    1b            \n"
-+    strasm_isync
-+    : /*%0*/"=&r" (result)
-+    : /*%1*/"r" (add_value), /*%2*/"r" (dest)
-+    : "cc", "memory" );
-+
-+  return (jint) result;
-+}
-+
-+
-+inline intptr_t Atomic::add_ptr(intptr_t add_value, volatile intptr_t* dest) {
-+
-+  long result;
-+
-+  __asm__ __volatile__ (
-+    strasm_lwsync
-+    "1: ldarx   %0,  0, %2    \n"
-+    "   add     %0, %0, %1    \n"
-+    "   stdcx.  %0,  0, %2    \n"
-+    "   bne-    1b            \n"
-+    strasm_isync
-+    : /*%0*/"=&r" (result)
-+    : /*%1*/"r" (add_value), /*%2*/"r" (dest)
-+    : "cc", "memory" );
-+
-+  return (intptr_t) result;
-+}
-+
-+inline void*    Atomic::add_ptr(intptr_t add_value, volatile void*     dest) {
-+  return (void*)add_ptr(add_value, (volatile intptr_t*)dest);
-+}
-+
-+
-+inline void Atomic::inc    (volatile jint*     dest) {
-+
-+  unsigned int temp;
-+
-+  __asm__ __volatile__ (
-+    strasm_nobarrier
-+    "1: lwarx   %0,  0, %2    \n"
-+    "   addic   %0, %0,  1    \n"
-+    "   stwcx.  %0,  0, %2    \n"
-+    "   bne-    1b            \n"
-+    strasm_nobarrier
-+    : /*%0*/"=&r" (temp), "=m" (*dest)
-+    : /*%2*/"r" (dest), "m" (*dest)
-+    : "cc" strasm_nobarrier_clobber_memory);
-+
-+}
-+
-+inline void Atomic::inc_ptr(volatile intptr_t* dest) {
-+
-+  long temp;
-+
-+  __asm__ __volatile__ (
-+    strasm_nobarrier
-+    "1: ldarx   %0,  0, %2    \n"
-+    "   addic   %0, %0,  1    \n"
-+    "   stdcx.  %0,  0, %2    \n"
-+    "   bne-    1b            \n"
-+    strasm_nobarrier
-+    : /*%0*/"=&r" (temp), "=m" (*dest)
-+    : /*%2*/"r" (dest), "m" (*dest)
-+    : "cc" strasm_nobarrier_clobber_memory);
-+
-+}
-+
-+inline void Atomic::inc_ptr(volatile void*     dest) {
-+  inc_ptr((volatile intptr_t*)dest);
-+}
-+
-+
-+inline void Atomic::dec    (volatile jint*     dest) {
-+
-+  unsigned int temp;
-+
-+  __asm__ __volatile__ (
-+    strasm_nobarrier
-+    "1: lwarx   %0,  0, %2    \n"
-+    "   addic   %0, %0, -1    \n"
-+    "   stwcx.  %0,  0, %2    \n"
-+    "   bne-    1b            \n"
-+    strasm_nobarrier
-+    : /*%0*/"=&r" (temp), "=m" (*dest)
-+    : /*%2*/"r" (dest), "m" (*dest)
-+    : "cc" strasm_nobarrier_clobber_memory);
-+
-+}
-+
-+inline void Atomic::dec_ptr(volatile intptr_t* dest) {
-+
-+  long temp;
-+
-+  __asm__ __volatile__ (
-+    strasm_nobarrier
-+    "1: ldarx   %0,  0, %2    \n"
-+    "   addic   %0, %0, -1    \n"
-+    "   stdcx.  %0,  0, %2    \n"
-+    "   bne-    1b            \n"
-+    strasm_nobarrier
-+    : /*%0*/"=&r" (temp), "=m" (*dest)
-+    : /*%2*/"r" (dest), "m" (*dest)
-+    : "cc" strasm_nobarrier_clobber_memory);
-+
-+}
-+
-+inline void Atomic::dec_ptr(volatile void*     dest) {
-+  dec_ptr((volatile intptr_t*)dest);
-+}
-+
-+inline jint Atomic::xchg(jint exchange_value, volatile jint* dest) {
-+
-+  // Note that xchg_ptr doesn't necessarily do an acquire
-+  // (see synchronizer.cpp).
-+
-+  unsigned int old_value;
-+  const uint64_t zero = 0;
-+
-+  __asm__ __volatile__ (
-+    /* lwsync */
-+    strasm_lwsync
-+    /* atomic loop */
-+    "1:                                                 \n"
-+    "   lwarx   %[old_value], %[dest], %[zero]          \n"
-+    "   stwcx.  %[exchange_value], %[dest], %[zero]     \n"
-+    "   bne-    1b                                      \n"
-+    /* isync */
-+    strasm_sync
-+    /* exit */
-+    "2:                                                 \n"
-+    /* out */
-+    : [old_value]       "=&r"   (old_value),
-+                        "=m"    (*dest)
-+    /* in */
-+    : [dest]            "b"     (dest),
-+      [zero]            "r"     (zero),
-+      [exchange_value]  "r"     (exchange_value),
-+                        "m"     (*dest)
-+    /* clobber */
-+    : "cc",
-+      "memory"
-+    );
-+
-+  return (jint) old_value;
-+}
-+
-+inline intptr_t Atomic::xchg_ptr(intptr_t exchange_value, volatile intptr_t* dest) {
-+
-+  // Note that xchg_ptr doesn't necessarily do an acquire
-+  // (see synchronizer.cpp).
-+
-+  long old_value;
-+  const uint64_t zero = 0;
-+
-+  __asm__ __volatile__ (
-+    /* lwsync */
-+    strasm_lwsync
-+    /* atomic loop */
-+    "1:                                                 \n"
-+    "   ldarx   %[old_value], %[dest], %[zero]          \n"
-+    "   stdcx.  %[exchange_value], %[dest], %[zero]     \n"
-+    "   bne-    1b                                      \n"
-+    /* isync */
-+    strasm_sync
-+    /* exit */
-+    "2:                                                 \n"
-+    /* out */
-+    : [old_value]       "=&r"   (old_value),
-+                        "=m"    (*dest)
-+    /* in */
-+    : [dest]            "b"     (dest),
-+      [zero]            "r"     (zero),
-+      [exchange_value]  "r"     (exchange_value),
-+                        "m"     (*dest)
-+    /* clobber */
-+    : "cc",
-+      "memory"
-+    );
-+
-+  return (intptr_t) old_value;
-+}
-+
-+inline void* Atomic::xchg_ptr(void* exchange_value, volatile void* dest) {
-+  return (void*)xchg_ptr((intptr_t)exchange_value, (volatile intptr_t*)dest);
-+}
-+
-+inline jint Atomic::cmpxchg(jint exchange_value, volatile jint* dest, jint compare_value) {
-+
-+  // Note that cmpxchg guarantees a two-way memory barrier across
-+  // the cmpxchg, so it's really a a 'fence_cmpxchg_acquire'
-+  // (see atomic.hpp).
-+
-+  unsigned int old_value;
-+  const uint64_t zero = 0;
-+
-+  __asm__ __volatile__ (
-+    /* fence */
-+    strasm_sync
-+    /* simple guard */
-+    "   lwz     %[old_value], 0(%[dest])                \n"
-+    "   cmpw    %[compare_value], %[old_value]          \n"
-+    "   bne-    2f                                      \n"
-+    /* atomic loop */
-+    "1:                                                 \n"
-+    "   lwarx   %[old_value], %[dest], %[zero]          \n"
-+    "   cmpw    %[compare_value], %[old_value]          \n"
-+    "   bne-    2f                                      \n"
-+    "   stwcx.  %[exchange_value], %[dest], %[zero]     \n"
-+    "   bne-    1b                                      \n"
-+    /* acquire */
-+    strasm_sync
-+    /* exit */
-+    "2:                                                 \n"
-+    /* out */
-+    : [old_value]       "=&r"   (old_value),
-+                        "=m"    (*dest)
-+    /* in */
-+    : [dest]            "b"     (dest),
-+      [zero]            "r"     (zero),
-+      [compare_value]   "r"     (compare_value),
-+      [exchange_value]  "r"     (exchange_value),
-+                        "m"     (*dest)
-+    /* clobber */
-+    : "cc",
-+      "memory"
-+    );
-+
-+  return (jint) old_value;
-+}
-+
-+inline jlong Atomic::cmpxchg(jlong exchange_value, volatile jlong* dest, jlong compare_value) {
-+
-+  // Note that cmpxchg guarantees a two-way memory barrier across
-+  // the cmpxchg, so it's really a a 'fence_cmpxchg_acquire'
-+  // (see atomic.hpp).
-+
-+  long old_value;
-+  const uint64_t zero = 0;
-+
-+  __asm__ __volatile__ (

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-ports-head mailing list