mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 11:04:34 +02:00
Merge
This commit is contained in:
commit
7078962b9c
750 changed files with 8780 additions and 4066 deletions
1
.hgtags
1
.hgtags
|
@ -326,3 +326,4 @@ c8753d0be1778944dc512ec86a459941ea1ad2c3 jdk9-b78
|
|||
2050b3a0aadcb0e024bf798197421d58e54ec8bf jdk9-b81
|
||||
6521875cb63e1d0121b30af56ebbc36db078c4c6 jdk9-b82
|
||||
f61a63b7d1e52e307abc0bfc751203155d362ec4 jdk9-b83
|
||||
51b2db2fa04c16d767b66113dbf08c5349ce382a jdk9-b84
|
||||
|
|
|
@ -326,3 +326,4 @@ f7c5ae2933c0b8510a420d1713a955e4ffc7ad0b jdk9-b80
|
|||
b8afcf91331d78626a583ec1b63164468d6f4181 jdk9-b81
|
||||
42b56d1f418523ecb61a49d7493302c80c8009cc jdk9-b82
|
||||
ce5c14d97d95084504c32b9320cb33cce4235588 jdk9-b83
|
||||
1c8134475511ffe6726677e1418a89a7a45e92d6 jdk9-b84
|
||||
|
|
|
@ -62,7 +62,7 @@ export RM="@RM@"
|
|||
export SED="@SED@"
|
||||
export SORT="@SORT@"
|
||||
export STAT="@STAT@"
|
||||
export STRIP="@POST_STRIP_CMD@"
|
||||
export STRIP="@STRIP@ @STRIPFLAGS@"
|
||||
export TEE="@TEE@"
|
||||
export UNIQ="@UNIQ@"
|
||||
export UNPACK200="@FIXPATH@ @BOOT_JDK@/bin/unpack200"
|
||||
|
|
|
@ -165,6 +165,11 @@ SRCDIRS_SETUP_OUTPUT_DIRS
|
|||
# First determine the toolchain type (compiler family)
|
||||
TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE
|
||||
|
||||
# User supplied flags should be used when configure detects compilers
|
||||
FLAGS_SETUP_USER_SUPPLIED_FLAGS
|
||||
# The sysroot cflags are needed for configure to be able to run the compilers
|
||||
FLAGS_SETUP_SYSROOT_FLAGS
|
||||
|
||||
# Then detect the actual binaries needed
|
||||
TOOLCHAIN_PRE_DETECTION
|
||||
TOOLCHAIN_DETECT_TOOLCHAIN_CORE
|
||||
|
|
|
@ -23,6 +23,100 @@
|
|||
# questions.
|
||||
#
|
||||
|
||||
# Reset the global CFLAGS/LDFLAGS variables and initialize them with the
|
||||
# corresponding configure arguments instead
|
||||
AC_DEFUN_ONCE([FLAGS_SETUP_USER_SUPPLIED_FLAGS],
|
||||
[
|
||||
if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then
|
||||
AC_MSG_WARN([Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags])
|
||||
fi
|
||||
|
||||
if test "x$CXXFLAGS" != "x${ADDED_CXXFLAGS}"; then
|
||||
AC_MSG_WARN([Ignoring CXXFLAGS($CXXFLAGS) found in environment. Use --with-extra-cxxflags])
|
||||
fi
|
||||
|
||||
if test "x$LDFLAGS" != "x${ADDED_LDFLAGS}"; then
|
||||
AC_MSG_WARN([Ignoring LDFLAGS($LDFLAGS) found in environment. Use --with-extra-ldflags])
|
||||
fi
|
||||
|
||||
AC_ARG_WITH(extra-cflags, [AS_HELP_STRING([--with-extra-cflags],
|
||||
[extra flags to be used when compiling jdk c-files])])
|
||||
|
||||
AC_ARG_WITH(extra-cxxflags, [AS_HELP_STRING([--with-extra-cxxflags],
|
||||
[extra flags to be used when compiling jdk c++-files])])
|
||||
|
||||
AC_ARG_WITH(extra-ldflags, [AS_HELP_STRING([--with-extra-ldflags],
|
||||
[extra flags to be used when linking jdk])])
|
||||
|
||||
EXTRA_CFLAGS="$with_extra_cflags"
|
||||
EXTRA_CXXFLAGS="$with_extra_cxxflags"
|
||||
EXTRA_LDFLAGS="$with_extra_ldflags"
|
||||
|
||||
# Hotspot needs these set in their legacy form
|
||||
LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $EXTRA_CFLAGS"
|
||||
LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $EXTRA_CXXFLAGS"
|
||||
LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $EXTRA_LDFLAGS"
|
||||
|
||||
AC_SUBST(LEGACY_EXTRA_CFLAGS)
|
||||
AC_SUBST(LEGACY_EXTRA_CXXFLAGS)
|
||||
AC_SUBST(LEGACY_EXTRA_LDFLAGS)
|
||||
|
||||
# The global CFLAGS and LDLAGS variables are used by configure tests and
|
||||
# should include the extra parameters
|
||||
CFLAGS="$EXTRA_CFLAGS"
|
||||
CXXFLAGS="$EXTRA_CXXFLAGS"
|
||||
LDFLAGS="$EXTRA_LDFLAGS"
|
||||
CPPFLAGS=""
|
||||
])
|
||||
|
||||
# Setup the sysroot flags and add them to global CFLAGS and LDFLAGS so
|
||||
# that configure can use them while detecting compilers.
|
||||
# TOOLCHAIN_TYPE is available here.
|
||||
AC_DEFUN_ONCE([FLAGS_SETUP_SYSROOT_FLAGS],
|
||||
[
|
||||
if test "x$SYSROOT" != "x"; then
|
||||
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
||||
# Solaris Studio does not have a concept of sysroot. Instead we must
|
||||
# make sure the default include and lib dirs are appended to each
|
||||
# compile and link command line.
|
||||
SYSROOT_CFLAGS="-I$SYSROOT/usr/include"
|
||||
SYSROOT_LDFLAGS="-L$SYSROOT/usr/lib$OPENJDK_TARGET_CPU_ISADIR \
|
||||
-L$SYSROOT/lib$OPENJDK_TARGET_CPU_ISADIR \
|
||||
-L$SYSROOT/usr/ccs/lib$OPENJDK_TARGET_CPU_ISADIR"
|
||||
fi
|
||||
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||
SYSROOT_CFLAGS="--sysroot=$SYSROOT"
|
||||
SYSROOT_LDFLAGS="--sysroot=$SYSROOT"
|
||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||
SYSROOT_CFLAGS="-isysroot $SYSROOT"
|
||||
SYSROOT_LDFLAGS="-isysroot $SYSROOT"
|
||||
fi
|
||||
# Propagate the sysroot args to hotspot
|
||||
LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $SYSROOT_CFLAGS"
|
||||
LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $SYSROOT_CFLAGS"
|
||||
LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $SYSROOT_LDFLAGS"
|
||||
# The global CFLAGS and LDFLAGS variables need these for configure to function
|
||||
CFLAGS="$CFLAGS $SYSROOT_CFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $SYSROOT_CFLAGS"
|
||||
CXXFLAGS="$CXXFLAGS $SYSROOT_CFLAGS"
|
||||
LDFLAGS="$LDFLAGS $SYSROOT_LDFLAGS"
|
||||
fi
|
||||
|
||||
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||
# We also need -iframework<path>/System/Library/Frameworks
|
||||
SYSROOT_CFLAGS="$SYSROOT_CFLAGS -iframework $SYSROOT/System/Library/Frameworks"
|
||||
SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS -iframework $SYSROOT/System/Library/Frameworks"
|
||||
# These always need to be set, or we can't find the frameworks embedded in JavaVM.framework
|
||||
# set this here so it doesn't have to be peppered throughout the forest
|
||||
SYSROOT_CFLAGS="$SYSROOT_CFLAGS -F $SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks"
|
||||
SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS -F $SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks"
|
||||
fi
|
||||
|
||||
AC_SUBST(SYSROOT_CFLAGS)
|
||||
AC_SUBST(SYSROOT_LDFLAGS)
|
||||
])
|
||||
|
||||
AC_DEFUN_ONCE([FLAGS_SETUP_INIT_FLAGS],
|
||||
[
|
||||
# Option used to tell the compiler whether to create 32- or 64-bit executables
|
||||
|
@ -60,10 +154,7 @@ AC_DEFUN_ONCE([FLAGS_SETUP_INIT_FLAGS],
|
|||
STRIPFLAGS="-X32_64"
|
||||
fi
|
||||
|
||||
if test "x$OPENJDK_TARGET_OS" != xwindows; then
|
||||
POST_STRIP_CMD="$STRIP $STRIPFLAGS"
|
||||
fi
|
||||
AC_SUBST(POST_STRIP_CMD)
|
||||
AC_SUBST(STRIPFLAGS)
|
||||
|
||||
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||
CC_OUT_OPTION=-Fo
|
||||
|
@ -113,44 +204,6 @@ AC_DEFUN_ONCE([FLAGS_SETUP_INIT_FLAGS],
|
|||
# silence copyright notice and other headers.
|
||||
COMMON_CCXXFLAGS="$COMMON_CCXXFLAGS -nologo"
|
||||
fi
|
||||
|
||||
if test "x$SYSROOT" != "x"; then
|
||||
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
||||
# Solaris Studio does not have a concept of sysroot. Instead we must
|
||||
# make sure the default include and lib dirs are appended to each
|
||||
# compile and link command line.
|
||||
SYSROOT_CFLAGS="-I$SYSROOT/usr/include"
|
||||
SYSROOT_LDFLAGS="-L$SYSROOT/usr/lib$OPENJDK_TARGET_CPU_ISADIR \
|
||||
-L$SYSROOT/lib$OPENJDK_TARGET_CPU_ISADIR \
|
||||
-L$SYSROOT/usr/ccs/lib$OPENJDK_TARGET_CPU_ISADIR"
|
||||
fi
|
||||
elif test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||
# Apple only wants -isysroot <path>, but we also need -iframework<path>/System/Library/Frameworks
|
||||
SYSROOT_CFLAGS="-isysroot \"$SYSROOT\" -iframework\"$SYSROOT/System/Library/Frameworks\""
|
||||
SYSROOT_LDFLAGS=$SYSROOT_CFLAGS
|
||||
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||
SYSROOT_CFLAGS="--sysroot=$SYSROOT"
|
||||
SYSROOT_LDFLAGS="--sysroot=$SYSROOT"
|
||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||
SYSROOT_CFLAGS="-isysroot \"$SYSROOT\""
|
||||
SYSROOT_LDFLAGS="-isysroot \"$SYSROOT\""
|
||||
fi
|
||||
# Propagate the sysroot args to hotspot
|
||||
LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $SYSROOT_CFLAGS"
|
||||
LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $SYSROOT_CFLAGS"
|
||||
LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $SYSROOT_LDFLAGS"
|
||||
fi
|
||||
|
||||
# These always need to be set, or we can't find the frameworks embedded in JavaVM.framework
|
||||
# set this here so it doesn't have to be peppered throughout the forest
|
||||
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||
SYSROOT_CFLAGS="$SYSROOT_CFLAGS -F\"$SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks\""
|
||||
SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS -F\"$SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks\""
|
||||
fi
|
||||
|
||||
AC_SUBST(SYSROOT_CFLAGS)
|
||||
AC_SUBST(SYSROOT_LDFLAGS)
|
||||
])
|
||||
|
||||
AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_LIBS],
|
||||
|
@ -480,39 +533,9 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
|
|||
CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt"
|
||||
fi
|
||||
|
||||
if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then
|
||||
AC_MSG_WARN([Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags])
|
||||
fi
|
||||
|
||||
if test "x$CXXFLAGS" != "x${ADDED_CXXFLAGS}"; then
|
||||
AC_MSG_WARN([Ignoring CXXFLAGS($CXXFLAGS) found in environment. Use --with-extra-cxxflags])
|
||||
fi
|
||||
|
||||
if test "x$LDFLAGS" != "x${ADDED_LDFLAGS}"; then
|
||||
AC_MSG_WARN([Ignoring LDFLAGS($LDFLAGS) found in environment. Use --with-extra-ldflags])
|
||||
fi
|
||||
|
||||
AC_ARG_WITH(extra-cflags, [AS_HELP_STRING([--with-extra-cflags],
|
||||
[extra flags to be used when compiling jdk c-files])])
|
||||
|
||||
AC_ARG_WITH(extra-cxxflags, [AS_HELP_STRING([--with-extra-cxxflags],
|
||||
[extra flags to be used when compiling jdk c++-files])])
|
||||
|
||||
AC_ARG_WITH(extra-ldflags, [AS_HELP_STRING([--with-extra-ldflags],
|
||||
[extra flags to be used when linking jdk])])
|
||||
|
||||
CFLAGS_JDK="${CFLAGS_JDK} $with_extra_cflags"
|
||||
CXXFLAGS_JDK="${CXXFLAGS_JDK} $with_extra_cxxflags"
|
||||
LDFLAGS_JDK="${LDFLAGS_JDK} $with_extra_ldflags"
|
||||
|
||||
# Hotspot needs these set in their legacy form
|
||||
LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $with_extra_cflags"
|
||||
LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $with_extra_cxxflags"
|
||||
LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $with_extra_ldflags"
|
||||
|
||||
AC_SUBST(LEGACY_EXTRA_CFLAGS)
|
||||
AC_SUBST(LEGACY_EXTRA_CXXFLAGS)
|
||||
AC_SUBST(LEGACY_EXTRA_LDFLAGS)
|
||||
CFLAGS_JDK="${CFLAGS_JDK} $EXTRA_CFLAGS"
|
||||
CXXFLAGS_JDK="${CXXFLAGS_JDK} $EXTRA_CXXFLAGS"
|
||||
LDFLAGS_JDK="${LDFLAGS_JDK} $EXTRA_LDFLAGS"
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
|
|
|
@ -705,9 +705,6 @@ CXXFLAGS_JDKLIB
|
|||
CFLAGS_JDKEXE
|
||||
CFLAGS_JDKLIB
|
||||
MACOSX_VERSION_MIN
|
||||
LEGACY_EXTRA_LDFLAGS
|
||||
LEGACY_EXTRA_CXXFLAGS
|
||||
LEGACY_EXTRA_CFLAGS
|
||||
CXX_O_FLAG_NONE
|
||||
CXX_O_FLAG_DEBUG
|
||||
CXX_O_FLAG_NORM
|
||||
|
@ -728,14 +725,12 @@ SET_SHARED_LIBRARY_ORIGIN
|
|||
SET_EXECUTABLE_ORIGIN
|
||||
CXX_FLAG_REORDER
|
||||
C_FLAG_REORDER
|
||||
SYSROOT_LDFLAGS
|
||||
SYSROOT_CFLAGS
|
||||
RC_FLAGS
|
||||
AR_OUT_OPTION
|
||||
LD_OUT_OPTION
|
||||
EXE_OUT_OPTION
|
||||
CC_OUT_OPTION
|
||||
POST_STRIP_CMD
|
||||
STRIPFLAGS
|
||||
ARFLAGS
|
||||
COMPILER_TARGET_BITS_FLAG
|
||||
JT_HOME
|
||||
|
@ -747,6 +742,8 @@ HOTSPOT_LD
|
|||
HOTSPOT_CXX
|
||||
HOTSPOT_RC
|
||||
HOTSPOT_MT
|
||||
BUILD_SYSROOT_LDFLAGS
|
||||
BUILD_SYSROOT_CFLAGS
|
||||
BUILD_LD
|
||||
BUILD_CXX
|
||||
BUILD_CC
|
||||
|
@ -793,6 +790,11 @@ VS_LIB
|
|||
VS_INCLUDE
|
||||
VS_PATH
|
||||
CYGWIN_LINK
|
||||
SYSROOT_LDFLAGS
|
||||
SYSROOT_CFLAGS
|
||||
LEGACY_EXTRA_LDFLAGS
|
||||
LEGACY_EXTRA_CXXFLAGS
|
||||
LEGACY_EXTRA_CFLAGS
|
||||
EXE_SUFFIX
|
||||
OBJ_SUFFIX
|
||||
STATIC_LIBRARY
|
||||
|
@ -1078,11 +1080,11 @@ with_override_nashorn
|
|||
with_override_jdk
|
||||
with_import_hotspot
|
||||
with_toolchain_type
|
||||
with_toolchain_version
|
||||
with_jtreg
|
||||
with_extra_cflags
|
||||
with_extra_cxxflags
|
||||
with_extra_ldflags
|
||||
with_toolchain_version
|
||||
with_jtreg
|
||||
enable_warnings_as_errors
|
||||
enable_debug_symbols
|
||||
enable_zip_debug_info
|
||||
|
@ -1937,14 +1939,14 @@ Optional Packages:
|
|||
source
|
||||
--with-toolchain-type the toolchain type (or family) to use, use '--help'
|
||||
to show possible values [platform dependent]
|
||||
--with-extra-cflags extra flags to be used when compiling jdk c-files
|
||||
--with-extra-cxxflags extra flags to be used when compiling jdk c++-files
|
||||
--with-extra-ldflags extra flags to be used when linking jdk
|
||||
--with-toolchain-version
|
||||
the version of the toolchain to look for, use
|
||||
'--help' to show possible values [platform
|
||||
dependent]
|
||||
--with-jtreg Regression Test Harness [probed]
|
||||
--with-extra-cflags extra flags to be used when compiling jdk c-files
|
||||
--with-extra-cxxflags extra flags to be used when compiling jdk c++-files
|
||||
--with-extra-ldflags extra flags to be used when linking jdk
|
||||
--with-x use the X Window System
|
||||
--with-cups specify prefix directory for the cups package
|
||||
(expecting the headers under PATH/include)
|
||||
|
@ -3767,6 +3769,15 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
|
|||
# questions.
|
||||
#
|
||||
|
||||
# Reset the global CFLAGS/LDFLAGS variables and initialize them with the
|
||||
# corresponding configure arguments instead
|
||||
|
||||
|
||||
# Setup the sysroot flags and add them to global CFLAGS and LDFLAGS so
|
||||
# that configure can use them while detecting compilers.
|
||||
# TOOLCHAIN_TYPE is available here.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -3886,6 +3897,8 @@ msys_help() {
|
|||
|
||||
apt_help() {
|
||||
case $1 in
|
||||
reduced)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install gcc-multilib g++-multilib" ;;
|
||||
devkit)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install build-essential" ;;
|
||||
openjdk)
|
||||
|
@ -4362,7 +4375,7 @@ VS_SDK_PLATFORM_NAME_2013=
|
|||
#CUSTOM_AUTOCONF_INCLUDE
|
||||
|
||||
# Do not change or remove the following line, it is needed for consistency checks:
|
||||
DATE_WHEN_GENERATED=1442820958
|
||||
DATE_WHEN_GENERATED=1444077934
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
|
@ -26825,6 +26838,109 @@ $as_echo "$as_me: Using user selected toolchain $TOOLCHAIN_TYPE ($TOOLCHAIN_DESC
|
|||
fi
|
||||
|
||||
|
||||
# User supplied flags should be used when configure detects compilers
|
||||
|
||||
if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags" >&5
|
||||
$as_echo "$as_me: WARNING: Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags" >&2;}
|
||||
fi
|
||||
|
||||
if test "x$CXXFLAGS" != "x${ADDED_CXXFLAGS}"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring CXXFLAGS($CXXFLAGS) found in environment. Use --with-extra-cxxflags" >&5
|
||||
$as_echo "$as_me: WARNING: Ignoring CXXFLAGS($CXXFLAGS) found in environment. Use --with-extra-cxxflags" >&2;}
|
||||
fi
|
||||
|
||||
if test "x$LDFLAGS" != "x${ADDED_LDFLAGS}"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring LDFLAGS($LDFLAGS) found in environment. Use --with-extra-ldflags" >&5
|
||||
$as_echo "$as_me: WARNING: Ignoring LDFLAGS($LDFLAGS) found in environment. Use --with-extra-ldflags" >&2;}
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --with-extra-cflags was given.
|
||||
if test "${with_extra_cflags+set}" = set; then :
|
||||
withval=$with_extra_cflags;
|
||||
fi
|
||||
|
||||
|
||||
|
||||
# Check whether --with-extra-cxxflags was given.
|
||||
if test "${with_extra_cxxflags+set}" = set; then :
|
||||
withval=$with_extra_cxxflags;
|
||||
fi
|
||||
|
||||
|
||||
|
||||
# Check whether --with-extra-ldflags was given.
|
||||
if test "${with_extra_ldflags+set}" = set; then :
|
||||
withval=$with_extra_ldflags;
|
||||
fi
|
||||
|
||||
|
||||
EXTRA_CFLAGS="$with_extra_cflags"
|
||||
EXTRA_CXXFLAGS="$with_extra_cxxflags"
|
||||
EXTRA_LDFLAGS="$with_extra_ldflags"
|
||||
|
||||
# Hotspot needs these set in their legacy form
|
||||
LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $EXTRA_CFLAGS"
|
||||
LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $EXTRA_CXXFLAGS"
|
||||
LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $EXTRA_LDFLAGS"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# The global CFLAGS and LDLAGS variables are used by configure tests and
|
||||
# should include the extra parameters
|
||||
CFLAGS="$EXTRA_CFLAGS"
|
||||
CXXFLAGS="$EXTRA_CXXFLAGS"
|
||||
LDFLAGS="$EXTRA_LDFLAGS"
|
||||
CPPFLAGS=""
|
||||
|
||||
# The sysroot cflags are needed for configure to be able to run the compilers
|
||||
|
||||
if test "x$SYSROOT" != "x"; then
|
||||
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
||||
# Solaris Studio does not have a concept of sysroot. Instead we must
|
||||
# make sure the default include and lib dirs are appended to each
|
||||
# compile and link command line.
|
||||
SYSROOT_CFLAGS="-I$SYSROOT/usr/include"
|
||||
SYSROOT_LDFLAGS="-L$SYSROOT/usr/lib$OPENJDK_TARGET_CPU_ISADIR \
|
||||
-L$SYSROOT/lib$OPENJDK_TARGET_CPU_ISADIR \
|
||||
-L$SYSROOT/usr/ccs/lib$OPENJDK_TARGET_CPU_ISADIR"
|
||||
fi
|
||||
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||
SYSROOT_CFLAGS="--sysroot=$SYSROOT"
|
||||
SYSROOT_LDFLAGS="--sysroot=$SYSROOT"
|
||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||
SYSROOT_CFLAGS="-isysroot $SYSROOT"
|
||||
SYSROOT_LDFLAGS="-isysroot $SYSROOT"
|
||||
fi
|
||||
# Propagate the sysroot args to hotspot
|
||||
LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $SYSROOT_CFLAGS"
|
||||
LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $SYSROOT_CFLAGS"
|
||||
LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $SYSROOT_LDFLAGS"
|
||||
# The global CFLAGS and LDFLAGS variables need these for configure to function
|
||||
CFLAGS="$CFLAGS $SYSROOT_CFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $SYSROOT_CFLAGS"
|
||||
CXXFLAGS="$CXXFLAGS $SYSROOT_CFLAGS"
|
||||
LDFLAGS="$LDFLAGS $SYSROOT_LDFLAGS"
|
||||
fi
|
||||
|
||||
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||
# We also need -iframework<path>/System/Library/Frameworks
|
||||
SYSROOT_CFLAGS="$SYSROOT_CFLAGS -iframework $SYSROOT/System/Library/Frameworks"
|
||||
SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS -iframework $SYSROOT/System/Library/Frameworks"
|
||||
# These always need to be set, or we can't find the frameworks embedded in JavaVM.framework
|
||||
# set this here so it doesn't have to be peppered throughout the forest
|
||||
SYSROOT_CFLAGS="$SYSROOT_CFLAGS -F $SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks"
|
||||
SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS -F $SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks"
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Then detect the actual binaries needed
|
||||
|
||||
# FIXME: Is this needed?
|
||||
|
@ -40555,12 +40671,16 @@ $as_echo "$as_me: Rewriting BUILD_LD to \"$new_complete\"" >&6;}
|
|||
fi
|
||||
fi
|
||||
|
||||
BUILD_SYSROOT_CFLAGS=""
|
||||
BUILD_SYSROOT_LDFLAGS=""
|
||||
else
|
||||
# If we are not cross compiling, use the normal target compilers for
|
||||
# building the build platform executables.
|
||||
BUILD_CC="$CC"
|
||||
BUILD_CXX="$CXX"
|
||||
BUILD_LD="$LD"
|
||||
BUILD_SYSROOT_CFLAGS="$SYSROOT_CFLAGS"
|
||||
BUILD_SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS"
|
||||
fi
|
||||
|
||||
|
||||
|
@ -40568,6 +40688,8 @@ $as_echo "$as_me: Rewriting BUILD_LD to \"$new_complete\"" >&6;}
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||
# For hotspot, we need these in Windows mixed path,
|
||||
# so rewrite them all. Need added .exe suffix.
|
||||
|
@ -41252,9 +41374,6 @@ $as_echo "$tool_specified" >&6; }
|
|||
STRIPFLAGS="-X32_64"
|
||||
fi
|
||||
|
||||
if test "x$OPENJDK_TARGET_OS" != xwindows; then
|
||||
POST_STRIP_CMD="$STRIP $STRIPFLAGS"
|
||||
fi
|
||||
|
||||
|
||||
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
|
||||
|
@ -41306,44 +41425,6 @@ $as_echo "$tool_specified" >&6; }
|
|||
COMMON_CCXXFLAGS="$COMMON_CCXXFLAGS -nologo"
|
||||
fi
|
||||
|
||||
if test "x$SYSROOT" != "x"; then
|
||||
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
|
||||
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
||||
# Solaris Studio does not have a concept of sysroot. Instead we must
|
||||
# make sure the default include and lib dirs are appended to each
|
||||
# compile and link command line.
|
||||
SYSROOT_CFLAGS="-I$SYSROOT/usr/include"
|
||||
SYSROOT_LDFLAGS="-L$SYSROOT/usr/lib$OPENJDK_TARGET_CPU_ISADIR \
|
||||
-L$SYSROOT/lib$OPENJDK_TARGET_CPU_ISADIR \
|
||||
-L$SYSROOT/usr/ccs/lib$OPENJDK_TARGET_CPU_ISADIR"
|
||||
fi
|
||||
elif test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||
# Apple only wants -isysroot <path>, but we also need -iframework<path>/System/Library/Frameworks
|
||||
SYSROOT_CFLAGS="-isysroot \"$SYSROOT\" -iframework\"$SYSROOT/System/Library/Frameworks\""
|
||||
SYSROOT_LDFLAGS=$SYSROOT_CFLAGS
|
||||
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||
SYSROOT_CFLAGS="--sysroot=$SYSROOT"
|
||||
SYSROOT_LDFLAGS="--sysroot=$SYSROOT"
|
||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||
SYSROOT_CFLAGS="-isysroot \"$SYSROOT\""
|
||||
SYSROOT_LDFLAGS="-isysroot \"$SYSROOT\""
|
||||
fi
|
||||
# Propagate the sysroot args to hotspot
|
||||
LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $SYSROOT_CFLAGS"
|
||||
LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $SYSROOT_CFLAGS"
|
||||
LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $SYSROOT_LDFLAGS"
|
||||
fi
|
||||
|
||||
# These always need to be set, or we can't find the frameworks embedded in JavaVM.framework
|
||||
# set this here so it doesn't have to be peppered throughout the forest
|
||||
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||
SYSROOT_CFLAGS="$SYSROOT_CFLAGS -F\"$SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks\""
|
||||
SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS -F\"$SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks\""
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# FIXME: Currently we must test this after toolchain but before flags. Fix!
|
||||
|
||||
|
@ -41543,8 +41624,38 @@ else
|
|||
{ $as_echo "$as_me:${as_lineno-$LINENO}: Failed to compile stdio.h. This likely implies missing compile dependencies." >&5
|
||||
$as_echo "$as_me: Failed to compile stdio.h. This likely implies missing compile dependencies." >&6;}
|
||||
if test "x$COMPILE_TYPE" = xreduced; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: You are doing a reduced build. Check that you have 32-bit libraries installed." >&5
|
||||
$as_echo "$as_me: You are doing a reduced build. Check that you have 32-bit libraries installed." >&6;}
|
||||
|
||||
# Print a helpful message on how to acquire the necessary build dependency.
|
||||
# reduced is the help tag: freetype, cups, pulse, alsa etc
|
||||
MISSING_DEPENDENCY=reduced
|
||||
|
||||
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
|
||||
cygwin_help $MISSING_DEPENDENCY
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
||||
msys_help $MISSING_DEPENDENCY
|
||||
else
|
||||
PKGHANDLER_COMMAND=
|
||||
|
||||
case $PKGHANDLER in
|
||||
apt-get)
|
||||
apt_help $MISSING_DEPENDENCY ;;
|
||||
yum)
|
||||
yum_help $MISSING_DEPENDENCY ;;
|
||||
port)
|
||||
port_help $MISSING_DEPENDENCY ;;
|
||||
pkgutil)
|
||||
pkgutil_help $MISSING_DEPENDENCY ;;
|
||||
pkgadd)
|
||||
pkgadd_help $MISSING_DEPENDENCY ;;
|
||||
esac
|
||||
|
||||
if test "x$PKGHANDLER_COMMAND" != x; then
|
||||
HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
|
||||
fi
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: You are doing a reduced build. Check that you have 32-bit libraries installed. $HELP_MSG" >&5
|
||||
$as_echo "$as_me: You are doing a reduced build. Check that you have 32-bit libraries installed. $HELP_MSG" >&6;}
|
||||
elif test "x$COMPILE_TYPE" = xcross; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: You are doing a cross-compilation. Check that you have all target platform libraries installed." >&5
|
||||
$as_echo "$as_me: You are doing a cross-compilation. Check that you have all target platform libraries installed." >&6;}
|
||||
|
@ -41603,8 +41714,8 @@ $as_echo "$as_me: WARNING: The number of bits in the target could not be determi
|
|||
# Let's try to implicitely set the compilers target architecture and retry the test
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)." >&5
|
||||
$as_echo "$as_me: The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)." >&6;}
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: I'll retry after setting the platforms compiler target bits flag to ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" >&5
|
||||
$as_echo "$as_me: I'll retry after setting the platforms compiler target bits flag to ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" >&6;}
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: Retrying with platforms compiler target bits flag to ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" >&5
|
||||
$as_echo "$as_me: Retrying with platforms compiler target bits flag to ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" >&6;}
|
||||
|
||||
# When we add flags to the "official" CFLAGS etc, we need to
|
||||
# keep track of these additions in ADDED_CFLAGS etc. These
|
||||
|
@ -41667,7 +41778,46 @@ _ACEOF
|
|||
TESTED_TARGET_CPU_BITS=`expr 8 \* $ac_cv_sizeof_int_p`
|
||||
|
||||
if test "x$TESTED_TARGET_CPU_BITS" != "x$OPENJDK_TARGET_CPU_BITS"; then
|
||||
as_fn_error $? "The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)" "$LINENO" 5
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)" >&5
|
||||
$as_echo "$as_me: The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)" >&6;}
|
||||
if test "x$COMPILE_TYPE" = xreduced; then
|
||||
|
||||
# Print a helpful message on how to acquire the necessary build dependency.
|
||||
# reduced is the help tag: freetype, cups, pulse, alsa etc
|
||||
MISSING_DEPENDENCY=reduced
|
||||
|
||||
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
|
||||
cygwin_help $MISSING_DEPENDENCY
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
||||
msys_help $MISSING_DEPENDENCY
|
||||
else
|
||||
PKGHANDLER_COMMAND=
|
||||
|
||||
case $PKGHANDLER in
|
||||
apt-get)
|
||||
apt_help $MISSING_DEPENDENCY ;;
|
||||
yum)
|
||||
yum_help $MISSING_DEPENDENCY ;;
|
||||
port)
|
||||
port_help $MISSING_DEPENDENCY ;;
|
||||
pkgutil)
|
||||
pkgutil_help $MISSING_DEPENDENCY ;;
|
||||
pkgadd)
|
||||
pkgadd_help $MISSING_DEPENDENCY ;;
|
||||
esac
|
||||
|
||||
if test "x$PKGHANDLER_COMMAND" != x; then
|
||||
HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
|
||||
fi
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: You are doing a reduced build. Check that you have 32-bit libraries installed. $HELP_MSG" >&5
|
||||
$as_echo "$as_me: You are doing a reduced build. Check that you have 32-bit libraries installed. $HELP_MSG" >&6;}
|
||||
elif test "x$COMPILE_TYPE" = xcross; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: You are doing a cross-compilation. Check that you have all target platform libraries installed." >&5
|
||||
$as_echo "$as_me: You are doing a cross-compilation. Check that you have all target platform libraries installed." >&6;}
|
||||
fi
|
||||
as_fn_error $? "Cannot continue." "$LINENO" 5
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
@ -42267,54 +42417,9 @@ $as_echo "$supports" >&6; }
|
|||
CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -qfullpath -qsaveopt"
|
||||
fi
|
||||
|
||||
if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags" >&5
|
||||
$as_echo "$as_me: WARNING: Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags" >&2;}
|
||||
fi
|
||||
|
||||
if test "x$CXXFLAGS" != "x${ADDED_CXXFLAGS}"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring CXXFLAGS($CXXFLAGS) found in environment. Use --with-extra-cxxflags" >&5
|
||||
$as_echo "$as_me: WARNING: Ignoring CXXFLAGS($CXXFLAGS) found in environment. Use --with-extra-cxxflags" >&2;}
|
||||
fi
|
||||
|
||||
if test "x$LDFLAGS" != "x${ADDED_LDFLAGS}"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring LDFLAGS($LDFLAGS) found in environment. Use --with-extra-ldflags" >&5
|
||||
$as_echo "$as_me: WARNING: Ignoring LDFLAGS($LDFLAGS) found in environment. Use --with-extra-ldflags" >&2;}
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --with-extra-cflags was given.
|
||||
if test "${with_extra_cflags+set}" = set; then :
|
||||
withval=$with_extra_cflags;
|
||||
fi
|
||||
|
||||
|
||||
|
||||
# Check whether --with-extra-cxxflags was given.
|
||||
if test "${with_extra_cxxflags+set}" = set; then :
|
||||
withval=$with_extra_cxxflags;
|
||||
fi
|
||||
|
||||
|
||||
|
||||
# Check whether --with-extra-ldflags was given.
|
||||
if test "${with_extra_ldflags+set}" = set; then :
|
||||
withval=$with_extra_ldflags;
|
||||
fi
|
||||
|
||||
|
||||
CFLAGS_JDK="${CFLAGS_JDK} $with_extra_cflags"
|
||||
CXXFLAGS_JDK="${CXXFLAGS_JDK} $with_extra_cxxflags"
|
||||
LDFLAGS_JDK="${LDFLAGS_JDK} $with_extra_ldflags"
|
||||
|
||||
# Hotspot needs these set in their legacy form
|
||||
LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $with_extra_cflags"
|
||||
LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $with_extra_cxxflags"
|
||||
LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $with_extra_ldflags"
|
||||
|
||||
|
||||
|
||||
|
||||
CFLAGS_JDK="${CFLAGS_JDK} $EXTRA_CFLAGS"
|
||||
CXXFLAGS_JDK="${CXXFLAGS_JDK} $EXTRA_CXXFLAGS"
|
||||
LDFLAGS_JDK="${LDFLAGS_JDK} $EXTRA_LDFLAGS"
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
|
|
|
@ -97,6 +97,8 @@ msys_help() {
|
|||
|
||||
apt_help() {
|
||||
case $1 in
|
||||
reduced)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install gcc-multilib g++-multilib" ;;
|
||||
devkit)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install build-essential" ;;
|
||||
openjdk)
|
||||
|
|
|
@ -48,8 +48,8 @@ ALT_CUPS_HEADERS_PATH:=$(patsubst -I%,%,$(filter -I%,@CUPS_CFLAGS@))
|
|||
|
||||
# The HOSTCC/HOSTCXX is Hotspot terminology for the BUILD_CC/BUILD_CXX, i.e. the
|
||||
# compiler that produces code that can be run on the build platform.
|
||||
HOSTCC:=@FIXPATH@ @BUILD_CC@
|
||||
HOSTCXX:=@FIXPATH@ @BUILD_CXX@
|
||||
HOSTCC:=@FIXPATH@ @BUILD_CC@ $(BUILD_SYSROOT_CFLAGS)
|
||||
HOSTCXX:=@FIXPATH@ @BUILD_CXX@ $(BUILD_SYSROOT_CFLAGS)
|
||||
|
||||
####################################################
|
||||
#
|
||||
|
|
|
@ -489,7 +489,8 @@ AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_TARGET_BITS],
|
|||
AC_CHECK_HEADERS([stdio.h], , [
|
||||
AC_MSG_NOTICE([Failed to compile stdio.h. This likely implies missing compile dependencies.])
|
||||
if test "x$COMPILE_TYPE" = xreduced; then
|
||||
AC_MSG_NOTICE([You are doing a reduced build. Check that you have 32-bit libraries installed.])
|
||||
HELP_MSG_MISSING_DEPENDENCY([reduced])
|
||||
AC_MSG_NOTICE([You are doing a reduced build. Check that you have 32-bit libraries installed. $HELP_MSG])
|
||||
elif test "x$COMPILE_TYPE" = xcross; then
|
||||
AC_MSG_NOTICE([You are doing a cross-compilation. Check that you have all target platform libraries installed.])
|
||||
fi
|
||||
|
@ -509,7 +510,7 @@ AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_TARGET_BITS],
|
|||
# This situation may happen on 64-bit platforms where the compiler by default only generates 32-bit objects
|
||||
# Let's try to implicitely set the compilers target architecture and retry the test
|
||||
AC_MSG_NOTICE([The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS).])
|
||||
AC_MSG_NOTICE([I'll retry after setting the platforms compiler target bits flag to ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}])
|
||||
AC_MSG_NOTICE([Retrying with platforms compiler target bits flag to ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}])
|
||||
PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS
|
||||
|
||||
# We have to unset 'ac_cv_sizeof_int_p' first, otherwise AC_CHECK_SIZEOF will use the previously cached value!
|
||||
|
@ -524,7 +525,14 @@ _ACEOF
|
|||
TESTED_TARGET_CPU_BITS=`expr 8 \* $ac_cv_sizeof_int_p`
|
||||
|
||||
if test "x$TESTED_TARGET_CPU_BITS" != "x$OPENJDK_TARGET_CPU_BITS"; then
|
||||
AC_MSG_ERROR([The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)])
|
||||
AC_MSG_NOTICE([The tested number of bits in the target ($TESTED_TARGET_CPU_BITS) differs from the number of bits expected to be found in the target ($OPENJDK_TARGET_CPU_BITS)])
|
||||
if test "x$COMPILE_TYPE" = xreduced; then
|
||||
HELP_MSG_MISSING_DEPENDENCY([reduced])
|
||||
AC_MSG_NOTICE([You are doing a reduced build. Check that you have 32-bit libraries installed. $HELP_MSG])
|
||||
elif test "x$COMPILE_TYPE" = xcross; then
|
||||
AC_MSG_NOTICE([You are doing a cross-compilation. Check that you have all target platform libraries installed.])
|
||||
fi
|
||||
AC_MSG_ERROR([Cannot continue.])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
|
|
@ -367,6 +367,8 @@ LDFLAGS_TESTEXE_SUFFIX:=@LDFLAGS_TESTEXE_SUFFIX@
|
|||
# build platform.
|
||||
BUILD_CC:=@FIXPATH@ @BUILD_CC@
|
||||
BUILD_LD:=@FIXPATH@ @BUILD_LD@
|
||||
BUILD_SYSROOT_CFLAGS:=@BUILD_SYSROOT_CFLAGS@
|
||||
BUILD_SYSROOT_LDFLAGS:=@BUILD_SYSROOT_LDFLAGS@
|
||||
|
||||
AS:=@FIXPATH@ @AS@
|
||||
|
||||
|
@ -421,7 +423,7 @@ STATIC_LIBRARY_SUFFIX:=@STATIC_LIBRARY_SUFFIX@
|
|||
EXE_SUFFIX:=@EXE_SUFFIX@
|
||||
OBJ_SUFFIX:=@OBJ_SUFFIX@
|
||||
|
||||
POST_STRIP_CMD:=@POST_STRIP_CMD@
|
||||
STRIPFLAGS:=@STRIPFLAGS@
|
||||
|
||||
JAVA_FLAGS:=@JAVA_FLAGS@
|
||||
JAVA_FLAGS_BIG:=@JAVA_FLAGS_BIG@
|
||||
|
@ -461,9 +463,6 @@ INTERIM_LANGTOOLS_ARGS = "-Xbootclasspath/p:$(INTERIM_LANGTOOLS_JAR)" -cp $(INTE
|
|||
NEW_JAVAC = $(INTERIM_LANGTOOLS_ARGS) com.sun.tools.javac.Main
|
||||
NEW_JAVADOC = $(INTERIM_LANGTOOLS_ARGS) com.sun.tools.javadoc.Main
|
||||
|
||||
# The interim corba jar is needed for running rmic
|
||||
INTERIM_CORBA_JAR = $(BUILDTOOLS_OUTPUTDIR)/interim_corba.jar
|
||||
|
||||
# Base flags for RC
|
||||
# Guarding this against resetting value. Legacy make files include spec multiple
|
||||
# times.
|
||||
|
|
|
@ -656,17 +656,23 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
|
|||
BASIC_FIXUP_EXECUTABLE(BUILD_CXX)
|
||||
BASIC_PATH_PROGS(BUILD_LD, ld)
|
||||
BASIC_FIXUP_EXECUTABLE(BUILD_LD)
|
||||
BUILD_SYSROOT_CFLAGS=""
|
||||
BUILD_SYSROOT_LDFLAGS=""
|
||||
else
|
||||
# If we are not cross compiling, use the normal target compilers for
|
||||
# building the build platform executables.
|
||||
BUILD_CC="$CC"
|
||||
BUILD_CXX="$CXX"
|
||||
BUILD_LD="$LD"
|
||||
BUILD_SYSROOT_CFLAGS="$SYSROOT_CFLAGS"
|
||||
BUILD_SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS"
|
||||
fi
|
||||
|
||||
AC_SUBST(BUILD_CC)
|
||||
AC_SUBST(BUILD_CXX)
|
||||
AC_SUBST(BUILD_LD)
|
||||
AC_SUBST(BUILD_SYSROOT_CFLAGS)
|
||||
AC_SUBST(BUILD_SYSROOT_LDFLAGS)
|
||||
])
|
||||
|
||||
# Setup legacy variables that are still needed as alternative ways to refer to
|
||||
|
|
|
@ -326,3 +326,4 @@ d8126bc88fa5cd1ae4e44d86a4b1280ca1c9e2aa jdk9-b76
|
|||
45c35b7f5b40d5af0085e4a7b3a4d6e3e0347c35 jdk9-b81
|
||||
c20d8ebddaa6fb09cc81d3edf3d1d05f4232700a jdk9-b82
|
||||
ca8a1719588424f6e04e943790c7fcb7cb0b8c8f jdk9-b83
|
||||
df70bb200356fec686681f0295c50cc3ed43c3b3 jdk9-b84
|
||||
|
|
|
@ -1,55 +0,0 @@
|
|||
#
|
||||
# Copyright (c) 2014, 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
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
# This must be the first rule
|
||||
default: all
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
include JavaCompilation.gmk
|
||||
include SetupJavaCompilers.gmk
|
||||
|
||||
################################################################################
|
||||
|
||||
$(eval $(call SetupJavaCompilation,BUILD_INTERIM_CORBA, \
|
||||
SETUP := GENERATE_OLDBYTECODE, \
|
||||
SRC := $(JDK_TOPDIR)/src/jdk.rmic/share/classes \
|
||||
$(CORBA_TOPDIR)/src/java.corba/share/classes \
|
||||
$(CORBA_TOPDIR)/src/jdk.rmic/share/classes \
|
||||
$(SUPPORT_OUTPUTDIR)/gensrc/java.corba, \
|
||||
EXCLUDES := com/sun/corba/se/PortableActivationIDL, \
|
||||
EXCLUDE_FILES := com/sun/corba/se/impl/presentation/rmi/JNDIStateFactoryImpl.java \
|
||||
com/sun/corba/se/spi/presentation/rmi/StubWrapper.java \
|
||||
org/omg/PortableInterceptor/UNKNOWN.java \
|
||||
com/sun/tools/corba/se/idl/ResourceBundleUtil.java \
|
||||
com/sun/corba/se/impl/presentation/rmi/jndi.properties, \
|
||||
COPY := .prp, \
|
||||
CLEAN := .properties, \
|
||||
BIN := $(BUILDTOOLS_OUTPUTDIR)/corba_interim_classes, \
|
||||
JAR := $(INTERIM_CORBA_JAR)))
|
||||
|
||||
################################################################################
|
||||
|
||||
all: $(BUILD_INTERIM_CORBA)
|
|
@ -89,6 +89,9 @@ import com.sun.corba.se.impl.logging.OMGSystemException ;
|
|||
|
||||
import com.sun.corba.se.impl.presentation.rmi.PresentationManagerImpl ;
|
||||
|
||||
import jdk.internal.misc.JavaAWTAccess;
|
||||
import jdk.internal.misc.SharedSecrets;
|
||||
|
||||
public abstract class ORB extends com.sun.corba.se.org.omg.CORBA.ORB
|
||||
implements Broker, TypeCodeFactory
|
||||
{
|
||||
|
@ -202,7 +205,7 @@ public abstract class ORB extends com.sun.corba.se.org.omg.CORBA.ORB
|
|||
public static PresentationManager getPresentationManager()
|
||||
{
|
||||
SecurityManager sm = System.getSecurityManager();
|
||||
sun.misc.JavaAWTAccess javaAwtAccess = sun.misc.SharedSecrets.getJavaAWTAccess();
|
||||
JavaAWTAccess javaAwtAccess = SharedSecrets.getJavaAWTAccess();
|
||||
if (sm != null && javaAwtAccess != null) {
|
||||
final Object appletContext = javaAwtAccess.getAppletContext();
|
||||
if (appletContext != null) {
|
||||
|
|
|
@ -486,3 +486,4 @@ e9e63d93bbfe2c6c23447e2c1f5cc71c98671cba jdk9-b79
|
|||
4142c190cd5ca4fb70ec367b4f97ef936272d8ef jdk9-b81
|
||||
1c453a12be3036d482abef1dd470f8aff536b6b9 jdk9-b82
|
||||
3ed0df2c553a80e0e26b91a6ce08806ea17a066a jdk9-b83
|
||||
184c4328444974edd6b3b490b9d0177ace7e331c jdk9-b84
|
||||
|
|
|
@ -2556,7 +2556,7 @@ bool unnecessary_acquire(const Node *barrier)
|
|||
if (ld == NULL) {
|
||||
// check for a child cpuorder membar
|
||||
MemBarNode *child = child_membar(barrier->as_MemBar());
|
||||
if (child && child->Opcode() != Op_MemBarCPUOrder)
|
||||
if (child && child->Opcode() == Op_MemBarCPUOrder)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -15223,6 +15223,88 @@ instruct vsqrt2D(vecX dst, vecX src)
|
|||
ins_pipe(pipe_class_default);
|
||||
%}
|
||||
|
||||
// --------------------------------- ABS --------------------------------------
|
||||
|
||||
instruct vabs2F(vecD dst, vecD src)
|
||||
%{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
match(Set dst (AbsVF src));
|
||||
ins_cost(INSN_COST * 3);
|
||||
format %{ "fabs $dst,$src\t# vector (2S)" %}
|
||||
ins_encode %{
|
||||
__ fabs(as_FloatRegister($dst$$reg), __ T2S,
|
||||
as_FloatRegister($src$$reg));
|
||||
%}
|
||||
ins_pipe(pipe_class_default);
|
||||
%}
|
||||
|
||||
instruct vabs4F(vecX dst, vecX src)
|
||||
%{
|
||||
predicate(n->as_Vector()->length() == 4);
|
||||
match(Set dst (AbsVF src));
|
||||
ins_cost(INSN_COST * 3);
|
||||
format %{ "fabs $dst,$src\t# vector (4S)" %}
|
||||
ins_encode %{
|
||||
__ fabs(as_FloatRegister($dst$$reg), __ T4S,
|
||||
as_FloatRegister($src$$reg));
|
||||
%}
|
||||
ins_pipe(pipe_class_default);
|
||||
%}
|
||||
|
||||
instruct vabs2D(vecX dst, vecX src)
|
||||
%{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
match(Set dst (AbsVD src));
|
||||
ins_cost(INSN_COST * 3);
|
||||
format %{ "fabs $dst,$src\t# vector (2D)" %}
|
||||
ins_encode %{
|
||||
__ fabs(as_FloatRegister($dst$$reg), __ T2D,
|
||||
as_FloatRegister($src$$reg));
|
||||
%}
|
||||
ins_pipe(pipe_class_default);
|
||||
%}
|
||||
|
||||
// --------------------------------- NEG --------------------------------------
|
||||
|
||||
instruct vneg2F(vecD dst, vecD src)
|
||||
%{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
match(Set dst (NegVF src));
|
||||
ins_cost(INSN_COST * 3);
|
||||
format %{ "fneg $dst,$src\t# vector (2S)" %}
|
||||
ins_encode %{
|
||||
__ fneg(as_FloatRegister($dst$$reg), __ T2S,
|
||||
as_FloatRegister($src$$reg));
|
||||
%}
|
||||
ins_pipe(pipe_class_default);
|
||||
%}
|
||||
|
||||
instruct vneg4F(vecX dst, vecX src)
|
||||
%{
|
||||
predicate(n->as_Vector()->length() == 4);
|
||||
match(Set dst (NegVF src));
|
||||
ins_cost(INSN_COST * 3);
|
||||
format %{ "fneg $dst,$src\t# vector (4S)" %}
|
||||
ins_encode %{
|
||||
__ fneg(as_FloatRegister($dst$$reg), __ T4S,
|
||||
as_FloatRegister($src$$reg));
|
||||
%}
|
||||
ins_pipe(pipe_class_default);
|
||||
%}
|
||||
|
||||
instruct vneg2D(vecX dst, vecX src)
|
||||
%{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
match(Set dst (NegVD src));
|
||||
ins_cost(INSN_COST * 3);
|
||||
format %{ "fneg $dst,$src\t# vector (2D)" %}
|
||||
ins_encode %{
|
||||
__ fneg(as_FloatRegister($dst$$reg), __ T2D,
|
||||
as_FloatRegister($src$$reg));
|
||||
%}
|
||||
ins_pipe(pipe_class_default);
|
||||
%}
|
||||
|
||||
// --------------------------------- AND --------------------------------------
|
||||
|
||||
instruct vand8B(vecD dst, vecD src1, vecD src2)
|
||||
|
|
|
@ -2313,6 +2313,8 @@ public:
|
|||
|
||||
#define ASSERTION (T == T2S || T == T4S || T == T2D)
|
||||
INSN(fsqrt, 1, 0b11111);
|
||||
INSN(fabs, 0, 0b01111);
|
||||
INSN(fneg, 1, 0b01111);
|
||||
#undef ASSERTION
|
||||
|
||||
#define ASSERTION (T == T8B || T == T16B || T == T4H || T == T8H || T == T2S || T == T4S)
|
||||
|
|
|
@ -770,6 +770,7 @@ address Assembler::locate_operand(address inst, WhichOperand which) {
|
|||
case 0x55: // andnps
|
||||
case 0x56: // orps
|
||||
case 0x57: // xorps
|
||||
case 0x59: //mulpd
|
||||
case 0x6E: // movd
|
||||
case 0x7E: // movd
|
||||
case 0xAE: // ldmxcsr, stmxcsr, fxrstor, fxsave, clflush
|
||||
|
@ -3030,6 +3031,15 @@ void Assembler::pextrq(Register dst, XMMRegister src, int imm8) {
|
|||
emit_int8(imm8);
|
||||
}
|
||||
|
||||
void Assembler::pextrw(Register dst, XMMRegister src, int imm8) {
|
||||
assert(VM_Version::supports_sse2(), "");
|
||||
int encode = simd_prefix_and_encode(as_XMMRegister(dst->encoding()), xnoreg, src, VEX_SIMD_66, /* no_mask_reg */ true,
|
||||
VEX_OPCODE_0F_3A, /* rex_w */ false, AVX_128bit, /* legacy_mode */ _legacy_mode_bw);
|
||||
emit_int8(0x15);
|
||||
emit_int8((unsigned char)(0xC0 | encode));
|
||||
emit_int8(imm8);
|
||||
}
|
||||
|
||||
void Assembler::pinsrd(XMMRegister dst, Register src, int imm8) {
|
||||
assert(VM_Version::supports_sse4_1(), "");
|
||||
int encode = simd_prefix_and_encode(dst, dst, as_XMMRegister(src->encoding()), VEX_SIMD_66, /* no_mask_reg */ true,
|
||||
|
@ -3048,6 +3058,15 @@ void Assembler::pinsrq(XMMRegister dst, Register src, int imm8) {
|
|||
emit_int8(imm8);
|
||||
}
|
||||
|
||||
void Assembler::pinsrw(XMMRegister dst, Register src, int imm8) {
|
||||
assert(VM_Version::supports_sse2(), "");
|
||||
int encode = simd_prefix_and_encode(dst, dst, as_XMMRegister(src->encoding()), VEX_SIMD_66, /* no_mask_reg */ true,
|
||||
VEX_OPCODE_0F, /* rex_w */ false, AVX_128bit, /* legacy_mode */ _legacy_mode_bw);
|
||||
emit_int8((unsigned char)0xC4);
|
||||
emit_int8((unsigned char)(0xC0 | encode));
|
||||
emit_int8(imm8);
|
||||
}
|
||||
|
||||
void Assembler::pmovzxbw(XMMRegister dst, Address src) {
|
||||
assert(VM_Version::supports_sse4_1(), "");
|
||||
if (VM_Version::supports_evex()) {
|
||||
|
@ -4063,6 +4082,16 @@ void Assembler::mulpd(XMMRegister dst, XMMRegister src) {
|
|||
}
|
||||
}
|
||||
|
||||
void Assembler::mulpd(XMMRegister dst, Address src) {
|
||||
_instruction_uses_vl = true;
|
||||
NOT_LP64(assert(VM_Version::supports_sse2(), ""));
|
||||
if (VM_Version::supports_evex()) {
|
||||
emit_simd_arith_q(0x59, dst, src, VEX_SIMD_66);
|
||||
} else {
|
||||
emit_simd_arith(0x59, dst, src, VEX_SIMD_66);
|
||||
}
|
||||
}
|
||||
|
||||
void Assembler::mulps(XMMRegister dst, XMMRegister src) {
|
||||
_instruction_uses_vl = true;
|
||||
NOT_LP64(assert(VM_Version::supports_sse2(), ""));
|
||||
|
@ -4251,6 +4280,26 @@ void Assembler::vandps(XMMRegister dst, XMMRegister nds, Address src, int vector
|
|||
emit_vex_arith(0x54, dst, nds, src, VEX_SIMD_NONE, vector_len, /* no_mask_reg */ false, /* legacy_mode */ _legacy_mode_dq);
|
||||
}
|
||||
|
||||
void Assembler::unpckhpd(XMMRegister dst, XMMRegister src) {
|
||||
_instruction_uses_vl = true;
|
||||
NOT_LP64(assert(VM_Version::supports_sse2(), ""));
|
||||
if (VM_Version::supports_evex()) {
|
||||
emit_simd_arith_q(0x15, dst, src, VEX_SIMD_66);
|
||||
} else {
|
||||
emit_simd_arith(0x15, dst, src, VEX_SIMD_66);
|
||||
}
|
||||
}
|
||||
|
||||
void Assembler::unpcklpd(XMMRegister dst, XMMRegister src) {
|
||||
_instruction_uses_vl = true;
|
||||
NOT_LP64(assert(VM_Version::supports_sse2(), ""));
|
||||
if (VM_Version::supports_evex()) {
|
||||
emit_simd_arith_q(0x14, dst, src, VEX_SIMD_66);
|
||||
} else {
|
||||
emit_simd_arith(0x14, dst, src, VEX_SIMD_66);
|
||||
}
|
||||
}
|
||||
|
||||
void Assembler::xorpd(XMMRegister dst, XMMRegister src) {
|
||||
NOT_LP64(assert(VM_Version::supports_sse2(), ""));
|
||||
if (VM_Version::supports_avx512dq()) {
|
||||
|
@ -4871,8 +4920,9 @@ void Assembler::vpsrad(XMMRegister dst, XMMRegister src, XMMRegister shift, int
|
|||
}
|
||||
|
||||
|
||||
// AND packed integers
|
||||
// logical operations packed integers
|
||||
void Assembler::pand(XMMRegister dst, XMMRegister src) {
|
||||
_instruction_uses_vl = true;
|
||||
NOT_LP64(assert(VM_Version::supports_sse2(), ""));
|
||||
emit_simd_arith(0xDB, dst, src, VEX_SIMD_66);
|
||||
}
|
||||
|
@ -4893,6 +4943,17 @@ void Assembler::vpand(XMMRegister dst, XMMRegister nds, Address src, int vector_
|
|||
emit_vex_arith(0xDB, dst, nds, src, VEX_SIMD_66, vector_len);
|
||||
}
|
||||
|
||||
void Assembler::pandn(XMMRegister dst, XMMRegister src) {
|
||||
_instruction_uses_vl = true;
|
||||
NOT_LP64(assert(VM_Version::supports_sse2(), ""));
|
||||
if (VM_Version::supports_evex()) {
|
||||
emit_simd_arith_q(0xDF, dst, src, VEX_SIMD_66);
|
||||
}
|
||||
else {
|
||||
emit_simd_arith(0xDF, dst, src, VEX_SIMD_66);
|
||||
}
|
||||
}
|
||||
|
||||
void Assembler::por(XMMRegister dst, XMMRegister src) {
|
||||
_instruction_uses_vl = true;
|
||||
NOT_LP64(assert(VM_Version::supports_sse2(), ""));
|
||||
|
|
|
@ -1679,10 +1679,14 @@ private:
|
|||
// SSE 4.1 extract
|
||||
void pextrd(Register dst, XMMRegister src, int imm8);
|
||||
void pextrq(Register dst, XMMRegister src, int imm8);
|
||||
// SSE 2 extract
|
||||
void pextrw(Register dst, XMMRegister src, int imm8);
|
||||
|
||||
// SSE 4.1 insert
|
||||
void pinsrd(XMMRegister dst, Register src, int imm8);
|
||||
void pinsrq(XMMRegister dst, Register src, int imm8);
|
||||
// SSE 2 insert
|
||||
void pinsrw(XMMRegister dst, Register src, int imm8);
|
||||
|
||||
// SSE4.1 packed move
|
||||
void pmovzxbw(XMMRegister dst, XMMRegister src);
|
||||
|
@ -1933,6 +1937,7 @@ private:
|
|||
|
||||
// Multiply Packed Floating-Point Values
|
||||
void mulpd(XMMRegister dst, XMMRegister src);
|
||||
void mulpd(XMMRegister dst, Address src);
|
||||
void mulps(XMMRegister dst, XMMRegister src);
|
||||
void vmulpd(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len);
|
||||
void vmulps(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len);
|
||||
|
@ -1959,6 +1964,9 @@ private:
|
|||
void vandpd(XMMRegister dst, XMMRegister nds, Address src, int vector_len);
|
||||
void vandps(XMMRegister dst, XMMRegister nds, Address src, int vector_len);
|
||||
|
||||
void unpckhpd(XMMRegister dst, XMMRegister src);
|
||||
void unpcklpd(XMMRegister dst, XMMRegister src);
|
||||
|
||||
// Bitwise Logical XOR of Packed Floating-Point Values
|
||||
void xorpd(XMMRegister dst, XMMRegister src);
|
||||
void xorps(XMMRegister dst, XMMRegister src);
|
||||
|
@ -2054,6 +2062,9 @@ private:
|
|||
void vpand(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len);
|
||||
void vpand(XMMRegister dst, XMMRegister nds, Address src, int vector_len);
|
||||
|
||||
// Andn packed integers
|
||||
void pandn(XMMRegister dst, XMMRegister src);
|
||||
|
||||
// Or packed integers
|
||||
void por(XMMRegister dst, XMMRegister src);
|
||||
void vpor(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len);
|
||||
|
|
|
@ -2457,9 +2457,6 @@ void LIR_Assembler::intrinsic_op(LIR_Code code, LIR_Opr value, LIR_Opr unused, L
|
|||
// Should consider not saving rbx, if not necessary
|
||||
__ trigfunc('t', op->as_Op2()->fpu_stack_size());
|
||||
break;
|
||||
case lir_exp :
|
||||
__ exp_with_fallback(op->as_Op2()->fpu_stack_size());
|
||||
break;
|
||||
case lir_pow :
|
||||
__ pow_with_fallback(op->as_Op2()->fpu_stack_size());
|
||||
break;
|
||||
|
|
|
@ -808,6 +808,12 @@ void LIRGenerator::do_CompareAndSwap(Intrinsic* x, ValueType* type) {
|
|||
|
||||
void LIRGenerator::do_MathIntrinsic(Intrinsic* x) {
|
||||
assert(x->number_of_arguments() == 1 || (x->number_of_arguments() == 2 && x->id() == vmIntrinsics::_dpow), "wrong type");
|
||||
|
||||
if (x->id() == vmIntrinsics::_dexp) {
|
||||
do_ExpIntrinsic(x);
|
||||
return;
|
||||
}
|
||||
|
||||
LIRItem value(x->argument_at(0), this);
|
||||
|
||||
bool use_fpu = false;
|
||||
|
@ -818,7 +824,6 @@ void LIRGenerator::do_MathIntrinsic(Intrinsic* x) {
|
|||
case vmIntrinsics::_dtan:
|
||||
case vmIntrinsics::_dlog:
|
||||
case vmIntrinsics::_dlog10:
|
||||
case vmIntrinsics::_dexp:
|
||||
case vmIntrinsics::_dpow:
|
||||
use_fpu = true;
|
||||
}
|
||||
|
@ -870,7 +875,6 @@ void LIRGenerator::do_MathIntrinsic(Intrinsic* x) {
|
|||
case vmIntrinsics::_dtan: __ tan (calc_input, calc_result, tmp1, tmp2); break;
|
||||
case vmIntrinsics::_dlog: __ log (calc_input, calc_result, tmp1); break;
|
||||
case vmIntrinsics::_dlog10: __ log10(calc_input, calc_result, tmp1); break;
|
||||
case vmIntrinsics::_dexp: __ exp (calc_input, calc_result, tmp1, tmp2, FrameMap::rax_opr, FrameMap::rcx_opr, FrameMap::rdx_opr); break;
|
||||
case vmIntrinsics::_dpow: __ pow (calc_input, calc_input2, calc_result, tmp1, tmp2, FrameMap::rax_opr, FrameMap::rcx_opr, FrameMap::rdx_opr); break;
|
||||
default: ShouldNotReachHere();
|
||||
}
|
||||
|
@ -880,6 +884,32 @@ void LIRGenerator::do_MathIntrinsic(Intrinsic* x) {
|
|||
}
|
||||
}
|
||||
|
||||
void LIRGenerator::do_ExpIntrinsic(Intrinsic* x) {
|
||||
LIRItem value(x->argument_at(0), this);
|
||||
value.set_destroys_register();
|
||||
|
||||
LIR_Opr calc_result = rlock_result(x);
|
||||
LIR_Opr result_reg = result_register_for(x->type());
|
||||
|
||||
BasicTypeList signature(1);
|
||||
signature.append(T_DOUBLE);
|
||||
CallingConvention* cc = frame_map()->c_calling_convention(&signature);
|
||||
|
||||
value.load_item_force(cc->at(0));
|
||||
|
||||
#ifndef _LP64
|
||||
LIR_Opr tmp = FrameMap::fpu0_double_opr;
|
||||
result_reg = tmp;
|
||||
if (VM_Version::supports_sse2()) {
|
||||
__ call_runtime_leaf(StubRoutines::dexp(), getThreadTemp(), result_reg, cc->args());
|
||||
} else {
|
||||
__ call_runtime_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::dexp), getThreadTemp(), result_reg, cc->args());
|
||||
}
|
||||
#else
|
||||
__ call_runtime_leaf(StubRoutines::dexp(), getThreadTemp(), result_reg, cc->args());
|
||||
#endif
|
||||
__ move(result_reg, calc_result);
|
||||
}
|
||||
|
||||
void LIRGenerator::do_ArrayCopy(Intrinsic* x) {
|
||||
assert(x->number_of_arguments() == 5, "wrong type");
|
||||
|
|
|
@ -814,8 +814,7 @@ void FpuStackAllocator::handle_op2(LIR_Op2* op2) {
|
|||
|
||||
case lir_tan:
|
||||
case lir_sin:
|
||||
case lir_cos:
|
||||
case lir_exp: {
|
||||
case lir_cos: {
|
||||
// sin, cos and exp need two temporary fpu stack slots, so there are two temporary
|
||||
// registers (stored in right and temp of the operation).
|
||||
// the stack allocator must guarantee that the stack slots are really free,
|
||||
|
|
|
@ -151,11 +151,15 @@ address InterpreterGenerator::generate_math_entry(AbstractInterpreter::MethodKin
|
|||
__ pop_fTOS();
|
||||
break;
|
||||
case Interpreter::java_lang_math_exp:
|
||||
__ exp_with_fallback(0);
|
||||
// Store to stack to convert 80bit precision back to 64bits
|
||||
__ push_fTOS();
|
||||
__ pop_fTOS();
|
||||
break;
|
||||
__ subptr(rsp, 2*wordSize);
|
||||
__ fstp_d(Address(rsp, 0));
|
||||
if (VM_Version::supports_sse2()) {
|
||||
__ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dexp())));
|
||||
} else {
|
||||
__ call(RuntimeAddress(CAST_FROM_FN_PTR(address, SharedRuntime::dexp)));
|
||||
}
|
||||
__ addptr(rsp, 2*wordSize);
|
||||
break;
|
||||
default :
|
||||
ShouldNotReachHere();
|
||||
}
|
||||
|
|
|
@ -250,6 +250,9 @@ address InterpreterGenerator::generate_math_entry(AbstractInterpreter::MethodKin
|
|||
|
||||
if (kind == Interpreter::java_lang_math_sqrt) {
|
||||
__ sqrtsd(xmm0, Address(rsp, wordSize));
|
||||
} else if (kind == Interpreter::java_lang_math_exp) {
|
||||
__ movdbl(xmm0, Address(rsp, wordSize));
|
||||
__ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dexp())));
|
||||
} else {
|
||||
__ fld_d(Address(rsp, wordSize));
|
||||
switch (kind) {
|
||||
|
@ -276,9 +279,6 @@ address InterpreterGenerator::generate_math_entry(AbstractInterpreter::MethodKin
|
|||
// empty stack slot)
|
||||
__ pow_with_fallback(0);
|
||||
break;
|
||||
case Interpreter::java_lang_math_exp:
|
||||
__ exp_with_fallback(0);
|
||||
break;
|
||||
default :
|
||||
ShouldNotReachHere();
|
||||
}
|
||||
|
|
|
@ -3031,6 +3031,15 @@ void MacroAssembler::fldcw(AddressLiteral src) {
|
|||
Assembler::fldcw(as_Address(src));
|
||||
}
|
||||
|
||||
void MacroAssembler::mulpd(XMMRegister dst, AddressLiteral src) {
|
||||
if (reachable(src)) {
|
||||
Assembler::mulpd(dst, as_Address(src));
|
||||
} else {
|
||||
lea(rscratch1, src);
|
||||
Assembler::mulpd(dst, Address(rscratch1, 0));
|
||||
}
|
||||
}
|
||||
|
||||
void MacroAssembler::pow_exp_core_encoding() {
|
||||
// kills rax, rcx, rdx
|
||||
subptr(rsp,sizeof(jdouble));
|
||||
|
@ -3103,19 +3112,7 @@ void MacroAssembler::fast_pow() {
|
|||
BLOCK_COMMENT("} fast_pow");
|
||||
}
|
||||
|
||||
void MacroAssembler::fast_exp() {
|
||||
// computes exp(X) = 2^(X * log2(e))
|
||||
// if fast computation is not possible, result is NaN. Requires
|
||||
// fallback from user of this macro.
|
||||
// increase precision for intermediate steps of the computation
|
||||
increase_precision();
|
||||
fldl2e(); // Stack: log2(e) X ...
|
||||
fmulp(1); // Stack: (X*log2(e)) ...
|
||||
pow_exp_core_encoding(); // Stack: exp(X) ...
|
||||
restore_precision();
|
||||
}
|
||||
|
||||
void MacroAssembler::pow_or_exp(bool is_exp, int num_fpu_regs_in_use) {
|
||||
void MacroAssembler::pow_or_exp(int num_fpu_regs_in_use) {
|
||||
// kills rax, rcx, rdx
|
||||
// pow and exp needs 2 extra registers on the fpu stack.
|
||||
Label slow_case, done;
|
||||
|
@ -3127,182 +3124,164 @@ void MacroAssembler::pow_or_exp(bool is_exp, int num_fpu_regs_in_use) {
|
|||
Register tmp2 = rax;
|
||||
Register tmp3 = rcx;
|
||||
|
||||
if (is_exp) {
|
||||
// Stack: X
|
||||
fld_s(0); // duplicate argument for runtime call. Stack: X X
|
||||
fast_exp(); // Stack: exp(X) X
|
||||
fcmp(tmp, 0, false, false); // Stack: exp(X) X
|
||||
// exp(X) not equal to itself: exp(X) is NaN go to slow case.
|
||||
jcc(Assembler::parity, slow_case);
|
||||
// get rid of duplicate argument. Stack: exp(X)
|
||||
if (num_fpu_regs_in_use > 0) {
|
||||
fxch();
|
||||
fpop();
|
||||
} else {
|
||||
ffree(1);
|
||||
}
|
||||
jmp(done);
|
||||
// Stack: X Y
|
||||
Label x_negative, y_not_2;
|
||||
|
||||
static double two = 2.0;
|
||||
ExternalAddress two_addr((address)&two);
|
||||
|
||||
// constant maybe too far on 64 bit
|
||||
lea(tmp2, two_addr);
|
||||
fld_d(Address(tmp2, 0)); // Stack: 2 X Y
|
||||
fcmp(tmp, 2, true, false); // Stack: X Y
|
||||
jcc(Assembler::parity, y_not_2);
|
||||
jcc(Assembler::notEqual, y_not_2);
|
||||
|
||||
fxch(); fpop(); // Stack: X
|
||||
fmul(0); // Stack: X*X
|
||||
|
||||
jmp(done);
|
||||
|
||||
bind(y_not_2);
|
||||
|
||||
fldz(); // Stack: 0 X Y
|
||||
fcmp(tmp, 1, true, false); // Stack: X Y
|
||||
jcc(Assembler::above, x_negative);
|
||||
|
||||
// X >= 0
|
||||
|
||||
fld_s(1); // duplicate arguments for runtime call. Stack: Y X Y
|
||||
fld_s(1); // Stack: X Y X Y
|
||||
fast_pow(); // Stack: X^Y X Y
|
||||
fcmp(tmp, 0, false, false); // Stack: X^Y X Y
|
||||
// X^Y not equal to itself: X^Y is NaN go to slow case.
|
||||
jcc(Assembler::parity, slow_case);
|
||||
// get rid of duplicate arguments. Stack: X^Y
|
||||
if (num_fpu_regs_in_use > 0) {
|
||||
fxch(); fpop();
|
||||
fxch(); fpop();
|
||||
} else {
|
||||
// Stack: X Y
|
||||
Label x_negative, y_not_2;
|
||||
ffree(2);
|
||||
ffree(1);
|
||||
}
|
||||
jmp(done);
|
||||
|
||||
static double two = 2.0;
|
||||
ExternalAddress two_addr((address)&two);
|
||||
// X <= 0
|
||||
bind(x_negative);
|
||||
|
||||
// constant maybe too far on 64 bit
|
||||
lea(tmp2, two_addr);
|
||||
fld_d(Address(tmp2, 0)); // Stack: 2 X Y
|
||||
fcmp(tmp, 2, true, false); // Stack: X Y
|
||||
jcc(Assembler::parity, y_not_2);
|
||||
jcc(Assembler::notEqual, y_not_2);
|
||||
fld_s(1); // Stack: Y X Y
|
||||
frndint(); // Stack: int(Y) X Y
|
||||
fcmp(tmp, 2, false, false); // Stack: int(Y) X Y
|
||||
jcc(Assembler::notEqual, slow_case);
|
||||
|
||||
fxch(); fpop(); // Stack: X
|
||||
fmul(0); // Stack: X*X
|
||||
subptr(rsp, 8);
|
||||
|
||||
jmp(done);
|
||||
|
||||
bind(y_not_2);
|
||||
|
||||
fldz(); // Stack: 0 X Y
|
||||
fcmp(tmp, 1, true, false); // Stack: X Y
|
||||
jcc(Assembler::above, x_negative);
|
||||
|
||||
// X >= 0
|
||||
|
||||
fld_s(1); // duplicate arguments for runtime call. Stack: Y X Y
|
||||
fld_s(1); // Stack: X Y X Y
|
||||
fast_pow(); // Stack: X^Y X Y
|
||||
fcmp(tmp, 0, false, false); // Stack: X^Y X Y
|
||||
// X^Y not equal to itself: X^Y is NaN go to slow case.
|
||||
jcc(Assembler::parity, slow_case);
|
||||
// get rid of duplicate arguments. Stack: X^Y
|
||||
if (num_fpu_regs_in_use > 0) {
|
||||
fxch(); fpop();
|
||||
fxch(); fpop();
|
||||
} else {
|
||||
ffree(2);
|
||||
ffree(1);
|
||||
}
|
||||
jmp(done);
|
||||
|
||||
// X <= 0
|
||||
bind(x_negative);
|
||||
|
||||
fld_s(1); // Stack: Y X Y
|
||||
frndint(); // Stack: int(Y) X Y
|
||||
fcmp(tmp, 2, false, false); // Stack: int(Y) X Y
|
||||
jcc(Assembler::notEqual, slow_case);
|
||||
|
||||
subptr(rsp, 8);
|
||||
|
||||
// For X^Y, when X < 0, Y has to be an integer and the final
|
||||
// result depends on whether it's odd or even. We just checked
|
||||
// that int(Y) == Y. We move int(Y) to gp registers as a 64 bit
|
||||
// integer to test its parity. If int(Y) is huge and doesn't fit
|
||||
// in the 64 bit integer range, the integer indefinite value will
|
||||
// end up in the gp registers. Huge numbers are all even, the
|
||||
// integer indefinite number is even so it's fine.
|
||||
// For X^Y, when X < 0, Y has to be an integer and the final
|
||||
// result depends on whether it's odd or even. We just checked
|
||||
// that int(Y) == Y. We move int(Y) to gp registers as a 64 bit
|
||||
// integer to test its parity. If int(Y) is huge and doesn't fit
|
||||
// in the 64 bit integer range, the integer indefinite value will
|
||||
// end up in the gp registers. Huge numbers are all even, the
|
||||
// integer indefinite number is even so it's fine.
|
||||
|
||||
#ifdef ASSERT
|
||||
// Let's check we don't end up with an integer indefinite number
|
||||
// when not expected. First test for huge numbers: check whether
|
||||
// int(Y)+1 == int(Y) which is true for very large numbers and
|
||||
// those are all even. A 64 bit integer is guaranteed to not
|
||||
// overflow for numbers where y+1 != y (when precision is set to
|
||||
// double precision).
|
||||
Label y_not_huge;
|
||||
// Let's check we don't end up with an integer indefinite number
|
||||
// when not expected. First test for huge numbers: check whether
|
||||
// int(Y)+1 == int(Y) which is true for very large numbers and
|
||||
// those are all even. A 64 bit integer is guaranteed to not
|
||||
// overflow for numbers where y+1 != y (when precision is set to
|
||||
// double precision).
|
||||
Label y_not_huge;
|
||||
|
||||
fld1(); // Stack: 1 int(Y) X Y
|
||||
fadd(1); // Stack: 1+int(Y) int(Y) X Y
|
||||
fld1(); // Stack: 1 int(Y) X Y
|
||||
fadd(1); // Stack: 1+int(Y) int(Y) X Y
|
||||
|
||||
#ifdef _LP64
|
||||
// trip to memory to force the precision down from double extended
|
||||
// precision
|
||||
fstp_d(Address(rsp, 0));
|
||||
fld_d(Address(rsp, 0));
|
||||
// trip to memory to force the precision down from double extended
|
||||
// precision
|
||||
fstp_d(Address(rsp, 0));
|
||||
fld_d(Address(rsp, 0));
|
||||
#endif
|
||||
|
||||
fcmp(tmp, 1, true, false); // Stack: int(Y) X Y
|
||||
fcmp(tmp, 1, true, false); // Stack: int(Y) X Y
|
||||
#endif
|
||||
|
||||
// move int(Y) as 64 bit integer to thread's stack
|
||||
fistp_d(Address(rsp,0)); // Stack: X Y
|
||||
// move int(Y) as 64 bit integer to thread's stack
|
||||
fistp_d(Address(rsp,0)); // Stack: X Y
|
||||
|
||||
#ifdef ASSERT
|
||||
jcc(Assembler::notEqual, y_not_huge);
|
||||
jcc(Assembler::notEqual, y_not_huge);
|
||||
|
||||
// Y is huge so we know it's even. It may not fit in a 64 bit
|
||||
// integer and we don't want the debug code below to see the
|
||||
// integer indefinite value so overwrite int(Y) on the thread's
|
||||
// stack with 0.
|
||||
movl(Address(rsp, 0), 0);
|
||||
movl(Address(rsp, 4), 0);
|
||||
// Y is huge so we know it's even. It may not fit in a 64 bit
|
||||
// integer and we don't want the debug code below to see the
|
||||
// integer indefinite value so overwrite int(Y) on the thread's
|
||||
// stack with 0.
|
||||
movl(Address(rsp, 0), 0);
|
||||
movl(Address(rsp, 4), 0);
|
||||
|
||||
bind(y_not_huge);
|
||||
bind(y_not_huge);
|
||||
#endif
|
||||
|
||||
fld_s(1); // duplicate arguments for runtime call. Stack: Y X Y
|
||||
fld_s(1); // Stack: X Y X Y
|
||||
fabs(); // Stack: abs(X) Y X Y
|
||||
fast_pow(); // Stack: abs(X)^Y X Y
|
||||
fcmp(tmp, 0, false, false); // Stack: abs(X)^Y X Y
|
||||
// abs(X)^Y not equal to itself: abs(X)^Y is NaN go to slow case.
|
||||
fld_s(1); // duplicate arguments for runtime call. Stack: Y X Y
|
||||
fld_s(1); // Stack: X Y X Y
|
||||
fabs(); // Stack: abs(X) Y X Y
|
||||
fast_pow(); // Stack: abs(X)^Y X Y
|
||||
fcmp(tmp, 0, false, false); // Stack: abs(X)^Y X Y
|
||||
// abs(X)^Y not equal to itself: abs(X)^Y is NaN go to slow case.
|
||||
|
||||
pop(tmp2);
|
||||
NOT_LP64(pop(tmp3));
|
||||
jcc(Assembler::parity, slow_case);
|
||||
pop(tmp2);
|
||||
NOT_LP64(pop(tmp3));
|
||||
jcc(Assembler::parity, slow_case);
|
||||
|
||||
#ifdef ASSERT
|
||||
// Check that int(Y) is not integer indefinite value (int
|
||||
// overflow). Shouldn't happen because for values that would
|
||||
// overflow, 1+int(Y)==Y which was tested earlier.
|
||||
// Check that int(Y) is not integer indefinite value (int
|
||||
// overflow). Shouldn't happen because for values that would
|
||||
// overflow, 1+int(Y)==Y which was tested earlier.
|
||||
#ifndef _LP64
|
||||
{
|
||||
Label integer;
|
||||
testl(tmp2, tmp2);
|
||||
jcc(Assembler::notZero, integer);
|
||||
cmpl(tmp3, 0x80000000);
|
||||
jcc(Assembler::notZero, integer);
|
||||
STOP("integer indefinite value shouldn't be seen here");
|
||||
bind(integer);
|
||||
}
|
||||
#else
|
||||
{
|
||||
Label integer;
|
||||
mov(tmp3, tmp2); // preserve tmp2 for parity check below
|
||||
shlq(tmp3, 1);
|
||||
jcc(Assembler::carryClear, integer);
|
||||
jcc(Assembler::notZero, integer);
|
||||
STOP("integer indefinite value shouldn't be seen here");
|
||||
bind(integer);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// get rid of duplicate arguments. Stack: X^Y
|
||||
if (num_fpu_regs_in_use > 0) {
|
||||
fxch(); fpop();
|
||||
fxch(); fpop();
|
||||
} else {
|
||||
ffree(2);
|
||||
ffree(1);
|
||||
}
|
||||
|
||||
testl(tmp2, 1);
|
||||
jcc(Assembler::zero, done); // X <= 0, Y even: X^Y = abs(X)^Y
|
||||
// X <= 0, Y even: X^Y = -abs(X)^Y
|
||||
|
||||
fchs(); // Stack: -abs(X)^Y Y
|
||||
jmp(done);
|
||||
{
|
||||
Label integer;
|
||||
testl(tmp2, tmp2);
|
||||
jcc(Assembler::notZero, integer);
|
||||
cmpl(tmp3, 0x80000000);
|
||||
jcc(Assembler::notZero, integer);
|
||||
STOP("integer indefinite value shouldn't be seen here");
|
||||
bind(integer);
|
||||
}
|
||||
#else
|
||||
{
|
||||
Label integer;
|
||||
mov(tmp3, tmp2); // preserve tmp2 for parity check below
|
||||
shlq(tmp3, 1);
|
||||
jcc(Assembler::carryClear, integer);
|
||||
jcc(Assembler::notZero, integer);
|
||||
STOP("integer indefinite value shouldn't be seen here");
|
||||
bind(integer);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// get rid of duplicate arguments. Stack: X^Y
|
||||
if (num_fpu_regs_in_use > 0) {
|
||||
fxch(); fpop();
|
||||
fxch(); fpop();
|
||||
} else {
|
||||
ffree(2);
|
||||
ffree(1);
|
||||
}
|
||||
|
||||
testl(tmp2, 1);
|
||||
jcc(Assembler::zero, done); // X <= 0, Y even: X^Y = abs(X)^Y
|
||||
// X <= 0, Y even: X^Y = -abs(X)^Y
|
||||
|
||||
fchs(); // Stack: -abs(X)^Y Y
|
||||
jmp(done);
|
||||
|
||||
// slow case: runtime call
|
||||
bind(slow_case);
|
||||
|
||||
fpop(); // pop incorrect result or int(Y)
|
||||
|
||||
fp_runtime_fallback(is_exp ? CAST_FROM_FN_PTR(address, SharedRuntime::dexp) : CAST_FROM_FN_PTR(address, SharedRuntime::dpow),
|
||||
is_exp ? 1 : 2, num_fpu_regs_in_use);
|
||||
fp_runtime_fallback(CAST_FROM_FN_PTR(address, SharedRuntime::dpow), 2, num_fpu_regs_in_use);
|
||||
|
||||
// Come here with result in F-TOS
|
||||
bind(done);
|
||||
|
|
|
@ -907,14 +907,14 @@ class MacroAssembler: public Assembler {
|
|||
// all corner cases and may result in NaN and require fallback to a
|
||||
// runtime call.
|
||||
void fast_pow();
|
||||
void fast_exp();
|
||||
void fast_exp(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
|
||||
XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
|
||||
Register rax, Register rcx, Register rdx, Register tmp);
|
||||
void increase_precision();
|
||||
void restore_precision();
|
||||
|
||||
// computes exp(x). Fallback to runtime call included.
|
||||
void exp_with_fallback(int num_fpu_regs_in_use) { pow_or_exp(true, num_fpu_regs_in_use); }
|
||||
// computes pow(x,y). Fallback to runtime call included.
|
||||
void pow_with_fallback(int num_fpu_regs_in_use) { pow_or_exp(false, num_fpu_regs_in_use); }
|
||||
void pow_with_fallback(int num_fpu_regs_in_use) { pow_or_exp(num_fpu_regs_in_use); }
|
||||
|
||||
private:
|
||||
|
||||
|
@ -925,7 +925,7 @@ private:
|
|||
void pow_exp_core_encoding();
|
||||
|
||||
// computes pow(x,y) or exp(x). Fallback to runtime call included.
|
||||
void pow_or_exp(bool is_exp, int num_fpu_regs_in_use);
|
||||
void pow_or_exp(int num_fpu_regs_in_use);
|
||||
|
||||
// these are private because users should be doing movflt/movdbl
|
||||
|
||||
|
@ -971,6 +971,10 @@ public:
|
|||
void movsd(XMMRegister dst, Address src) { Assembler::movsd(dst, src); }
|
||||
void movsd(XMMRegister dst, AddressLiteral src);
|
||||
|
||||
void mulpd(XMMRegister dst, XMMRegister src) { Assembler::mulpd(dst, src); }
|
||||
void mulpd(XMMRegister dst, Address src) { Assembler::mulpd(dst, src); }
|
||||
void mulpd(XMMRegister dst, AddressLiteral src);
|
||||
|
||||
void mulsd(XMMRegister dst, XMMRegister src) { Assembler::mulsd(dst, src); }
|
||||
void mulsd(XMMRegister dst, Address src) { Assembler::mulsd(dst, src); }
|
||||
void mulsd(XMMRegister dst, AddressLiteral src);
|
||||
|
|
677
hotspot/src/cpu/x86/vm/macroAssembler_x86_libm.cpp
Normal file
677
hotspot/src/cpu/x86/vm/macroAssembler_x86_libm.cpp
Normal file
|
@ -0,0 +1,677 @@
|
|||
/*
|
||||
* Copyright (c) 2015, Intel Corporation.
|
||||
* Intel Math Library (LIBM) Source Code
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************/
|
||||
// ALGORITHM DESCRIPTION
|
||||
// ---------------------
|
||||
//
|
||||
// Description:
|
||||
// Let K = 64 (table size).
|
||||
// x x/log(2) n
|
||||
// e = 2 = 2 * T[j] * (1 + P(y))
|
||||
// where
|
||||
// x = m*log(2)/K + y, y in [-log(2)/K..log(2)/K]
|
||||
// m = n*K + j, m,n,j - signed integer, j in [-K/2..K/2]
|
||||
// j/K
|
||||
// values of 2 are tabulated as T[j] = T_hi[j] ( 1 + T_lo[j]).
|
||||
//
|
||||
// P(y) is a minimax polynomial approximation of exp(x)-1
|
||||
// on small interval [-log(2)/K..log(2)/K] (were calculated by Maple V).
|
||||
//
|
||||
// To avoid problems with arithmetic overflow and underflow,
|
||||
// n n1 n2
|
||||
// value of 2 is safely computed as 2 * 2 where n1 in [-BIAS/2..BIAS/2]
|
||||
// where BIAS is a value of exponent bias.
|
||||
//
|
||||
// Special cases:
|
||||
// exp(NaN) = NaN
|
||||
// exp(+INF) = +INF
|
||||
// exp(-INF) = 0
|
||||
// exp(x) = 1 for subnormals
|
||||
// for finite argument, only exp(0)=1 is exact
|
||||
// For IEEE double
|
||||
// if x > 709.782712893383973096 then exp(x) overflow
|
||||
// if x < -745.133219101941108420 then exp(x) underflow
|
||||
//
|
||||
/******************************************************************************/
|
||||
|
||||
|
||||
#include "precompiled.hpp"
|
||||
#include "asm/assembler.hpp"
|
||||
#include "asm/assembler.inline.hpp"
|
||||
#include "macroAssembler_x86.hpp"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#define ALIGNED_(x) __declspec(align(x))
|
||||
#else
|
||||
#define ALIGNED_(x) __attribute__ ((aligned(x)))
|
||||
#endif
|
||||
|
||||
#ifdef _LP64
|
||||
|
||||
ALIGNED_(16) juint _cv[] =
|
||||
{
|
||||
0x652b82feUL, 0x40571547UL, 0x652b82feUL, 0x40571547UL, 0xfefa0000UL,
|
||||
0x3f862e42UL, 0xfefa0000UL, 0x3f862e42UL, 0xbc9e3b3aUL, 0x3d1cf79aUL,
|
||||
0xbc9e3b3aUL, 0x3d1cf79aUL, 0xfffffffeUL, 0x3fdfffffUL, 0xfffffffeUL,
|
||||
0x3fdfffffUL, 0xe3289860UL, 0x3f56c15cUL, 0x555b9e25UL, 0x3fa55555UL,
|
||||
0xc090cf0fUL, 0x3f811115UL, 0x55548ba1UL, 0x3fc55555UL
|
||||
};
|
||||
|
||||
ALIGNED_(16) juint _shifter[] =
|
||||
{
|
||||
0x00000000UL, 0x43380000UL, 0x00000000UL, 0x43380000UL
|
||||
};
|
||||
|
||||
ALIGNED_(16) juint _mmask[] =
|
||||
{
|
||||
0xffffffc0UL, 0x00000000UL, 0xffffffc0UL, 0x00000000UL
|
||||
};
|
||||
|
||||
ALIGNED_(16) juint _bias[] =
|
||||
{
|
||||
0x0000ffc0UL, 0x00000000UL, 0x0000ffc0UL, 0x00000000UL
|
||||
};
|
||||
|
||||
ALIGNED_(16) juint _Tbl_addr[] =
|
||||
{
|
||||
0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL, 0x0e03754dUL,
|
||||
0x3cad7bbfUL, 0x3e778060UL, 0x00002c9aUL, 0x3567f613UL, 0x3c8cd252UL,
|
||||
0xd3158574UL, 0x000059b0UL, 0x61e6c861UL, 0x3c60f74eUL, 0x18759bc8UL,
|
||||
0x00008745UL, 0x5d837b6cUL, 0x3c979aa6UL, 0x6cf9890fUL, 0x0000b558UL,
|
||||
0x702f9cd1UL, 0x3c3ebe3dUL, 0x32d3d1a2UL, 0x0000e3ecUL, 0x1e63bcd8UL,
|
||||
0x3ca3516eUL, 0xd0125b50UL, 0x00011301UL, 0x26f0387bUL, 0x3ca4c554UL,
|
||||
0xaea92ddfUL, 0x0001429aUL, 0x62523fb6UL, 0x3ca95153UL, 0x3c7d517aUL,
|
||||
0x000172b8UL, 0x3f1353bfUL, 0x3c8b898cUL, 0xeb6fcb75UL, 0x0001a35bUL,
|
||||
0x3e3a2f5fUL, 0x3c9aecf7UL, 0x3168b9aaUL, 0x0001d487UL, 0x44a6c38dUL,
|
||||
0x3c8a6f41UL, 0x88628cd6UL, 0x0002063bUL, 0xe3a8a894UL, 0x3c968efdUL,
|
||||
0x6e756238UL, 0x0002387aUL, 0x981fe7f2UL, 0x3c80472bUL, 0x65e27cddUL,
|
||||
0x00026b45UL, 0x6d09ab31UL, 0x3c82f7e1UL, 0xf51fdee1UL, 0x00029e9dUL,
|
||||
0x720c0ab3UL, 0x3c8b3782UL, 0xa6e4030bUL, 0x0002d285UL, 0x4db0abb6UL,
|
||||
0x3c834d75UL, 0x0a31b715UL, 0x000306feUL, 0x5dd3f84aUL, 0x3c8fdd39UL,
|
||||
0xb26416ffUL, 0x00033c08UL, 0xcc187d29UL, 0x3ca12f8cUL, 0x373aa9caUL,
|
||||
0x000371a7UL, 0x738b5e8bUL, 0x3ca7d229UL, 0x34e59ff6UL, 0x0003a7dbUL,
|
||||
0xa72a4c6dUL, 0x3c859f48UL, 0x4c123422UL, 0x0003dea6UL, 0x259d9205UL,
|
||||
0x3ca8b846UL, 0x21f72e29UL, 0x0004160aUL, 0x60c2ac12UL, 0x3c4363edUL,
|
||||
0x6061892dUL, 0x00044e08UL, 0xdaa10379UL, 0x3c6ecce1UL, 0xb5c13cd0UL,
|
||||
0x000486a2UL, 0xbb7aafb0UL, 0x3c7690ceUL, 0xd5362a27UL, 0x0004bfdaUL,
|
||||
0x9b282a09UL, 0x3ca083ccUL, 0x769d2ca6UL, 0x0004f9b2UL, 0xc1aae707UL,
|
||||
0x3ca509b0UL, 0x569d4f81UL, 0x0005342bUL, 0x18fdd78eUL, 0x3c933505UL,
|
||||
0x36b527daUL, 0x00056f47UL, 0xe21c5409UL, 0x3c9063e1UL, 0xdd485429UL,
|
||||
0x0005ab07UL, 0x2b64c035UL, 0x3c9432e6UL, 0x15ad2148UL, 0x0005e76fUL,
|
||||
0x99f08c0aUL, 0x3ca01284UL, 0xb03a5584UL, 0x0006247eUL, 0x0073dc06UL,
|
||||
0x3c99f087UL, 0x82552224UL, 0x00066238UL, 0x0da05571UL, 0x3c998d4dUL,
|
||||
0x667f3bccUL, 0x0006a09eUL, 0x86ce4786UL, 0x3ca52bb9UL, 0x3c651a2eUL,
|
||||
0x0006dfb2UL, 0x206f0dabUL, 0x3ca32092UL, 0xe8ec5f73UL, 0x00071f75UL,
|
||||
0x8e17a7a6UL, 0x3ca06122UL, 0x564267c8UL, 0x00075febUL, 0x461e9f86UL,
|
||||
0x3ca244acUL, 0x73eb0186UL, 0x0007a114UL, 0xabd66c55UL, 0x3c65ebe1UL,
|
||||
0x36cf4e62UL, 0x0007e2f3UL, 0xbbff67d0UL, 0x3c96fe9fUL, 0x994cce12UL,
|
||||
0x00082589UL, 0x14c801dfUL, 0x3c951f14UL, 0x9b4492ecUL, 0x000868d9UL,
|
||||
0xc1f0eab4UL, 0x3c8db72fUL, 0x422aa0dbUL, 0x0008ace5UL, 0x59f35f44UL,
|
||||
0x3c7bf683UL, 0x99157736UL, 0x0008f1aeUL, 0x9c06283cUL, 0x3ca360baUL,
|
||||
0xb0cdc5e4UL, 0x00093737UL, 0x20f962aaUL, 0x3c95e8d1UL, 0x9fde4e4fUL,
|
||||
0x00097d82UL, 0x2b91ce27UL, 0x3c71affcUL, 0x82a3f090UL, 0x0009c491UL,
|
||||
0x589a2ebdUL, 0x3c9b6d34UL, 0x7b5de564UL, 0x000a0c66UL, 0x9ab89880UL,
|
||||
0x3c95277cUL, 0xb23e255cUL, 0x000a5503UL, 0x6e735ab3UL, 0x3c846984UL,
|
||||
0x5579fdbfUL, 0x000a9e6bUL, 0x92cb3387UL, 0x3c8c1a77UL, 0x995ad3adUL,
|
||||
0x000ae89fUL, 0xdc2d1d96UL, 0x3ca22466UL, 0xb84f15faUL, 0x000b33a2UL,
|
||||
0xb19505aeUL, 0x3ca1112eUL, 0xf2fb5e46UL, 0x000b7f76UL, 0x0a5fddcdUL,
|
||||
0x3c74ffd7UL, 0x904bc1d2UL, 0x000bcc1eUL, 0x30af0cb3UL, 0x3c736eaeUL,
|
||||
0xdd85529cUL, 0x000c199bUL, 0xd10959acUL, 0x3c84e08fUL, 0x2e57d14bUL,
|
||||
0x000c67f1UL, 0x6c921968UL, 0x3c676b2cUL, 0xdcef9069UL, 0x000cb720UL,
|
||||
0x36df99b3UL, 0x3c937009UL, 0x4a07897bUL, 0x000d072dUL, 0xa63d07a7UL,
|
||||
0x3c74a385UL, 0xdcfba487UL, 0x000d5818UL, 0xd5c192acUL, 0x3c8e5a50UL,
|
||||
0x03db3285UL, 0x000da9e6UL, 0x1c4a9792UL, 0x3c98bb73UL, 0x337b9b5eUL,
|
||||
0x000dfc97UL, 0x603a88d3UL, 0x3c74b604UL, 0xe78b3ff6UL, 0x000e502eUL,
|
||||
0x92094926UL, 0x3c916f27UL, 0xa2a490d9UL, 0x000ea4afUL, 0x41aa2008UL,
|
||||
0x3c8ec3bcUL, 0xee615a27UL, 0x000efa1bUL, 0x31d185eeUL, 0x3c8a64a9UL,
|
||||
0x5b6e4540UL, 0x000f5076UL, 0x4d91cd9dUL, 0x3c77893bUL, 0x819e90d8UL,
|
||||
0x000fa7c1UL
|
||||
};
|
||||
|
||||
ALIGNED_(16) juint _ALLONES[] =
|
||||
{
|
||||
0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL
|
||||
};
|
||||
|
||||
ALIGNED_(16) juint _ebias[] =
|
||||
{
|
||||
0x00000000UL, 0x3ff00000UL, 0x00000000UL, 0x3ff00000UL
|
||||
};
|
||||
|
||||
ALIGNED_(4) juint _XMAX[] =
|
||||
{
|
||||
0xffffffffUL, 0x7fefffffUL
|
||||
};
|
||||
|
||||
ALIGNED_(4) juint _XMIN[] =
|
||||
{
|
||||
0x00000000UL, 0x00100000UL
|
||||
};
|
||||
|
||||
ALIGNED_(4) juint _INF[] =
|
||||
{
|
||||
0x00000000UL, 0x7ff00000UL
|
||||
};
|
||||
|
||||
ALIGNED_(4) juint _ZERO[] =
|
||||
{
|
||||
0x00000000UL, 0x00000000UL
|
||||
};
|
||||
|
||||
ALIGNED_(4) juint _ONE_val[] =
|
||||
{
|
||||
0x00000000UL, 0x3ff00000UL
|
||||
};
|
||||
|
||||
|
||||
// Registers:
|
||||
// input: xmm0
|
||||
// scratch: xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7
|
||||
// rax, rdx, rcx, tmp - r11
|
||||
|
||||
// Code generated by Intel C compiler for LIBM library
|
||||
|
||||
void MacroAssembler::fast_exp(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3, XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7, Register eax, Register ecx, Register edx, Register tmp) {
|
||||
Label L_2TAG_PACKET_0_0_2, L_2TAG_PACKET_1_0_2, L_2TAG_PACKET_2_0_2, L_2TAG_PACKET_3_0_2;
|
||||
Label L_2TAG_PACKET_4_0_2, L_2TAG_PACKET_5_0_2, L_2TAG_PACKET_6_0_2, L_2TAG_PACKET_7_0_2;
|
||||
Label L_2TAG_PACKET_8_0_2, L_2TAG_PACKET_9_0_2, L_2TAG_PACKET_10_0_2, L_2TAG_PACKET_11_0_2;
|
||||
Label L_2TAG_PACKET_12_0_2, B1_3, B1_5, start;
|
||||
|
||||
assert_different_registers(tmp, eax, ecx, edx);
|
||||
jmp(start);
|
||||
address cv = (address)_cv;
|
||||
address Shifter = (address)_shifter;
|
||||
address mmask = (address)_mmask;
|
||||
address bias = (address)_bias;
|
||||
address Tbl_addr = (address)_Tbl_addr;
|
||||
address ALLONES = (address)_ALLONES;
|
||||
address ebias = (address)_ebias;
|
||||
address XMAX = (address)_XMAX;
|
||||
address XMIN = (address)_XMIN;
|
||||
address INF = (address)_INF;
|
||||
address ZERO = (address)_ZERO;
|
||||
address ONE_val = (address)_ONE_val;
|
||||
|
||||
bind(start);
|
||||
subq(rsp, 24);
|
||||
movsd(Address(rsp, 8), xmm0);
|
||||
unpcklpd(xmm0, xmm0);
|
||||
movdqu(xmm1, ExternalAddress(cv)); // 0x652b82feUL, 0x40571547UL, 0x652b82feUL, 0x40571547UL
|
||||
movdqu(xmm6, ExternalAddress(Shifter)); // 0x00000000UL, 0x43380000UL, 0x00000000UL, 0x43380000UL
|
||||
movdqu(xmm2, ExternalAddress(16+cv)); // 0xfefa0000UL, 0x3f862e42UL, 0xfefa0000UL, 0x3f862e42UL
|
||||
movdqu(xmm3, ExternalAddress(32+cv)); // 0xbc9e3b3aUL, 0x3d1cf79aUL, 0xbc9e3b3aUL, 0x3d1cf79aUL
|
||||
pextrw(eax, xmm0, 3);
|
||||
andl(eax, 32767);
|
||||
movl(edx, 16527);
|
||||
subl(edx, eax);
|
||||
subl(eax, 15504);
|
||||
orl(edx, eax);
|
||||
cmpl(edx, INT_MIN);
|
||||
jcc(Assembler::aboveEqual, L_2TAG_PACKET_0_0_2);
|
||||
mulpd(xmm1, xmm0);
|
||||
addpd(xmm1, xmm6);
|
||||
movapd(xmm7, xmm1);
|
||||
subpd(xmm1, xmm6);
|
||||
mulpd(xmm2, xmm1);
|
||||
movdqu(xmm4, ExternalAddress(64+cv)); // 0xe3289860UL, 0x3f56c15cUL, 0x555b9e25UL, 0x3fa55555UL
|
||||
mulpd(xmm3, xmm1);
|
||||
movdqu(xmm5, ExternalAddress(80+cv)); // 0xc090cf0fUL, 0x3f811115UL, 0x55548ba1UL, 0x3fc55555UL
|
||||
subpd(xmm0, xmm2);
|
||||
movdl(eax, xmm7);
|
||||
movl(ecx, eax);
|
||||
andl(ecx, 63);
|
||||
shll(ecx, 4);
|
||||
sarl(eax, 6);
|
||||
movl(edx, eax);
|
||||
movdqu(xmm6, ExternalAddress(mmask)); // 0xffffffc0UL, 0x00000000UL, 0xffffffc0UL, 0x00000000UL
|
||||
pand(xmm7, xmm6);
|
||||
movdqu(xmm6, ExternalAddress(bias)); // 0x0000ffc0UL, 0x00000000UL, 0x0000ffc0UL, 0x00000000UL
|
||||
paddq(xmm7, xmm6);
|
||||
psllq(xmm7, 46);
|
||||
subpd(xmm0, xmm3);
|
||||
lea(tmp, ExternalAddress(Tbl_addr));
|
||||
movdqu(xmm2, Address(ecx,tmp));
|
||||
mulpd(xmm4, xmm0);
|
||||
movapd(xmm6, xmm0);
|
||||
movapd(xmm1, xmm0);
|
||||
mulpd(xmm6, xmm6);
|
||||
mulpd(xmm0, xmm6);
|
||||
addpd(xmm5, xmm4);
|
||||
mulsd(xmm0, xmm6);
|
||||
mulpd(xmm6, ExternalAddress(48+cv)); // 0xfffffffeUL, 0x3fdfffffUL, 0xfffffffeUL, 0x3fdfffffUL
|
||||
addsd(xmm1, xmm2);
|
||||
unpckhpd(xmm2, xmm2);
|
||||
mulpd(xmm0, xmm5);
|
||||
addsd(xmm1, xmm0);
|
||||
por(xmm2, xmm7);
|
||||
unpckhpd(xmm0, xmm0);
|
||||
addsd(xmm0, xmm1);
|
||||
addsd(xmm0, xmm6);
|
||||
addl(edx, 894);
|
||||
cmpl(edx, 1916);
|
||||
jcc (Assembler::above, L_2TAG_PACKET_1_0_2);
|
||||
mulsd(xmm0, xmm2);
|
||||
addsd(xmm0, xmm2);
|
||||
jmp (B1_5);
|
||||
|
||||
bind(L_2TAG_PACKET_1_0_2);
|
||||
xorpd(xmm3, xmm3);
|
||||
movdqu(xmm4, ExternalAddress(ALLONES)); // 0xffffffffUL, 0xffffffffUL, 0xffffffffUL, 0xffffffffUL
|
||||
movl(edx, -1022);
|
||||
subl(edx, eax);
|
||||
movdl(xmm5, edx);
|
||||
psllq(xmm4, xmm5);
|
||||
movl(ecx, eax);
|
||||
sarl(eax, 1);
|
||||
pinsrw(xmm3, eax, 3);
|
||||
movdqu(xmm6, ExternalAddress(ebias)); // 0x00000000UL, 0x3ff00000UL, 0x00000000UL, 0x3ff00000UL
|
||||
psllq(xmm3, 4);
|
||||
psubd(xmm2, xmm3);
|
||||
mulsd(xmm0, xmm2);
|
||||
cmpl(edx, 52);
|
||||
jcc(Assembler::greater, L_2TAG_PACKET_2_0_2);
|
||||
pand(xmm4, xmm2);
|
||||
paddd(xmm3, xmm6);
|
||||
subsd(xmm2, xmm4);
|
||||
addsd(xmm0, xmm2);
|
||||
cmpl(ecx, 1023);
|
||||
jcc(Assembler::greaterEqual, L_2TAG_PACKET_3_0_2);
|
||||
pextrw(ecx, xmm0, 3);
|
||||
andl(ecx, 32768);
|
||||
orl(edx, ecx);
|
||||
cmpl(edx, 0);
|
||||
jcc(Assembler::equal, L_2TAG_PACKET_4_0_2);
|
||||
movapd(xmm6, xmm0);
|
||||
addsd(xmm0, xmm4);
|
||||
mulsd(xmm0, xmm3);
|
||||
pextrw(ecx, xmm0, 3);
|
||||
andl(ecx, 32752);
|
||||
cmpl(ecx, 0);
|
||||
jcc(Assembler::equal, L_2TAG_PACKET_5_0_2);
|
||||
jmp(B1_5);
|
||||
|
||||
bind(L_2TAG_PACKET_5_0_2);
|
||||
mulsd(xmm6, xmm3);
|
||||
mulsd(xmm4, xmm3);
|
||||
movdqu(xmm0, xmm6);
|
||||
pxor(xmm6, xmm4);
|
||||
psrad(xmm6, 31);
|
||||
pshufd(xmm6, xmm6, 85);
|
||||
psllq(xmm0, 1);
|
||||
psrlq(xmm0, 1);
|
||||
pxor(xmm0, xmm6);
|
||||
psrlq(xmm6, 63);
|
||||
paddq(xmm0, xmm6);
|
||||
paddq(xmm0, xmm4);
|
||||
movl(Address(rsp,0), 15);
|
||||
jmp(L_2TAG_PACKET_6_0_2);
|
||||
|
||||
bind(L_2TAG_PACKET_4_0_2);
|
||||
addsd(xmm0, xmm4);
|
||||
mulsd(xmm0, xmm3);
|
||||
jmp(B1_5);
|
||||
|
||||
bind(L_2TAG_PACKET_3_0_2);
|
||||
addsd(xmm0, xmm4);
|
||||
mulsd(xmm0, xmm3);
|
||||
pextrw(ecx, xmm0, 3);
|
||||
andl(ecx, 32752);
|
||||
cmpl(ecx, 32752);
|
||||
jcc(Assembler::aboveEqual, L_2TAG_PACKET_7_0_2);
|
||||
jmp(B1_5);
|
||||
|
||||
bind(L_2TAG_PACKET_2_0_2);
|
||||
paddd(xmm3, xmm6);
|
||||
addpd(xmm0, xmm2);
|
||||
mulsd(xmm0, xmm3);
|
||||
movl(Address(rsp,0), 15);
|
||||
jmp(L_2TAG_PACKET_6_0_2);
|
||||
|
||||
bind(L_2TAG_PACKET_8_0_2);
|
||||
cmpl(eax, 2146435072);
|
||||
jcc(Assembler::aboveEqual, L_2TAG_PACKET_9_0_2);
|
||||
movl(eax, Address(rsp,12));
|
||||
cmpl(eax, INT_MIN);
|
||||
jcc(Assembler::aboveEqual, L_2TAG_PACKET_10_0_2);
|
||||
movsd(xmm0, ExternalAddress(XMAX)); // 0xffffffffUL, 0x7fefffffUL
|
||||
mulsd(xmm0, xmm0);
|
||||
|
||||
bind(L_2TAG_PACKET_7_0_2);
|
||||
movl(Address(rsp,0), 14);
|
||||
jmp(L_2TAG_PACKET_6_0_2);
|
||||
|
||||
bind(L_2TAG_PACKET_10_0_2);
|
||||
movsd(xmm0, ExternalAddress(XMIN)); // 0x00000000UL, 0x00100000UL
|
||||
mulsd(xmm0, xmm0);
|
||||
movl(Address(rsp,0), 15);
|
||||
jmp(L_2TAG_PACKET_6_0_2);
|
||||
|
||||
bind(L_2TAG_PACKET_9_0_2);
|
||||
movl(edx, Address(rsp,8));
|
||||
cmpl(eax, 2146435072);
|
||||
jcc(Assembler::above, L_2TAG_PACKET_11_0_2);
|
||||
cmpl(edx, 0);
|
||||
jcc(Assembler::notEqual, L_2TAG_PACKET_11_0_2);
|
||||
movl(eax, Address(rsp,12));
|
||||
cmpl(eax, 2146435072);
|
||||
jcc(Assembler::notEqual, L_2TAG_PACKET_12_0_2);
|
||||
movsd(xmm0, ExternalAddress(INF)); // 0x00000000UL, 0x7ff00000UL
|
||||
jmp(B1_5);
|
||||
|
||||
bind(L_2TAG_PACKET_12_0_2);
|
||||
movsd(xmm0, ExternalAddress(ZERO)); // 0x00000000UL, 0x00000000UL
|
||||
jmp(B1_5);
|
||||
|
||||
bind(L_2TAG_PACKET_11_0_2);
|
||||
movsd(xmm0, Address(rsp, 8));
|
||||
addsd(xmm0, xmm0);
|
||||
jmp(B1_5);
|
||||
|
||||
bind(L_2TAG_PACKET_0_0_2);
|
||||
movl(eax, Address(rsp, 12));
|
||||
andl(eax, 2147483647);
|
||||
cmpl(eax, 1083179008);
|
||||
jcc(Assembler::aboveEqual, L_2TAG_PACKET_8_0_2);
|
||||
movsd(Address(rsp, 8), xmm0);
|
||||
addsd(xmm0, ExternalAddress(ONE_val)); // 0x00000000UL, 0x3ff00000UL
|
||||
jmp(B1_5);
|
||||
|
||||
bind(L_2TAG_PACKET_6_0_2);
|
||||
movq(Address(rsp, 16), xmm0);
|
||||
|
||||
bind(B1_3);
|
||||
movq(xmm0, Address(rsp, 16));
|
||||
|
||||
bind(B1_5);
|
||||
addq(rsp, 24);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef _LP64
|
||||
|
||||
ALIGNED_(16) juint _static_const_table[] =
|
||||
{
|
||||
0x00000000UL, 0xfff00000UL, 0x00000000UL, 0xfff00000UL, 0xffffffc0UL,
|
||||
0x00000000UL, 0xffffffc0UL, 0x00000000UL, 0x0000ffc0UL, 0x00000000UL,
|
||||
0x0000ffc0UL, 0x00000000UL, 0x00000000UL, 0x43380000UL, 0x00000000UL,
|
||||
0x43380000UL, 0x652b82feUL, 0x40571547UL, 0x652b82feUL, 0x40571547UL,
|
||||
0xfefa0000UL, 0x3f862e42UL, 0xfefa0000UL, 0x3f862e42UL, 0xbc9e3b3aUL,
|
||||
0x3d1cf79aUL, 0xbc9e3b3aUL, 0x3d1cf79aUL, 0xfffffffeUL, 0x3fdfffffUL,
|
||||
0xfffffffeUL, 0x3fdfffffUL, 0xe3289860UL, 0x3f56c15cUL, 0x555b9e25UL,
|
||||
0x3fa55555UL, 0xc090cf0fUL, 0x3f811115UL, 0x55548ba1UL, 0x3fc55555UL,
|
||||
0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL, 0x0e03754dUL,
|
||||
0x3cad7bbfUL, 0x3e778060UL, 0x00002c9aUL, 0x3567f613UL, 0x3c8cd252UL,
|
||||
0xd3158574UL, 0x000059b0UL, 0x61e6c861UL, 0x3c60f74eUL, 0x18759bc8UL,
|
||||
0x00008745UL, 0x5d837b6cUL, 0x3c979aa6UL, 0x6cf9890fUL, 0x0000b558UL,
|
||||
0x702f9cd1UL, 0x3c3ebe3dUL, 0x32d3d1a2UL, 0x0000e3ecUL, 0x1e63bcd8UL,
|
||||
0x3ca3516eUL, 0xd0125b50UL, 0x00011301UL, 0x26f0387bUL, 0x3ca4c554UL,
|
||||
0xaea92ddfUL, 0x0001429aUL, 0x62523fb6UL, 0x3ca95153UL, 0x3c7d517aUL,
|
||||
0x000172b8UL, 0x3f1353bfUL, 0x3c8b898cUL, 0xeb6fcb75UL, 0x0001a35bUL,
|
||||
0x3e3a2f5fUL, 0x3c9aecf7UL, 0x3168b9aaUL, 0x0001d487UL, 0x44a6c38dUL,
|
||||
0x3c8a6f41UL, 0x88628cd6UL, 0x0002063bUL, 0xe3a8a894UL, 0x3c968efdUL,
|
||||
0x6e756238UL, 0x0002387aUL, 0x981fe7f2UL, 0x3c80472bUL, 0x65e27cddUL,
|
||||
0x00026b45UL, 0x6d09ab31UL, 0x3c82f7e1UL, 0xf51fdee1UL, 0x00029e9dUL,
|
||||
0x720c0ab3UL, 0x3c8b3782UL, 0xa6e4030bUL, 0x0002d285UL, 0x4db0abb6UL,
|
||||
0x3c834d75UL, 0x0a31b715UL, 0x000306feUL, 0x5dd3f84aUL, 0x3c8fdd39UL,
|
||||
0xb26416ffUL, 0x00033c08UL, 0xcc187d29UL, 0x3ca12f8cUL, 0x373aa9caUL,
|
||||
0x000371a7UL, 0x738b5e8bUL, 0x3ca7d229UL, 0x34e59ff6UL, 0x0003a7dbUL,
|
||||
0xa72a4c6dUL, 0x3c859f48UL, 0x4c123422UL, 0x0003dea6UL, 0x259d9205UL,
|
||||
0x3ca8b846UL, 0x21f72e29UL, 0x0004160aUL, 0x60c2ac12UL, 0x3c4363edUL,
|
||||
0x6061892dUL, 0x00044e08UL, 0xdaa10379UL, 0x3c6ecce1UL, 0xb5c13cd0UL,
|
||||
0x000486a2UL, 0xbb7aafb0UL, 0x3c7690ceUL, 0xd5362a27UL, 0x0004bfdaUL,
|
||||
0x9b282a09UL, 0x3ca083ccUL, 0x769d2ca6UL, 0x0004f9b2UL, 0xc1aae707UL,
|
||||
0x3ca509b0UL, 0x569d4f81UL, 0x0005342bUL, 0x18fdd78eUL, 0x3c933505UL,
|
||||
0x36b527daUL, 0x00056f47UL, 0xe21c5409UL, 0x3c9063e1UL, 0xdd485429UL,
|
||||
0x0005ab07UL, 0x2b64c035UL, 0x3c9432e6UL, 0x15ad2148UL, 0x0005e76fUL,
|
||||
0x99f08c0aUL, 0x3ca01284UL, 0xb03a5584UL, 0x0006247eUL, 0x0073dc06UL,
|
||||
0x3c99f087UL, 0x82552224UL, 0x00066238UL, 0x0da05571UL, 0x3c998d4dUL,
|
||||
0x667f3bccUL, 0x0006a09eUL, 0x86ce4786UL, 0x3ca52bb9UL, 0x3c651a2eUL,
|
||||
0x0006dfb2UL, 0x206f0dabUL, 0x3ca32092UL, 0xe8ec5f73UL, 0x00071f75UL,
|
||||
0x8e17a7a6UL, 0x3ca06122UL, 0x564267c8UL, 0x00075febUL, 0x461e9f86UL,
|
||||
0x3ca244acUL, 0x73eb0186UL, 0x0007a114UL, 0xabd66c55UL, 0x3c65ebe1UL,
|
||||
0x36cf4e62UL, 0x0007e2f3UL, 0xbbff67d0UL, 0x3c96fe9fUL, 0x994cce12UL,
|
||||
0x00082589UL, 0x14c801dfUL, 0x3c951f14UL, 0x9b4492ecUL, 0x000868d9UL,
|
||||
0xc1f0eab4UL, 0x3c8db72fUL, 0x422aa0dbUL, 0x0008ace5UL, 0x59f35f44UL,
|
||||
0x3c7bf683UL, 0x99157736UL, 0x0008f1aeUL, 0x9c06283cUL, 0x3ca360baUL,
|
||||
0xb0cdc5e4UL, 0x00093737UL, 0x20f962aaUL, 0x3c95e8d1UL, 0x9fde4e4fUL,
|
||||
0x00097d82UL, 0x2b91ce27UL, 0x3c71affcUL, 0x82a3f090UL, 0x0009c491UL,
|
||||
0x589a2ebdUL, 0x3c9b6d34UL, 0x7b5de564UL, 0x000a0c66UL, 0x9ab89880UL,
|
||||
0x3c95277cUL, 0xb23e255cUL, 0x000a5503UL, 0x6e735ab3UL, 0x3c846984UL,
|
||||
0x5579fdbfUL, 0x000a9e6bUL, 0x92cb3387UL, 0x3c8c1a77UL, 0x995ad3adUL,
|
||||
0x000ae89fUL, 0xdc2d1d96UL, 0x3ca22466UL, 0xb84f15faUL, 0x000b33a2UL,
|
||||
0xb19505aeUL, 0x3ca1112eUL, 0xf2fb5e46UL, 0x000b7f76UL, 0x0a5fddcdUL,
|
||||
0x3c74ffd7UL, 0x904bc1d2UL, 0x000bcc1eUL, 0x30af0cb3UL, 0x3c736eaeUL,
|
||||
0xdd85529cUL, 0x000c199bUL, 0xd10959acUL, 0x3c84e08fUL, 0x2e57d14bUL,
|
||||
0x000c67f1UL, 0x6c921968UL, 0x3c676b2cUL, 0xdcef9069UL, 0x000cb720UL,
|
||||
0x36df99b3UL, 0x3c937009UL, 0x4a07897bUL, 0x000d072dUL, 0xa63d07a7UL,
|
||||
0x3c74a385UL, 0xdcfba487UL, 0x000d5818UL, 0xd5c192acUL, 0x3c8e5a50UL,
|
||||
0x03db3285UL, 0x000da9e6UL, 0x1c4a9792UL, 0x3c98bb73UL, 0x337b9b5eUL,
|
||||
0x000dfc97UL, 0x603a88d3UL, 0x3c74b604UL, 0xe78b3ff6UL, 0x000e502eUL,
|
||||
0x92094926UL, 0x3c916f27UL, 0xa2a490d9UL, 0x000ea4afUL, 0x41aa2008UL,
|
||||
0x3c8ec3bcUL, 0xee615a27UL, 0x000efa1bUL, 0x31d185eeUL, 0x3c8a64a9UL,
|
||||
0x5b6e4540UL, 0x000f5076UL, 0x4d91cd9dUL, 0x3c77893bUL, 0x819e90d8UL,
|
||||
0x000fa7c1UL, 0x00000000UL, 0x3ff00000UL, 0x00000000UL, 0x7ff00000UL,
|
||||
0x00000000UL, 0x00000000UL, 0xffffffffUL, 0x7fefffffUL, 0x00000000UL,
|
||||
0x00100000UL
|
||||
};
|
||||
|
||||
//registers,
|
||||
// input: (rbp + 8)
|
||||
// scratch: xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7
|
||||
// rax, rdx, rcx, rbx (tmp)
|
||||
|
||||
// Code generated by Intel C compiler for LIBM library
|
||||
|
||||
void MacroAssembler::fast_exp(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3, XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7, Register eax, Register ecx, Register edx, Register tmp) {
|
||||
Label L_2TAG_PACKET_0_0_2, L_2TAG_PACKET_1_0_2, L_2TAG_PACKET_2_0_2, L_2TAG_PACKET_3_0_2;
|
||||
Label L_2TAG_PACKET_4_0_2, L_2TAG_PACKET_5_0_2, L_2TAG_PACKET_6_0_2, L_2TAG_PACKET_7_0_2;
|
||||
Label L_2TAG_PACKET_8_0_2, L_2TAG_PACKET_9_0_2, L_2TAG_PACKET_10_0_2, L_2TAG_PACKET_11_0_2;
|
||||
Label L_2TAG_PACKET_12_0_2, L_2TAG_PACKET_13_0_2, B1_3, B1_5, start;
|
||||
|
||||
assert_different_registers(tmp, eax, ecx, edx);
|
||||
jmp(start);
|
||||
address static_const_table = (address)_static_const_table;
|
||||
|
||||
bind(start);
|
||||
subl(rsp, 120);
|
||||
movl(Address(rsp, 64), tmp);
|
||||
lea(tmp, ExternalAddress(static_const_table));
|
||||
movdqu(xmm0, Address(rsp, 128));
|
||||
unpcklpd(xmm0, xmm0);
|
||||
movdqu(xmm1, Address(tmp, 64)); // 0x652b82feUL, 0x40571547UL, 0x652b82feUL, 0x40571547UL
|
||||
movdqu(xmm6, Address(tmp, 48)); // 0x00000000UL, 0x43380000UL, 0x00000000UL, 0x43380000UL
|
||||
movdqu(xmm2, Address(tmp, 80)); // 0xfefa0000UL, 0x3f862e42UL, 0xfefa0000UL, 0x3f862e42UL
|
||||
movdqu(xmm3, Address(tmp, 96)); // 0xbc9e3b3aUL, 0x3d1cf79aUL, 0xbc9e3b3aUL, 0x3d1cf79aUL
|
||||
pextrw(eax, xmm0, 3);
|
||||
andl(eax, 32767);
|
||||
movl(edx, 16527);
|
||||
subl(edx, eax);
|
||||
subl(eax, 15504);
|
||||
orl(edx, eax);
|
||||
cmpl(edx, INT_MIN);
|
||||
jcc(Assembler::aboveEqual, L_2TAG_PACKET_0_0_2);
|
||||
mulpd(xmm1, xmm0);
|
||||
addpd(xmm1, xmm6);
|
||||
movapd(xmm7, xmm1);
|
||||
subpd(xmm1, xmm6);
|
||||
mulpd(xmm2, xmm1);
|
||||
movdqu(xmm4, Address(tmp, 128)); // 0xe3289860UL, 0x3f56c15cUL, 0x555b9e25UL, 0x3fa55555UL
|
||||
mulpd(xmm3, xmm1);
|
||||
movdqu(xmm5, Address(tmp, 144)); // 0xc090cf0fUL, 0x3f811115UL, 0x55548ba1UL, 0x3fc55555UL
|
||||
subpd(xmm0, xmm2);
|
||||
movdl(eax, xmm7);
|
||||
movl(ecx, eax);
|
||||
andl(ecx, 63);
|
||||
shll(ecx, 4);
|
||||
sarl(eax, 6);
|
||||
movl(edx, eax);
|
||||
movdqu(xmm6, Address(tmp, 16)); // 0xffffffc0UL, 0x00000000UL, 0xffffffc0UL, 0x00000000UL
|
||||
pand(xmm7, xmm6);
|
||||
movdqu(xmm6, Address(tmp, 32)); // 0x0000ffc0UL, 0x00000000UL, 0x0000ffc0UL, 0x00000000UL
|
||||
paddq(xmm7, xmm6);
|
||||
psllq(xmm7, 46);
|
||||
subpd(xmm0, xmm3);
|
||||
movdqu(xmm2, Address(tmp, ecx, Address::times_1, 160));
|
||||
mulpd(xmm4, xmm0);
|
||||
movapd(xmm6, xmm0);
|
||||
movapd(xmm1, xmm0);
|
||||
mulpd(xmm6, xmm6);
|
||||
mulpd(xmm0, xmm6);
|
||||
addpd(xmm5, xmm4);
|
||||
mulsd(xmm0, xmm6);
|
||||
mulpd(xmm6, Address(tmp, 112)); // 0xfffffffeUL, 0x3fdfffffUL, 0xfffffffeUL, 0x3fdfffffUL
|
||||
addsd(xmm1, xmm2);
|
||||
unpckhpd(xmm2, xmm2);
|
||||
mulpd(xmm0, xmm5);
|
||||
addsd(xmm1, xmm0);
|
||||
por(xmm2, xmm7);
|
||||
unpckhpd(xmm0, xmm0);
|
||||
addsd(xmm0, xmm1);
|
||||
addsd(xmm0, xmm6);
|
||||
addl(edx, 894);
|
||||
cmpl(edx, 1916);
|
||||
jcc (Assembler::above, L_2TAG_PACKET_1_0_2);
|
||||
mulsd(xmm0, xmm2);
|
||||
addsd(xmm0, xmm2);
|
||||
jmp(L_2TAG_PACKET_2_0_2);
|
||||
|
||||
bind(L_2TAG_PACKET_1_0_2);
|
||||
fnstcw(Address(rsp, 24));
|
||||
movzwl(edx, Address(rsp, 24));
|
||||
orl(edx, 768);
|
||||
movw(Address(rsp, 28), edx);
|
||||
fldcw(Address(rsp, 28));
|
||||
movl(edx, eax);
|
||||
sarl(eax, 1);
|
||||
subl(edx, eax);
|
||||
movdqu(xmm6, Address(tmp, 0)); // 0x00000000UL, 0xfff00000UL, 0x00000000UL, 0xfff00000UL
|
||||
pandn(xmm6, xmm2);
|
||||
addl(eax, 1023);
|
||||
movdl(xmm3, eax);
|
||||
psllq(xmm3, 52);
|
||||
por(xmm6, xmm3);
|
||||
addl(edx, 1023);
|
||||
movdl(xmm4, edx);
|
||||
psllq(xmm4, 52);
|
||||
movsd(Address(rsp, 8), xmm0);
|
||||
fld_d(Address(rsp, 8));
|
||||
movsd(Address(rsp, 16), xmm6);
|
||||
fld_d(Address(rsp, 16));
|
||||
fmula(1);
|
||||
faddp(1);
|
||||
movsd(Address(rsp, 8), xmm4);
|
||||
fld_d(Address(rsp, 8));
|
||||
fmulp(1);
|
||||
fstp_d(Address(rsp, 8));
|
||||
movsd(xmm0,Address(rsp, 8));
|
||||
fldcw(Address(rsp, 24));
|
||||
pextrw(ecx, xmm0, 3);
|
||||
andl(ecx, 32752);
|
||||
cmpl(ecx, 32752);
|
||||
jcc(Assembler::greaterEqual, L_2TAG_PACKET_3_0_2);
|
||||
cmpl(ecx, 0);
|
||||
jcc(Assembler::equal, L_2TAG_PACKET_4_0_2);
|
||||
jmp(L_2TAG_PACKET_2_0_2);
|
||||
cmpl(ecx, INT_MIN);
|
||||
jcc(Assembler::less, L_2TAG_PACKET_3_0_2);
|
||||
cmpl(ecx, -1064950997);
|
||||
jcc(Assembler::less, L_2TAG_PACKET_2_0_2);
|
||||
jcc(Assembler::greater, L_2TAG_PACKET_4_0_2);
|
||||
movl(edx, Address(rsp, 128));
|
||||
cmpl(edx ,-17155601);
|
||||
jcc(Assembler::less, L_2TAG_PACKET_2_0_2);
|
||||
jmp(L_2TAG_PACKET_4_0_2);
|
||||
|
||||
bind(L_2TAG_PACKET_3_0_2);
|
||||
movl(edx, 14);
|
||||
jmp(L_2TAG_PACKET_5_0_2);
|
||||
|
||||
bind(L_2TAG_PACKET_4_0_2);
|
||||
movl(edx, 15);
|
||||
|
||||
bind(L_2TAG_PACKET_5_0_2);
|
||||
movsd(Address(rsp, 0), xmm0);
|
||||
movsd(xmm0, Address(rsp, 128));
|
||||
fld_d(Address(rsp, 0));
|
||||
jmp(L_2TAG_PACKET_6_0_2);
|
||||
|
||||
bind(L_2TAG_PACKET_7_0_2);
|
||||
cmpl(eax, 2146435072);
|
||||
jcc(Assembler::greaterEqual, L_2TAG_PACKET_8_0_2);
|
||||
movl(eax, Address(rsp, 132));
|
||||
cmpl(eax, INT_MIN);
|
||||
jcc(Assembler::greaterEqual, L_2TAG_PACKET_9_0_2);
|
||||
movsd(xmm0, Address(tmp, 1208)); // 0xffffffffUL, 0x7fefffffUL
|
||||
mulsd(xmm0, xmm0);
|
||||
movl(edx, 14);
|
||||
jmp(L_2TAG_PACKET_5_0_2);
|
||||
|
||||
bind(L_2TAG_PACKET_9_0_2);
|
||||
movsd(xmm0, Address(tmp, 1216));
|
||||
mulsd(xmm0, xmm0);
|
||||
movl(edx, 15);
|
||||
jmp(L_2TAG_PACKET_5_0_2);
|
||||
|
||||
bind(L_2TAG_PACKET_8_0_2);
|
||||
movl(edx, Address(rsp, 128));
|
||||
cmpl(eax, 2146435072);
|
||||
jcc(Assembler::above, L_2TAG_PACKET_10_0_2);
|
||||
cmpl(edx, 0);
|
||||
jcc(Assembler::notEqual, L_2TAG_PACKET_10_0_2);
|
||||
movl(eax, Address(rsp, 132));
|
||||
cmpl(eax, 2146435072);
|
||||
jcc(Assembler::notEqual, L_2TAG_PACKET_11_0_2);
|
||||
movsd(xmm0, Address(tmp, 1192)); // 0x00000000UL, 0x7ff00000UL
|
||||
jmp(L_2TAG_PACKET_2_0_2);
|
||||
|
||||
bind(L_2TAG_PACKET_11_0_2);
|
||||
movsd(xmm0, Address(tmp, 1200)); // 0x00000000UL, 0x00000000UL
|
||||
jmp(L_2TAG_PACKET_2_0_2);
|
||||
|
||||
bind(L_2TAG_PACKET_10_0_2);
|
||||
movsd(xmm0, Address(rsp, 128));
|
||||
addsd(xmm0, xmm0);
|
||||
jmp(L_2TAG_PACKET_2_0_2);
|
||||
|
||||
bind(L_2TAG_PACKET_0_0_2);
|
||||
movl(eax, Address(rsp, 132));
|
||||
andl(eax, 2147483647);
|
||||
cmpl(eax, 1083179008);
|
||||
jcc(Assembler::aboveEqual, L_2TAG_PACKET_7_0_2);
|
||||
movsd(xmm0, Address(rsp, 128));
|
||||
addsd(xmm0, Address(tmp, 1184)); // 0x00000000UL, 0x3ff00000UL
|
||||
jmp(L_2TAG_PACKET_2_0_2);
|
||||
|
||||
bind(L_2TAG_PACKET_2_0_2);
|
||||
movsd(Address(rsp, 48), xmm0);
|
||||
fld_d(Address(rsp, 48));
|
||||
|
||||
bind(L_2TAG_PACKET_6_0_2);
|
||||
movl(tmp, Address(rsp, 64));
|
||||
}
|
||||
|
||||
#endif
|
|
@ -2134,14 +2134,6 @@ class StubGenerator: public StubCodeGenerator {
|
|||
__ trigfunc('t');
|
||||
__ ret(0);
|
||||
}
|
||||
{
|
||||
StubCodeMark mark(this, "StubRoutines", "exp");
|
||||
StubRoutines::_intrinsic_exp = (double (*)(double)) __ pc();
|
||||
|
||||
__ fld_d(Address(rsp, 4));
|
||||
__ exp_with_fallback(0);
|
||||
__ ret(0);
|
||||
}
|
||||
{
|
||||
StubCodeMark mark(this, "StubRoutines", "pow");
|
||||
StubRoutines::_intrinsic_pow = (double (*)(double,double)) __ pc();
|
||||
|
@ -3048,6 +3040,32 @@ class StubGenerator: public StubCodeGenerator {
|
|||
return start;
|
||||
}
|
||||
|
||||
address generate_libmExp() {
|
||||
address start = __ pc();
|
||||
|
||||
const XMMRegister x0 = xmm0;
|
||||
const XMMRegister x1 = xmm1;
|
||||
const XMMRegister x2 = xmm2;
|
||||
const XMMRegister x3 = xmm3;
|
||||
|
||||
const XMMRegister x4 = xmm4;
|
||||
const XMMRegister x5 = xmm5;
|
||||
const XMMRegister x6 = xmm6;
|
||||
const XMMRegister x7 = xmm7;
|
||||
|
||||
const Register tmp = rbx;
|
||||
|
||||
BLOCK_COMMENT("Entry:");
|
||||
__ enter(); // required for proper stackwalking of RuntimeStub frame
|
||||
__ fast_exp(x0, x1, x2, x3, x4, x5, x6, x7, rax, rcx, rdx, tmp);
|
||||
__ leave(); // required for proper stackwalking of RuntimeStub frame
|
||||
__ ret(0);
|
||||
|
||||
return start;
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Safefetch stubs.
|
||||
void generate_safefetch(const char* name, int size, address* entry,
|
||||
address* fault_pc, address* continuation_pc) {
|
||||
|
@ -3268,6 +3286,9 @@ class StubGenerator: public StubCodeGenerator {
|
|||
StubRoutines::_crc32c_table_addr = (address)StubRoutines::x86::_crc32c_table;
|
||||
StubRoutines::_updateBytesCRC32C = generate_updateBytesCRC32C(supports_clmul);
|
||||
}
|
||||
if (VM_Version::supports_sse2()) {
|
||||
StubRoutines::_dexp = generate_libmExp();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -3038,19 +3038,6 @@ class StubGenerator: public StubCodeGenerator {
|
|||
__ addq(rsp, 8);
|
||||
__ ret(0);
|
||||
}
|
||||
{
|
||||
StubCodeMark mark(this, "StubRoutines", "exp");
|
||||
StubRoutines::_intrinsic_exp = (double (*)(double)) __ pc();
|
||||
|
||||
__ subq(rsp, 8);
|
||||
__ movdbl(Address(rsp, 0), xmm0);
|
||||
__ fld_d(Address(rsp, 0));
|
||||
__ exp_with_fallback(0);
|
||||
__ fstp_d(Address(rsp, 0));
|
||||
__ movdbl(xmm0, Address(rsp, 0));
|
||||
__ addq(rsp, 8);
|
||||
__ ret(0);
|
||||
}
|
||||
{
|
||||
StubCodeMark mark(this, "StubRoutines", "pow");
|
||||
StubRoutines::_intrinsic_pow = (double (*)(double,double)) __ pc();
|
||||
|
@ -4180,6 +4167,44 @@ class StubGenerator: public StubCodeGenerator {
|
|||
return start;
|
||||
}
|
||||
|
||||
address generate_libmExp() {
|
||||
address start = __ pc();
|
||||
|
||||
const XMMRegister x0 = xmm0;
|
||||
const XMMRegister x1 = xmm1;
|
||||
const XMMRegister x2 = xmm2;
|
||||
const XMMRegister x3 = xmm3;
|
||||
|
||||
const XMMRegister x4 = xmm4;
|
||||
const XMMRegister x5 = xmm5;
|
||||
const XMMRegister x6 = xmm6;
|
||||
const XMMRegister x7 = xmm7;
|
||||
|
||||
const Register tmp = r11;
|
||||
|
||||
BLOCK_COMMENT("Entry:");
|
||||
__ enter(); // required for proper stackwalking of RuntimeStub frame
|
||||
|
||||
#ifdef _WIN64
|
||||
// save the xmm registers which must be preserved 6-7
|
||||
__ movdqu(xmm_save(6), as_XMMRegister(6));
|
||||
__ movdqu(xmm_save(7), as_XMMRegister(7));
|
||||
#endif
|
||||
__ fast_exp(x0, x1, x2, x3, x4, x5, x6, x7, rax, rcx, rdx, tmp);
|
||||
|
||||
#ifdef _WIN64
|
||||
// restore xmm regs belonging to calling function
|
||||
__ movdqu(as_XMMRegister(6), xmm_save(6));
|
||||
__ movdqu(as_XMMRegister(7), xmm_save(7));
|
||||
#endif
|
||||
|
||||
__ leave(); // required for proper stackwalking of RuntimeStub frame
|
||||
__ ret(0);
|
||||
|
||||
return start;
|
||||
|
||||
}
|
||||
|
||||
|
||||
#undef __
|
||||
#define __ masm->
|
||||
|
@ -4367,6 +4392,7 @@ class StubGenerator: public StubCodeGenerator {
|
|||
StubRoutines::_crc32c_table_addr = (address)StubRoutines::x86::_crc32c_table;
|
||||
StubRoutines::_updateBytesCRC32C = generate_updateBytesCRC32C(supports_clmul);
|
||||
}
|
||||
StubRoutines::_dexp = generate_libmExp();
|
||||
}
|
||||
|
||||
void generate_all() {
|
||||
|
|
|
@ -9911,35 +9911,6 @@ instruct powD_reg(regD dst, regD src0, regD src1, eAXRegI rax, eDXRegI rdx, eCXR
|
|||
ins_pipe( pipe_slow );
|
||||
%}
|
||||
|
||||
|
||||
instruct expDPR_reg(regDPR1 dpr1, eAXRegI rax, eDXRegI rdx, eCXRegI rcx, eFlagsReg cr) %{
|
||||
predicate (UseSSE<=1);
|
||||
match(Set dpr1 (ExpD dpr1));
|
||||
effect(KILL rax, KILL rcx, KILL rdx, KILL cr);
|
||||
format %{ "fast_exp $dpr1 -> $dpr1 // KILL $rax, $rcx, $rdx" %}
|
||||
ins_encode %{
|
||||
__ fast_exp();
|
||||
%}
|
||||
ins_pipe( pipe_slow );
|
||||
%}
|
||||
|
||||
instruct expD_reg(regD dst, regD src, eAXRegI rax, eDXRegI rdx, eCXRegI rcx, eFlagsReg cr) %{
|
||||
predicate (UseSSE>=2);
|
||||
match(Set dst (ExpD src));
|
||||
effect(KILL rax, KILL rcx, KILL rdx, KILL cr);
|
||||
format %{ "fast_exp $dst -> $src // KILL $rax, $rcx, $rdx" %}
|
||||
ins_encode %{
|
||||
__ subptr(rsp, 8);
|
||||
__ movdbl(Address(rsp, 0), $src$$XMMRegister);
|
||||
__ fld_d(Address(rsp, 0));
|
||||
__ fast_exp();
|
||||
__ fstp_d(Address(rsp, 0));
|
||||
__ movdbl($dst$$XMMRegister, Address(rsp, 0));
|
||||
__ addptr(rsp, 8);
|
||||
%}
|
||||
ins_pipe( pipe_slow );
|
||||
%}
|
||||
|
||||
instruct log10DPR_reg(regDPR1 dst, regDPR1 src) %{
|
||||
predicate (UseSSE<=1);
|
||||
// The source Double operand on FPU stack
|
||||
|
|
|
@ -9898,22 +9898,6 @@ instruct powD_reg(regD dst, regD src0, regD src1, rax_RegI rax, rdx_RegI rdx, rc
|
|||
ins_pipe( pipe_slow );
|
||||
%}
|
||||
|
||||
instruct expD_reg(regD dst, regD src, rax_RegI rax, rdx_RegI rdx, rcx_RegI rcx, rFlagsReg cr) %{
|
||||
match(Set dst (ExpD src));
|
||||
effect(KILL rax, KILL rcx, KILL rdx, KILL cr);
|
||||
format %{ "fast_exp $dst -> $src // KILL $rax, $rcx, $rdx" %}
|
||||
ins_encode %{
|
||||
__ subptr(rsp, 8);
|
||||
__ movdbl(Address(rsp, 0), $src$$XMMRegister);
|
||||
__ fld_d(Address(rsp, 0));
|
||||
__ fast_exp();
|
||||
__ fstp_d(Address(rsp, 0));
|
||||
__ movdbl($dst$$XMMRegister, Address(rsp, 0));
|
||||
__ addptr(rsp, 8);
|
||||
%}
|
||||
ins_pipe( pipe_slow );
|
||||
%}
|
||||
|
||||
//----------Arithmetic Conversion Instructions---------------------------------
|
||||
|
||||
instruct roundFloat_nop(regF dst)
|
||||
|
|
|
@ -4006,7 +4006,6 @@ int MatchRule::is_expensive() const {
|
|||
strcmp(opType,"DivD")==0 ||
|
||||
strcmp(opType,"DivF")==0 ||
|
||||
strcmp(opType,"DivI")==0 ||
|
||||
strcmp(opType,"ExpD")==0 ||
|
||||
strcmp(opType,"LogD")==0 ||
|
||||
strcmp(opType,"Log10D")==0 ||
|
||||
strcmp(opType,"ModD")==0 ||
|
||||
|
@ -4143,6 +4142,8 @@ bool MatchRule::is_vector() const {
|
|||
"SubVB","SubVS","SubVI","SubVL","SubVF","SubVD",
|
||||
"MulVS","MulVI","MulVL","MulVF","MulVD",
|
||||
"DivVF","DivVD",
|
||||
"AbsVF","AbsVD",
|
||||
"NegVF","NegVD",
|
||||
"SqrtVD",
|
||||
"AndV" ,"XorV" ,"OrV",
|
||||
"AddReductionVI", "AddReductionVL",
|
||||
|
|
|
@ -732,8 +732,7 @@ void LIR_OpVisitState::visit(LIR_Op* op) {
|
|||
case lir_sin:
|
||||
case lir_cos:
|
||||
case lir_log:
|
||||
case lir_log10:
|
||||
case lir_exp: {
|
||||
case lir_log10: {
|
||||
assert(op->as_Op2() != NULL, "must be");
|
||||
LIR_Op2* op2 = (LIR_Op2*)op;
|
||||
|
||||
|
@ -743,9 +742,6 @@ void LIR_OpVisitState::visit(LIR_Op* op) {
|
|||
// overlap with the input.
|
||||
assert(op2->_info == NULL, "not used");
|
||||
assert(op2->_tmp5->is_illegal(), "not used");
|
||||
assert(op2->_tmp2->is_valid() == (op->code() == lir_exp), "not used");
|
||||
assert(op2->_tmp3->is_valid() == (op->code() == lir_exp), "not used");
|
||||
assert(op2->_tmp4->is_valid() == (op->code() == lir_exp), "not used");
|
||||
assert(op2->_opr1->is_valid(), "used");
|
||||
do_input(op2->_opr1); do_temp(op2->_opr1);
|
||||
|
||||
|
@ -1775,7 +1771,6 @@ const char * LIR_Op::name() const {
|
|||
case lir_tan: s = "tan"; break;
|
||||
case lir_log: s = "log"; break;
|
||||
case lir_log10: s = "log10"; break;
|
||||
case lir_exp: s = "exp"; break;
|
||||
case lir_pow: s = "pow"; break;
|
||||
case lir_logic_and: s = "logic_and"; break;
|
||||
case lir_logic_or: s = "logic_or"; break;
|
||||
|
|
|
@ -961,7 +961,6 @@ enum LIR_Code {
|
|||
, lir_tan
|
||||
, lir_log
|
||||
, lir_log10
|
||||
, lir_exp
|
||||
, lir_pow
|
||||
, lir_logic_and
|
||||
, lir_logic_or
|
||||
|
@ -2199,7 +2198,6 @@ class LIR_List: public CompilationResourceObj {
|
|||
void sin (LIR_Opr from, LIR_Opr to, LIR_Opr tmp1, LIR_Opr tmp2) { append(new LIR_Op2(lir_sin , from, tmp1, to, tmp2)); }
|
||||
void cos (LIR_Opr from, LIR_Opr to, LIR_Opr tmp1, LIR_Opr tmp2) { append(new LIR_Op2(lir_cos , from, tmp1, to, tmp2)); }
|
||||
void tan (LIR_Opr from, LIR_Opr to, LIR_Opr tmp1, LIR_Opr tmp2) { append(new LIR_Op2(lir_tan , from, tmp1, to, tmp2)); }
|
||||
void exp (LIR_Opr from, LIR_Opr to, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, LIR_Opr tmp4, LIR_Opr tmp5) { append(new LIR_Op2(lir_exp , from, tmp1, to, tmp2, tmp3, tmp4, tmp5)); }
|
||||
void pow (LIR_Opr arg1, LIR_Opr arg2, LIR_Opr res, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, LIR_Opr tmp4, LIR_Opr tmp5) { append(new LIR_Op2(lir_pow, arg1, arg2, res, tmp1, tmp2, tmp3, tmp4, tmp5)); }
|
||||
|
||||
void add (LIR_Opr left, LIR_Opr right, LIR_Opr res) { append(new LIR_Op2(lir_add, left, right, res)); }
|
||||
|
|
|
@ -739,7 +739,6 @@ void LIR_Assembler::emit_op2(LIR_Op2* op) {
|
|||
case lir_cos:
|
||||
case lir_log:
|
||||
case lir_log10:
|
||||
case lir_exp:
|
||||
case lir_pow:
|
||||
intrinsic_op(op->code(), op->in_opr1(), op->in_opr2(), op->result_opr(), op);
|
||||
break;
|
||||
|
|
|
@ -244,6 +244,7 @@ class LIRGenerator: public InstructionVisitor, public BlockClosure {
|
|||
void do_getClass(Intrinsic* x);
|
||||
void do_currentThread(Intrinsic* x);
|
||||
void do_MathIntrinsic(Intrinsic* x);
|
||||
void do_ExpIntrinsic(Intrinsic* x);
|
||||
void do_ArrayCopy(Intrinsic* x);
|
||||
void do_CompareAndSwap(Intrinsic* x, ValueType* type);
|
||||
void do_NIOCheckIndex(Intrinsic* x);
|
||||
|
|
|
@ -6588,7 +6588,6 @@ void LinearScanStatistic::collect(LinearScan* allocator) {
|
|||
case lir_log10:
|
||||
case lir_log:
|
||||
case lir_pow:
|
||||
case lir_exp:
|
||||
case lir_logic_and:
|
||||
case lir_logic_or:
|
||||
case lir_logic_xor:
|
||||
|
|
|
@ -317,6 +317,7 @@ const char* Runtime1::name_for_address(address entry) {
|
|||
FUNCTION_CASE(entry, TRACE_TIME_METHOD);
|
||||
#endif
|
||||
FUNCTION_CASE(entry, StubRoutines::updateBytesCRC32());
|
||||
FUNCTION_CASE(entry, StubRoutines::dexp());
|
||||
|
||||
#undef FUNCTION_CASE
|
||||
|
||||
|
|
|
@ -131,7 +131,6 @@ macro(DivModL)
|
|||
macro(EncodeISOArray)
|
||||
macro(EncodeP)
|
||||
macro(EncodePKlass)
|
||||
macro(ExpD)
|
||||
macro(FastLock)
|
||||
macro(FastUnlock)
|
||||
macro(Goto)
|
||||
|
@ -290,6 +289,10 @@ macro(MulVD)
|
|||
macro(MulReductionVD)
|
||||
macro(DivVF)
|
||||
macro(DivVD)
|
||||
macro(AbsVF)
|
||||
macro(AbsVD)
|
||||
macro(NegVF)
|
||||
macro(NegVD)
|
||||
macro(SqrtVD)
|
||||
macro(LShiftCntV)
|
||||
macro(RShiftCntV)
|
||||
|
|
|
@ -222,7 +222,6 @@ class LibraryCallKit : public GraphKit {
|
|||
bool inline_math_negateExactL();
|
||||
bool inline_math_subtractExactI(bool is_decrement);
|
||||
bool inline_math_subtractExactL(bool is_decrement);
|
||||
bool inline_exp();
|
||||
bool inline_pow();
|
||||
Node* finish_pow_exp(Node* result, Node* x, Node* y, const TypeFunc* call_type, address funcAddr, const char* funcName);
|
||||
bool inline_min_max(vmIntrinsics::ID id);
|
||||
|
@ -1535,20 +1534,6 @@ Node* LibraryCallKit::finish_pow_exp(Node* result, Node* x, Node* y, const TypeF
|
|||
}
|
||||
}
|
||||
|
||||
//------------------------------inline_exp-------------------------------------
|
||||
// Inline exp instructions, if possible. The Intel hardware only misses
|
||||
// really odd corner cases (+/- Infinity). Just uncommon-trap them.
|
||||
bool LibraryCallKit::inline_exp() {
|
||||
Node* arg = round_double_node(argument(0));
|
||||
Node* n = _gvn.transform(new ExpDNode(C, control(), arg));
|
||||
|
||||
n = finish_pow_exp(n, arg, NULL, OptoRuntime::Math_D_D_Type(), CAST_FROM_FN_PTR(address, SharedRuntime::dexp), "EXP");
|
||||
set_result(n);
|
||||
|
||||
C->set_has_split_ifs(true); // Has chance for split-if optimization
|
||||
return true;
|
||||
}
|
||||
|
||||
//------------------------------inline_pow-------------------------------------
|
||||
// Inline power instructions, if possible.
|
||||
bool LibraryCallKit::inline_pow() {
|
||||
|
@ -1776,8 +1761,9 @@ bool LibraryCallKit::inline_math_native(vmIntrinsics::ID id) {
|
|||
case vmIntrinsics::_dsqrt: return Matcher::match_rule_supported(Op_SqrtD) ? inline_math(id) : false;
|
||||
case vmIntrinsics::_dabs: return Matcher::has_match_rule(Op_AbsD) ? inline_math(id) : false;
|
||||
|
||||
case vmIntrinsics::_dexp: return Matcher::has_match_rule(Op_ExpD) ? inline_exp() :
|
||||
runtime_math(OptoRuntime::Math_D_D_Type(), FN_PTR(SharedRuntime::dexp), "EXP");
|
||||
case vmIntrinsics::_dexp:
|
||||
return (UseSSE >= 2) ? runtime_math(OptoRuntime::Math_D_D_Type(), StubRoutines::dexp(), "dexp") :
|
||||
runtime_math(OptoRuntime::Math_D_D_Type(), FN_PTR(SharedRuntime::dexp), "EXP");
|
||||
case vmIntrinsics::_dpow: return Matcher::has_match_rule(Op_PowD) ? inline_pow() :
|
||||
runtime_math(OptoRuntime::Math_DD_D_Type(), FN_PTR(SharedRuntime::dpow), "POW");
|
||||
#undef FN_PTR
|
||||
|
|
|
@ -1530,18 +1530,6 @@ const Type *Log10DNode::Value( PhaseTransform *phase ) const {
|
|||
return TypeD::make( StubRoutines::intrinsic_log10( d ) );
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
//------------------------------Value------------------------------------------
|
||||
// Compute exp
|
||||
const Type *ExpDNode::Value( PhaseTransform *phase ) const {
|
||||
const Type *t1 = phase->type( in(1) );
|
||||
if( t1 == Type::TOP ) return Type::TOP;
|
||||
if( t1->base() != Type::DoubleCon ) return Type::DOUBLE;
|
||||
double d = t1->getd();
|
||||
return TypeD::make( StubRoutines::intrinsic_exp( d ) );
|
||||
}
|
||||
|
||||
|
||||
//=============================================================================
|
||||
//------------------------------Value------------------------------------------
|
||||
// Compute pow
|
||||
|
|
|
@ -477,20 +477,6 @@ public:
|
|||
virtual const Type *Value( PhaseTransform *phase ) const;
|
||||
};
|
||||
|
||||
//------------------------------ExpDNode---------------------------------------
|
||||
// Exponentiate a double
|
||||
class ExpDNode : public Node {
|
||||
public:
|
||||
ExpDNode(Compile* C, Node *c, Node *in1) : Node(c, in1) {
|
||||
init_flags(Flag_is_expensive);
|
||||
C->add_expensive_node(this);
|
||||
}
|
||||
virtual int Opcode() const;
|
||||
const Type *bottom_type() const { return Type::DOUBLE; }
|
||||
virtual uint ideal_reg() const { return Op_RegD; }
|
||||
virtual const Type *Value( PhaseTransform *phase ) const;
|
||||
};
|
||||
|
||||
//------------------------------LogDNode---------------------------------------
|
||||
// Log_e of a double
|
||||
class LogDNode : public Node {
|
||||
|
|
|
@ -1858,8 +1858,8 @@ void SuperWord::output() {
|
|||
vn = VectorNode::make(opc, in1, in2, vlen, velt_basic_type(n));
|
||||
vlen_in_bytes = vn->as_Vector()->length_in_bytes();
|
||||
}
|
||||
} else if (opc == Op_SqrtD) {
|
||||
// Promote operand to vector (Sqrt is a 2 address instruction)
|
||||
} else if (opc == Op_SqrtD || opc == Op_AbsF || opc == Op_AbsD || opc == Op_NegF || opc == Op_NegD) {
|
||||
// Promote operand to vector (Sqrt/Abs/Neg are 2 address instructions)
|
||||
Node* in = vector_opd(p, 1);
|
||||
vn = VectorNode::make(opc, in, NULL, vlen, velt_basic_type(n));
|
||||
vlen_in_bytes = vn->as_Vector()->length_in_bytes();
|
||||
|
|
|
@ -92,6 +92,18 @@ int VectorNode::opcode(int sopc, BasicType bt) {
|
|||
case Op_DivD:
|
||||
assert(bt == T_DOUBLE, "must be");
|
||||
return Op_DivVD;
|
||||
case Op_AbsF:
|
||||
assert(bt == T_FLOAT, "must be");
|
||||
return Op_AbsVF;
|
||||
case Op_AbsD:
|
||||
assert(bt == T_DOUBLE, "must be");
|
||||
return Op_AbsVD;
|
||||
case Op_NegF:
|
||||
assert(bt == T_FLOAT, "must be");
|
||||
return Op_NegVF;
|
||||
case Op_NegD:
|
||||
assert(bt == T_DOUBLE, "must be");
|
||||
return Op_NegVD;
|
||||
case Op_SqrtD:
|
||||
assert(bt == T_DOUBLE, "must be");
|
||||
return Op_SqrtVD;
|
||||
|
@ -280,6 +292,12 @@ VectorNode* VectorNode::make(int opc, Node* n1, Node* n2, uint vlen, BasicType b
|
|||
case Op_DivVF: return new DivVFNode(n1, n2, vt);
|
||||
case Op_DivVD: return new DivVDNode(n1, n2, vt);
|
||||
|
||||
case Op_AbsVF: return new AbsVFNode(n1, vt);
|
||||
case Op_AbsVD: return new AbsVDNode(n1, vt);
|
||||
|
||||
case Op_NegVF: return new NegVFNode(n1, vt);
|
||||
case Op_NegVD: return new NegVDNode(n1, vt);
|
||||
|
||||
// Currently only supports double precision sqrt
|
||||
case Op_SqrtVD: return new SqrtVDNode(n1, vt);
|
||||
|
||||
|
|
|
@ -309,6 +309,38 @@ class DivVDNode : public VectorNode {
|
|||
virtual int Opcode() const;
|
||||
};
|
||||
|
||||
//------------------------------AbsVFNode--------------------------------------
|
||||
// Vector Abs float
|
||||
class AbsVFNode : public VectorNode {
|
||||
public:
|
||||
AbsVFNode(Node* in, const TypeVect* vt) : VectorNode(in,vt) {}
|
||||
virtual int Opcode() const;
|
||||
};
|
||||
|
||||
//------------------------------AbsVDNode--------------------------------------
|
||||
// Vector Abs double
|
||||
class AbsVDNode : public VectorNode {
|
||||
public:
|
||||
AbsVDNode(Node* in, const TypeVect* vt) : VectorNode(in,vt) {}
|
||||
virtual int Opcode() const;
|
||||
};
|
||||
|
||||
//------------------------------NegVFNode--------------------------------------
|
||||
// Vector Neg float
|
||||
class NegVFNode : public VectorNode {
|
||||
public:
|
||||
NegVFNode(Node* in, const TypeVect* vt) : VectorNode(in,vt) {}
|
||||
virtual int Opcode() const;
|
||||
};
|
||||
|
||||
//------------------------------NegVDNode--------------------------------------
|
||||
// Vector Neg double
|
||||
class NegVDNode : public VectorNode {
|
||||
public:
|
||||
NegVDNode(Node* in, const TypeVect* vt) : VectorNode(in,vt) {}
|
||||
virtual int Opcode() const;
|
||||
};
|
||||
|
||||
//------------------------------SqrtVDNode--------------------------------------
|
||||
// Vector Sqrt double
|
||||
class SqrtVDNode : public VectorNode {
|
||||
|
|
|
@ -148,9 +148,10 @@ address StubRoutines::_mulAdd = NULL;
|
|||
address StubRoutines::_montgomeryMultiply = NULL;
|
||||
address StubRoutines::_montgomerySquare = NULL;
|
||||
|
||||
address StubRoutines::_dexp = NULL;
|
||||
|
||||
double (* StubRoutines::_intrinsic_log )(double) = NULL;
|
||||
double (* StubRoutines::_intrinsic_log10 )(double) = NULL;
|
||||
double (* StubRoutines::_intrinsic_exp )(double) = NULL;
|
||||
double (* StubRoutines::_intrinsic_pow )(double, double) = NULL;
|
||||
double (* StubRoutines::_intrinsic_sin )(double) = NULL;
|
||||
double (* StubRoutines::_intrinsic_cos )(double) = NULL;
|
||||
|
|
|
@ -207,6 +207,8 @@ class StubRoutines: AllStatic {
|
|||
static address _montgomeryMultiply;
|
||||
static address _montgomerySquare;
|
||||
|
||||
static address _dexp;
|
||||
|
||||
// These are versions of the java.lang.Math methods which perform
|
||||
// the same operations as the intrinsic version. They are used for
|
||||
// constant folding in the compiler to ensure equivalence. If the
|
||||
|
@ -215,7 +217,6 @@ class StubRoutines: AllStatic {
|
|||
// SharedRuntime.
|
||||
static double (*_intrinsic_log)(double);
|
||||
static double (*_intrinsic_log10)(double);
|
||||
static double (*_intrinsic_exp)(double);
|
||||
static double (*_intrinsic_pow)(double, double);
|
||||
static double (*_intrinsic_sin)(double);
|
||||
static double (*_intrinsic_cos)(double);
|
||||
|
@ -375,6 +376,8 @@ class StubRoutines: AllStatic {
|
|||
static address montgomeryMultiply() { return _montgomeryMultiply; }
|
||||
static address montgomerySquare() { return _montgomerySquare; }
|
||||
|
||||
static address dexp() {return _dexp; }
|
||||
|
||||
static address select_fill_function(BasicType t, bool aligned, const char* &name);
|
||||
|
||||
static address zero_aligned_words() { return _zero_aligned_words; }
|
||||
|
@ -387,10 +390,6 @@ class StubRoutines: AllStatic {
|
|||
assert(_intrinsic_log != NULL, "must be defined");
|
||||
return _intrinsic_log10(d);
|
||||
}
|
||||
static double intrinsic_exp(double d) {
|
||||
assert(_intrinsic_exp != NULL, "must be defined");
|
||||
return _intrinsic_exp(d);
|
||||
}
|
||||
static double intrinsic_pow(double d, double d2) {
|
||||
assert(_intrinsic_pow != NULL, "must be defined");
|
||||
return _intrinsic_pow(d, d2);
|
||||
|
|
|
@ -837,6 +837,7 @@ typedef CompactHashtable<Symbol*, char> SymbolCompactHashTable;
|
|||
static_field(StubRoutines, _multiplyToLen, address) \
|
||||
static_field(StubRoutines, _squareToLen, address) \
|
||||
static_field(StubRoutines, _mulAdd, address) \
|
||||
static_field(StubRoutines, _dexp, address) \
|
||||
\
|
||||
/*****************/ \
|
||||
/* SharedRuntime */ \
|
||||
|
@ -1992,7 +1993,6 @@ typedef CompactHashtable<Symbol*, char> SymbolCompactHashTable;
|
|||
declare_c2_type(TanDNode, Node) \
|
||||
declare_c2_type(AtanDNode, Node) \
|
||||
declare_c2_type(SqrtDNode, Node) \
|
||||
declare_c2_type(ExpDNode, Node) \
|
||||
declare_c2_type(LogDNode, Node) \
|
||||
declare_c2_type(Log10DNode, Node) \
|
||||
declare_c2_type(PowDNode, Node) \
|
||||
|
|
|
@ -0,0 +1,99 @@
|
|||
/*
|
||||
* Copyright (c) 2015, 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
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @bug 8138583
|
||||
* @summary Add C2 AArch64 Superword support for scalar sum reduction optimizations : double abs & neg test
|
||||
* @requires os.arch=="aarch64"
|
||||
*
|
||||
* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+SuperWordReductions -XX:LoopUnrollLimit=250 -XX:LoopMaxUnroll=2 -XX:CompileThresholdScaling=0.1 SumRedAbsNeg_Double
|
||||
* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-SuperWordReductions -XX:LoopUnrollLimit=250 -XX:LoopMaxUnroll=2 -XX:CompileThresholdScaling=0.1 SumRedAbsNeg_Double
|
||||
*
|
||||
* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+SuperWordReductions -XX:LoopUnrollLimit=250 -XX:LoopMaxUnroll=4 -XX:CompileThresholdScaling=0.1 SumRedAbsNeg_Double
|
||||
* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-SuperWordReductions -XX:LoopUnrollLimit=250 -XX:LoopMaxUnroll=4 -XX:CompileThresholdScaling=0.1 SumRedAbsNeg_Double
|
||||
*
|
||||
* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+SuperWordReductions -XX:LoopUnrollLimit=250 -XX:LoopMaxUnroll=8 -XX:CompileThresholdScaling=0.1 SumRedAbsNeg_Double
|
||||
* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-SuperWordReductions -XX:LoopUnrollLimit=250 -XX:LoopMaxUnroll=8 -XX:CompileThresholdScaling=0.1 SumRedAbsNeg_Double
|
||||
*
|
||||
* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+SuperWordReductions -XX:LoopUnrollLimit=250 -XX:LoopMaxUnroll=16 -XX:CompileThresholdScaling=0.1 SumRedAbsNeg_Double
|
||||
* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-SuperWordReductions -XX:LoopUnrollLimit=250 -XX:LoopMaxUnroll=16 -XX:CompileThresholdScaling=0.1 SumRedAbsNeg_Double
|
||||
*/
|
||||
|
||||
public class SumRedAbsNeg_Double
|
||||
{
|
||||
public static void main(String[] args) throws Exception {
|
||||
double[] a = new double[256*1024];
|
||||
double[] b = new double[256*1024];
|
||||
double[] c = new double[256*1024];
|
||||
double[] d = new double[256*1024];
|
||||
sumReductionInit(a,b,c);
|
||||
double total = 0;
|
||||
double valid = 3.6028590866691944E19;
|
||||
|
||||
for(int j = 0; j < 2000; j++) {
|
||||
total = sumReductionImplement(a,b,c,d,total);
|
||||
}
|
||||
|
||||
if(total == valid) {
|
||||
System.out.println("Success");
|
||||
} else {
|
||||
System.out.println("Invalid sum of elements variable in total: " + total);
|
||||
System.out.println("Expected value = " + valid);
|
||||
throw new Exception("Failed");
|
||||
}
|
||||
}
|
||||
|
||||
public static void sumReductionInit(
|
||||
double[] a,
|
||||
double[] b,
|
||||
double[] c)
|
||||
{
|
||||
for(int j = 0; j < 1; j++)
|
||||
{
|
||||
for(int i = 0; i < a.length; i++)
|
||||
{
|
||||
a[i] = i * 1 + j;
|
||||
b[i] = i * 1 - j;
|
||||
c[i] = i + j;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static double sumReductionImplement(
|
||||
double[] a,
|
||||
double[] b,
|
||||
double[] c,
|
||||
double[] d,
|
||||
double total)
|
||||
{
|
||||
for(int i = 0; i < a.length; i++)
|
||||
{
|
||||
d[i] = Math.abs(-a[i] * -b[i]) + Math.abs(-a[i] * -c[i]) + Math.abs(-b[i] * -c[i]);
|
||||
total += d[i];
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,99 @@
|
|||
/*
|
||||
* Copyright (c) 2015, 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
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @bug 8138583
|
||||
* @summary Add C2 AArch64 Superword support for scalar sum reduction optimizations : float abs & neg test
|
||||
* @requires os.arch=="aarch64"
|
||||
*
|
||||
* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+SuperWordReductions -XX:LoopUnrollLimit=250 -XX:LoopMaxUnroll=2 -XX:CompileThresholdScaling=0.1 SumRedAbsNeg_Float
|
||||
* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-SuperWordReductions -XX:LoopUnrollLimit=250 -XX:LoopMaxUnroll=2 -XX:CompileThresholdScaling=0.1 SumRedAbsNeg_Float
|
||||
*
|
||||
* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+SuperWordReductions -XX:LoopUnrollLimit=250 -XX:LoopMaxUnroll=4 -XX:CompileThresholdScaling=0.1 SumRedAbsNeg_Float
|
||||
* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-SuperWordReductions -XX:LoopUnrollLimit=250 -XX:LoopMaxUnroll=4 -XX:CompileThresholdScaling=0.1 SumRedAbsNeg_Float
|
||||
*
|
||||
* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+SuperWordReductions -XX:LoopUnrollLimit=250 -XX:LoopMaxUnroll=8 -XX:CompileThresholdScaling=0.1 SumRedAbsNeg_Float
|
||||
* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-SuperWordReductions -XX:LoopUnrollLimit=250 -XX:LoopMaxUnroll=8 -XX:CompileThresholdScaling=0.1 SumRedAbsNeg_Float
|
||||
*
|
||||
* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+SuperWordReductions -XX:LoopUnrollLimit=250 -XX:LoopMaxUnroll=16 -XX:CompileThresholdScaling=0.1 SumRedAbsNeg_Float
|
||||
* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-SuperWordReductions -XX:LoopUnrollLimit=250 -XX:LoopMaxUnroll=16 -XX:CompileThresholdScaling=0.1 SumRedAbsNeg_Float
|
||||
*/
|
||||
|
||||
public class SumRedAbsNeg_Float
|
||||
{
|
||||
public static void main(String[] args) throws Exception {
|
||||
float[] a = new float[256*1024];
|
||||
float[] b = new float[256*1024];
|
||||
float[] c = new float[256*1024];
|
||||
float[] d = new float[256*1024];
|
||||
sumReductionInit(a,b,c);
|
||||
float total = 0;
|
||||
float valid = (float)4.611686E18;
|
||||
|
||||
for(int j = 0; j < 2000; j++) {
|
||||
total = sumReductionImplement(a,b,c,d,total);
|
||||
}
|
||||
|
||||
if(total == valid) {
|
||||
System.out.println("Success");
|
||||
} else {
|
||||
System.out.println("Invalid sum of elements variable in total: " + total);
|
||||
System.out.println("Expected value = " + valid);
|
||||
throw new Exception("Failed");
|
||||
}
|
||||
}
|
||||
|
||||
public static void sumReductionInit(
|
||||
float[] a,
|
||||
float[] b,
|
||||
float[] c)
|
||||
{
|
||||
for(int j = 0; j < 1; j++)
|
||||
{
|
||||
for(int i = 0; i < a.length; i++)
|
||||
{
|
||||
a[i] = i * 1 + j;
|
||||
b[i] = i * 1 - j;
|
||||
c[i] = i + j;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static float sumReductionImplement(
|
||||
float[] a,
|
||||
float[] b,
|
||||
float[] c,
|
||||
float[] d,
|
||||
float total)
|
||||
{
|
||||
for(int i = 0; i < a.length; i++)
|
||||
{
|
||||
d[i] = Math.abs(-a[i] * -b[i]) + Math.abs(-a[i] * -c[i]) + Math.abs(-b[i] * -c[i]);
|
||||
total += d[i];
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
}
|
|
@ -326,3 +326,4 @@ f464f9b2fb1178f6a957e5730b4b5252c6149ed9 jdk9-b80
|
|||
6a418934997fc4b56664b88f8417e2f0fe658091 jdk9-b81
|
||||
53fe3c103b6fdf48e2b2676c0c4818ef5a10fa21 jdk9-b82
|
||||
497bc2654e11684b11de46744227883d7e760f35 jdk9-b83
|
||||
91795d86744f3074d1e59b1e75d9c851c098688f jdk9-b84
|
||||
|
|
|
@ -101,7 +101,7 @@ public class CoreDOMImplementationImpl
|
|||
* This is interpreted as "Version of the DOM API supported for the
|
||||
* specified Feature", and in Level 1 should be "1.0"
|
||||
*
|
||||
* @return true iff this implementation is compatable with the specified
|
||||
* @return true if this implementation is compatible with the specified
|
||||
* feature and version.
|
||||
*/
|
||||
public boolean hasFeature(String feature, String version) {
|
||||
|
@ -111,19 +111,22 @@ public class CoreDOMImplementationImpl
|
|||
if (feature.startsWith("+")) {
|
||||
feature = feature.substring(1);
|
||||
}
|
||||
return (
|
||||
feature.equalsIgnoreCase("Core")
|
||||
&& (anyVersion
|
||||
|| version.equals("1.0")
|
||||
|| version.equals("2.0")
|
||||
|| version.equals("3.0")))
|
||||
|| (feature.equalsIgnoreCase("XML")
|
||||
&& (anyVersion
|
||||
|| version.equals("1.0")
|
||||
|| version.equals("2.0")
|
||||
|| version.equals("3.0")))
|
||||
|| (feature.equalsIgnoreCase("LS")
|
||||
&& (anyVersion || version.equals("3.0")));
|
||||
return (feature.equalsIgnoreCase("Core")
|
||||
&& (anyVersion
|
||||
|| version.equals("1.0")
|
||||
|| version.equals("2.0")
|
||||
|| version.equals("3.0")))
|
||||
|| (feature.equalsIgnoreCase("XML")
|
||||
&& (anyVersion
|
||||
|| version.equals("1.0")
|
||||
|| version.equals("2.0")
|
||||
|| version.equals("3.0")))
|
||||
|| (feature.equalsIgnoreCase("LS")
|
||||
&& (anyVersion
|
||||
|| version.equals("3.0")))
|
||||
|| (feature.equalsIgnoreCase("ElementTraversal")
|
||||
&& (anyVersion
|
||||
|| version.equals("1.0")));
|
||||
} // hasFeature(String,String):boolean
|
||||
|
||||
|
||||
|
|
|
@ -83,6 +83,9 @@ public class DOMImplementationImpl extends CoreDOMImplementationImpl
|
|||
* specified feature and version.
|
||||
*/
|
||||
public boolean hasFeature(String feature, String version) {
|
||||
if (feature == null || feature.length() == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean result = super.hasFeature(feature, version);
|
||||
if (!result) {
|
||||
|
|
|
@ -50,7 +50,7 @@ package org.w3c.dom;
|
|||
* elements of an element, for preprocessing before navigation.
|
||||
*
|
||||
* @see
|
||||
* <a href='http://www.w3.org/TR/ElementTraversal/'><cite>Element Traversal Specification</cite></a>.
|
||||
* <a href='http://www.w3.org/TR/ElementTraversal/'><cite>Element Traversal Specification</cite></a>
|
||||
*
|
||||
* @since 9
|
||||
*/
|
||||
|
|
|
@ -31,15 +31,34 @@ import org.testng.Assert;
|
|||
import org.testng.annotations.DataProvider;
|
||||
import org.testng.annotations.Test;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.DOMImplementation;
|
||||
import org.w3c.dom.Element;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
/*
|
||||
* @bug 8135283
|
||||
* @bug 8135283 8138721
|
||||
* @summary Tests for the Element Traversal interface.
|
||||
*/
|
||||
|
||||
public class ElementTraversal {
|
||||
/*
|
||||
Verifies that ElementTraversal is supported.
|
||||
*/
|
||||
@Test(dataProvider = "doc")
|
||||
public void testHasFeature(Document doc) {
|
||||
DOMImplementation di = doc.getImplementation();
|
||||
|
||||
//return false if feasure == null
|
||||
Assert.assertFalse(di.hasFeature(null, null));
|
||||
|
||||
//A feature is supported without specifying version
|
||||
Assert.assertTrue(di.hasFeature("ElementTraversal", null));
|
||||
Assert.assertTrue(di.hasFeature("ElementTraversal", ""));
|
||||
|
||||
//ElementTraversal Version 1.0 is supported
|
||||
Assert.assertTrue(di.hasFeature("ElementTraversal", "1.0"));
|
||||
}
|
||||
|
||||
/*
|
||||
Verifies the ElementTraversal interface by exercising all of its five
|
||||
methods while reading through the xml document.
|
||||
|
|
|
@ -329,3 +329,4 @@ e9940bf1c8ddaa6f1f5f1813846b080f0ccaf50b jdk9-b80
|
|||
139338618c77d793ab8b550f06819ddb8381316f jdk9-b81
|
||||
52d9ad2536ba6c6f1cc5561c0a0ee2b4847fd62c jdk9-b82
|
||||
d7ee8157f4feced67924e421225c6f844079a03d jdk9-b83
|
||||
51729143f8fe038f52cf55720c4c1f89267f5948 jdk9-b84
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, 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
|
||||
|
@ -31,7 +31,5 @@ package com.sun.tools.internal.xjc;
|
|||
public enum Language {
|
||||
DTD,
|
||||
XMLSCHEMA,
|
||||
RELAXNG,
|
||||
RELAXNG_COMPACT,
|
||||
WSDL
|
||||
}
|
||||
|
|
|
@ -73,8 +73,6 @@ Options:\n\
|
|||
\ \ -disableXmlSecurity : disables XML security features when parsing XML documents \n\
|
||||
\ \ -contentForWildcard : generates content property for types with multiple xs:any derived elements \n\
|
||||
\ \ -xmlschema : treat input as W3C XML Schema (default)\n\
|
||||
\ \ -relaxng : treat input as RELAX NG (experimental,unsupported)\n\
|
||||
\ \ -relaxng-compact : treat input as RELAX NG compact syntax (experimental,unsupported)\n\
|
||||
\ \ -dtd : treat input as XML DTD (experimental,unsupported)\n\
|
||||
\ \ -wsdl : treat input as WSDL and compile schemas inside it (experimental,unsupported)\n\
|
||||
\ \ -verbose : be extra verbose\n\
|
||||
|
@ -85,7 +83,7 @@ Options:\n\
|
|||
|
||||
Driver.AddonUsage = \nExtensions:
|
||||
|
||||
# {0} - one of: DTD, RELAX NG, RELAX NG compact syntax, WSDL; {1} - one of (respectively): -dtd, -relaxng, -relaxng-compact, -wsdl
|
||||
# {0} - one of: DTD, WSDL; {1} - one of (respectively): -dtd, -wsdl
|
||||
Driver.ExperimentalLanguageWarning = \
|
||||
Are you trying to compile {0}? Support for {0} is experimental. \
|
||||
You may enable it by using the {1} option.
|
||||
|
|
|
@ -33,10 +33,41 @@ ConsoleErrorReporter.LineXOfY = \ \ Zeile {0} von {1}
|
|||
ConsoleErrorReporter.UnknownFile = unbekannte Datei
|
||||
|
||||
Driver.Private.Usage = Zus\u00e4tzliche private Testoptionen:\n\\ \\ -debug : Ausf\u00fchrung im Debug-Modus (umfasst -verbose)\n\\ \\ -mode <mode> : F\u00fchrt XJC in einem anderen Ausf\u00fchrungsmodus aus\n\\ \\ -private : Zeigt diese Hilfemeldung an\nModus:\n\\ \\ code : Generiert Java-Quellcode (Standard)\n\\ \\ dryrun : Kompiliert das Schema im Speicher, generiert die Java-Quelle jedoch nicht\n\\ \\ zip : Generiert den Java-Quellcode in einer .zip-Datei, wie mit der Option -d angegeben\n\\ \\ sig : Gibt die Signaturen des generierten Codes aus\n\\ \\ forest : Gibt transformierte DOM-Gesamtstruktur aus\n
|
||||
Driver.Public.Usage = Verwendung: xjc [-options ...] <schema file/URL/dir/jar> ... [-b <bindinfo>] ...\nWenn dir angegeben wird, werden alle Schemadateien im Verzeichnis kompiliert.\nWenn jar angegeben wird, wird die /META-INF/sun-jaxb.episode-Binding-Datei kompiliert.\nOptionen:\n\\ \\ -nv : F\u00fchrt keine strikte Validierung der Eingabeschemas durch\n\\ \\ -extension : L\u00e4sst Herstellererweiterungen zu - Befolgt die \n\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ Kompatibilit\u00e4tsregeln und App E.2 der JAXB-Spezifikation nicht strikt\n\\ \\ -b <file/dir> : Gibt externe Bindings-Dateien an (jede <file> muss ihre eigene Option -b haben)\n\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ Wenn ein Verzeichnis angegeben wird, wird **/*.xjb durchsucht\n\\ \\ -d <dir> : Generierte Dateien werden in diesem Verzeichnis gespeichert\n\\ \\ -p <pkg> : Gibt das Zielpackage an\n\\ \\ -httpproxy <proxy> : set HTTP/HTTPS proxy. Format ist [user[:password]@]proxyHost:proxyPort\n\\ \\ -httpproxyfile <f> : Wird wie -httpproxy verwendet, verwendet jedoch das Argument in einer Datei zum Schutz des Kennwortes \n\\ \\ -classpath <arg> : Gibt an, wo die Benutzerklassendateien gefunden werden\n\\ \\ -catalog <file> : Gibt Katalogdateien zur Aufl\u00f6sung von externen Entity-Referenzen an\n\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ Unterst\u00fctzt TR9401, XCatalog und OASIS-XML-Katalogformat.\n\\ \\ -readOnly : Generierte Dateien werden im schreibgesch\u00fctzten Modus gelesen\n\\ \\ -npa : Unterdr\u00fcckt die Generierung von Annotationen auf Packageebene (**/package-info.java)\n\\ \\ -no-header : Unterdr\u00fcckt die Generierung eines Datei-Headers mit Zeitstempel\n\\ \\ -target (2.0|2.1) : Verh\u00e4lt sich wie XJC 2.0 oder 2.1 und generiert Code, der keine 2.2-Features verwendet.\n\\ \\ -encoding <encoding> : Gibt Zeichencodierung f\u00fcr generierte Quelldateien an\n\\ \\ -enableIntrospection : Aktiviert die ordnungsgem\u00e4\u00dfe Generierung von booleschen Gettern/Settern zur Aktivierung von Bean Introspection-APIs \n\\ \\ -contentForWildcard : Generiert Contenteigenschaft f\u00fcr Typen mit mehreren von xs:any abgeleiteten Elementen \n\\ \\ -xmlschema : Behandelt Eingabe als W3C-XML-Schema (Standard)\n\\ \\ -relaxng : Behandelt Eingabe als RELAX NG (experimentell, nicht unterst\u00fctzt)\n\\ \\ -relaxng-compact : Behandelt Eingabe als RELAX NG-Kompaktsyntax (experimentell, nicht unterst\u00fctzt)\n\\ \\ -dtd : Behandelt Eingabe als XML DTD (experimentell, nicht unterst\u00fctzt)\n\\ \\ -wsdl : Behandelt Eingabe als WSDL und kompiliert enthaltene Schemas (experimentell, nicht unterst\u00fctzt)\n\\ \\ -verbose : Verwendet extra-verbose\n\\ \\ -quiet : Unterdr\u00fcckt die Compilerausgabe\n\\ \\ -help : Zeigt diese Hilfemeldung an\n\\ \\ -version : Zeigt Versionsinformationen an\n\\ \\ -fullversion : Zeigt vollst\u00e4ndige Versionsinformationen an\n
|
||||
Driver.Public.Usage = Verwendung: xjc [-options ...] <schema file/URL/dir/jar> ... [-b <bindinfo>] ...\n\
|
||||
Wenn dir angegeben wird, werden alle Schemadateien im Verzeichnis kompiliert.\n\
|
||||
Wenn jar angegeben wird, wird die /META-INF/sun-jaxb.episode-Binding-Datei kompiliert.\n\
|
||||
Optionen:\n\
|
||||
\ \ -nv : F\u00fchrt keine strikte Validierung der Eingabeschemas durch\n\
|
||||
\ \ -extension : L\u00e4sst Herstellererweiterungen zu - Befolgt die \n\
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Kompatibilit\u00e4tsregeln und App E.2 der JAXB-Spezifikation nicht strikt\n\
|
||||
\ \ -b <file/dir> : Gibt externe Bindings-Dateien an (jede <file> muss ihre eigene Option -b haben)\n\
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Wenn ein Verzeichnis angegeben wird, wird **/*.xjb durchsucht\n\
|
||||
\ \ -d <dir> : Generierte Dateien werden in diesem Verzeichnis gespeichert\n\
|
||||
\ \ -p <pkg> : Gibt das Zielpackage an\n\
|
||||
\ \ -httpproxy <proxy> : set HTTP/HTTPS proxy. Format ist [user[:password]@]proxyHost:proxyPort\n\
|
||||
\ \ -httpproxyfile <f> : Wird wie -httpproxy verwendet, verwendet jedoch das Argument in einer Datei zum Schutz des Kennwortes \n\
|
||||
\ \ -classpath <arg> : Gibt an, wo die Benutzerklassendateien gefunden werden\n\
|
||||
\ \ -catalog <file> : Gibt Katalogdateien zur Aufl\u00f6sung von externen Entity-Referenzen an\n\
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Unterst\u00fctzt TR9401, XCatalog und OASIS-XML-Katalogformat.\n\
|
||||
\ \ -readOnly : Generierte Dateien werden im schreibgesch\u00fctzten Modus gelesen\n\
|
||||
\ \ -npa : Unterdr\u00fcckt die Generierung von Annotationen auf Packageebene (**/package-info.java)\n\
|
||||
\ \ -no-header : Unterdr\u00fcckt die Generierung eines Datei-Headers mit Zeitstempel\n\
|
||||
\ \ -target (2.0|2.1) : Verh\u00e4lt sich wie XJC 2.0 oder 2.1 und generiert Code, der keine 2.2-Features verwendet.\n\
|
||||
\ \ -encoding <encoding> : Gibt Zeichencodierung f\u00fcr generierte Quelldateien an\n\
|
||||
\ \ -enableIntrospection : Aktiviert die ordnungsgem\u00e4\u00dfe Generierung von booleschen Gettern/Settern zur Aktivierung von Bean Introspection-APIs \n\
|
||||
\ \ -contentForWildcard : Generiert Contenteigenschaft f\u00fcr Typen mit mehreren von xs:any abgeleiteten Elementen \n\
|
||||
\ \ -xmlschema : Behandelt Eingabe als W3C-XML-Schema (Standard)\n\
|
||||
\ \ -dtd : Behandelt Eingabe als XML DTD (experimentell, nicht unterst\u00fctzt)\n\
|
||||
\ \ -wsdl : Behandelt Eingabe als WSDL und kompiliert enthaltene Schemas (experimentell, nicht unterst\u00fctzt)\n\
|
||||
\ \ -verbose : Verwendet extra-verbose\n\
|
||||
\ \ -quiet : Unterdr\u00fcckt die Compilerausgabe\n\
|
||||
\ \ -help : Zeigt diese Hilfemeldung an\n\
|
||||
\ \ -version : Zeigt Versionsinformationen an\n\
|
||||
\ \ -fullversion : Zeigt vollst\u00e4ndige Versionsinformationen an\n\
|
||||
|
||||
Driver.AddonUsage = \nErweiterungen:
|
||||
|
||||
# {0} - one of: DTD, RELAX NG, RELAX NG compact syntax, WSDL; {1} - one of (respectively): -dtd, -relaxng, -relaxng-compact, -wsdl
|
||||
# {0} - one of: DTD, WSDL; {1} - one of (respectively): -dtd, -wsdl
|
||||
Driver.ExperimentalLanguageWarning = Versuchen Sie, {0} zu kompilieren? Unterst\u00fctzung f\u00fcr {0} ist zu Testzwecken bestimmt. Eine Aktivierung ist mit der Option {1} m\u00f6glich.
|
||||
|
||||
# Not concatenated with any other String. Variable: Name of a directory (input argument of the XJC utility).
|
||||
|
|
|
@ -33,10 +33,41 @@ ConsoleErrorReporter.LineXOfY = \ \ l\u00ednea {0} de {1}
|
|||
ConsoleErrorReporter.UnknownFile = archivo desconocido
|
||||
|
||||
Driver.Private.Usage = Opciones de pruebas privadas adicionales:\n\\ \\ -debug : se ejecuta en modo de depuraci\u00f3n (incluye -verbose)\n\\ \\ -mode <modo> : ejecuta XJC en otro modo de ejecuci\u00f3n\n\\ \\ -private : muestra este mensaje de ayuda\nModo:\n\\ \\ code : genera c\u00f3digo fuente Java (por defecto)\n\\ \\ dryrun : compila el esquema en la memoria, pero no genera el c\u00f3digo fuente Java\n\\ \\ zip : genera c\u00f3digo fuente Java en un archivo zip especificado por la opci\u00f3n -d\n\\ \\ sig : vuelca las firmas del c\u00f3digo generado\n\\ \\ forest : vuelca el bosque DOM transformado\n
|
||||
Driver.Public.Usage = Sintaxis: xjc [-options ...] <archivo de esquema/URL/dir/jar> ... [-b <infoenlace>] ...\nSi se especifica dir, se compilar\u00e1n todos los archivos de esquema que hay en \u00e9l.\nSi se especifica jar, se compilar\u00e1 el archivo de enlace /META-INF/sun-jaxb.episode.\nOpciones:\n\\ \\ -nv : no realiza una validaci\u00f3n estricta de los esquemas de entrada\n\\ \\ -extension : permite extensiones de proveedor - no cumple estrictamente las\n\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ reglas de compatibilidad y el ap\u00e9ndice E.2 de la especificaci\u00f3n JAXB\n\\ \\ -b <archivo/dir> : especifica archivos de enlace externos (cada <archivo> debe tener su propio -b)\n\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ Si se proporciona un directorio, se busca **/*.xjb\n\\ \\ -d <directorio> : los archivos generados ir\u00e1n a este directorio\n\\ \\ -p <paquete> : especifica el paquete de destino\n\\ \\ -httpproxy <proxy> : define el proxy HTTP/HTTPS. El formato es [user[:password]@]proxyHost:proxyPort\n\\ \\ -httpproxyfile <f> : funciona como -httpproxy, pero toma el argumento de un archivo para proteger la contrase\u00f1a \n\\ \\ -classpath <arg> : especifica d\u00f3nde encontrar archivos de clase de usuario\n\\ \\ -catalog <archivo> : especifica archivos de cat\u00e1logo para resolver referencias de entidades externas\n\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ soporta el formato de cat\u00e1logo TR9401, XCatalog y OASIS XML.\n\\ \\ -readOnly : los archivos generados estar\u00e1n en modo de s\u00f3lo lectura\n\\ \\ -npa : suprime la generaci\u00f3n de anotaciones de nivel de paquete (**/package-info.java)\n\\ \\ -no-header : suprime la generaci\u00f3n de una cabecera de archivo con registro de hora\n\\ \\ -target (2.0|2.1) : se comporta como XJC 2.0 o 2.1 y genera c\u00f3digo que no utiliza ninguna de las funciones de 2.2.\n\\ \\ -encoding <codificaci\u00f3n> :especifica la codificaci\u00f3n de caracteres de los archivos de origen generados\n\\ \\ -enableIntrospection : permite la generaci\u00f3n correcta de getters/setters booleanos para permitir API de introspecci\u00f3n de bean \n\\ \\ -contentForWildcard : genera la propiedad de contenido para tipos con m\u00faltiples elementos derivados de xs:any \n\\ \\ -xmlschema : trata la entrada como un esquema XML de W3C (por defecto)\n\\ \\ -relaxng : trata la entrada como RELAX NG (experimental, no soportado)\n\\ \\ -relaxng-compact : trata la entrada como sintaxis compacta de RELAX NG (experimental, no soportado)\n\\ \\ -dtd : trata la entrada como DTD de XML (experimental, no soportado)\n\\ \\ -wsdl : trata la entrada como WSDL y compila esquemas en su interior (experimental, no soportado)\n\\ \\ -verbose : con detalles adicionales\n\\ \\ -quiet : suprime la salida del compilador\n\\ \\ -help : muestra este mensaje de ayuda\n\\ \\ -version : muestra informaci\u00f3n de la versi\u00f3n\n\\ \\ -fullversion : muestra informaci\u00f3n completa de la versi\u00f3n\n
|
||||
Driver.Public.Usage = Sintaxis: xjc [-options ...] <archivo de esquema/URL/dir/jar> ... [-b <infoenlace>] ...\n\
|
||||
Si se especifica dir, se compilar\u00e1n todos los archivos de esquema que hay en \u00e9l.\n\
|
||||
Si se especifica jar, se compilar\u00e1 el archivo de enlace /META-INF/sun-jaxb.episode.\n\
|
||||
Opciones:\n\
|
||||
\ \ -nv : no realiza una validaci\u00f3n estricta de los esquemas de entrada\n\
|
||||
\ \ -extension : permite extensiones de proveedor - no cumple estrictamente las\n\
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ reglas de compatibilidad y el ap\u00e9ndice E.2 de la especificaci\u00f3n JAXB\n\
|
||||
\ \ -b <archivo/dir> : especifica archivos de enlace externos (cada <archivo> debe tener su propio -b)\n\
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Si se proporciona un directorio, se busca **/*.xjb\n\
|
||||
\ \ -d <directorio> : los archivos generados ir\u00e1n a este directorio\n\
|
||||
\ \ -p <paquete> : especifica el paquete de destino\n\
|
||||
\ \ -httpproxy <proxy> : define el proxy HTTP/HTTPS. El formato es [user[:password]@]proxyHost:proxyPort\n\
|
||||
\ \ -httpproxyfile <f> : funciona como -httpproxy, pero toma el argumento de un archivo para proteger la contrase\u00f1a \n\
|
||||
\ \ -classpath <arg> : especifica d\u00f3nde encontrar archivos de clase de usuario\n\
|
||||
\ \ -catalog <archivo> : especifica archivos de cat\u00e1logo para resolver referencias de entidades externas\n\
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ soporta el formato de cat\u00e1logo TR9401, XCatalog y OASIS XML.\n\
|
||||
\ \ -readOnly : los archivos generados estar\u00e1n en modo de s\u00f3lo lectura\n\
|
||||
\ \ -npa : suprime la generaci\u00f3n de anotaciones de nivel de paquete (**/package-info.java)\n\
|
||||
\ \ -no-header : suprime la generaci\u00f3n de una cabecera de archivo con registro de hora\n\
|
||||
\ \ -target (2.0|2.1) : se comporta como XJC 2.0 o 2.1 y genera c\u00f3digo que no utiliza ninguna de las funciones de 2.2.\n\
|
||||
\ \ -encoding <codificaci\u00f3n> :especifica la codificaci\u00f3n de caracteres de los archivos de origen generados\n\
|
||||
\ \ -enableIntrospection : permite la generaci\u00f3n correcta de getters/setters booleanos para permitir API de introspecci\u00f3n de bean \n\
|
||||
\ \ -contentForWildcard : genera la propiedad de contenido para tipos con m\u00faltiples elementos derivados de xs:any \n\
|
||||
\ \ -xmlschema : trata la entrada como un esquema XML de W3C (por defecto)\n\
|
||||
\ \ -dtd : trata la entrada como DTD de XML (experimental, no soportado)\n\
|
||||
\ \ -wsdl : trata la entrada como WSDL y compila esquemas en su interior (experimental, no soportado)\n\
|
||||
\ \ -verbose : con detalles adicionales\n\
|
||||
\ \ -quiet : suprime la salida del compilador\n\
|
||||
\ \ -help : muestra este mensaje de ayuda\n\
|
||||
\ \ -version : muestra informaci\u00f3n de la versi\u00f3n\n\
|
||||
\ \ -fullversion : muestra informaci\u00f3n completa de la versi\u00f3n\n\
|
||||
|
||||
Driver.AddonUsage = \nExtensiones:
|
||||
|
||||
# {0} - one of: DTD, RELAX NG, RELAX NG compact syntax, WSDL; {1} - one of (respectively): -dtd, -relaxng, -relaxng-compact, -wsdl
|
||||
# {0} - one of: DTD, WSDL; {1} - one of (respectively): -dtd, -wsdl
|
||||
Driver.ExperimentalLanguageWarning = \u00bfEst\u00e1 intentando compilar {0}? El soporte de {0} es experimental. Para activarlo, utilice la opci\u00f3n {1}.
|
||||
|
||||
# Not concatenated with any other String. Variable: Name of a directory (input argument of the XJC utility).
|
||||
|
|
|
@ -36,7 +36,42 @@ Driver.Private.Usage = Options de test priv\u00e9es suppl\u00e9mentaires : \n\ \
|
|||
Driver.Public.Usage = Syntaxe : xjc [-options ...] <schema file/URL/dir/jar> ... [-b <bindinfo>] ...\nSi le r\u00e9pertoire est indiqu\u00e9, tous les fichiers de sch\u00e9ma qu'il contient seront compil\u00e9s.\nSi le fichier JAR est indiqu\u00e9, le fichier de binding /META-INF/sun-jaxb.episode sera compil\u00e9.\nOptions :\n\ \ -nv : n'effectuez pas de validation stricte des sch\u00e9mas d'entr\u00e9e\n\ \ -extension : autorisez les extensions fournisseur, ne suivez pas strictement les\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ R\u00e8gles de compatibilit\u00e9 et App E.2 de la sp\u00e9cification JAXB\n\ \ -b <file/dir> : indiquez les fichiers de binding externes (chaque \u00e9l\u00e9ment <file> doit avoir sa propre option -b)\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Si un r\u00e9pertoire est indiqu\u00e9, **/*.xjb est recherch\u00e9\n\ \ -d <dir> : les fichiers g\u00e9n\u00e9r\u00e9s seront plac\u00e9s dans ce r\u00e9pertoire\n\ \ -p <pkg> : indique le package cible\n\ \ -httpproxy <proxy> : d\u00e9finissez le proxy HTTP/HTTPS. Le format est [user[:password]@]proxyHost:proxyPort\n\ \ -httpproxyfile <f> : fonctionne comme -httpproxy mais prend l'argument dans un fichier pour prot\u00e9ger le mot de passe \n\ \ -classpath <arg> : indiquez o\u00f9 trouver les fichiers de classe utilisateur\n\ \ -catalog <file> : indiquez les fichiers de catalogue pour r\u00e9soudre les r\u00e9f\u00e9rences d'entit\u00e9 externes\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ prenez en charge le format de catalogue TR9401, XCatalog et OASIS XML.\n\ \ -readOnly : les fichiers g\u00e9n\u00e9r\u00e9s seront en mode lecture seule\n\ \ -npa : supprimez la g\u00e9n\u00e9ration des annotations de niveau package (**/package-info.java)\n\ \ -no-header : supprimez la g\u00e9n\u00e9ration d'un en-t\u00eate de fichier avec horodatage\n\ \ -target (2.0|2.1) : comportez-vous comme XJC 2.0 ou 2.1 et g\u00e9n\u00e9rez du code qui n'utilise aucune fonctionnalit\u00e9 2.2.\n\ \ -encoding <encoding> : indiquez l'encodage de caract\u00e8res pour les fichiers source g\u00e9n\u00e9r\u00e9s\n\ \ -enableIntrospection : activez la g\u00e9n\u00e9ration correcte des m\u00e9thodes get/set bool\u00e9ennes pour activer les API d'introspection de bean \n\ \ -contentForWildcard : g\u00e9n\u00e8re la propri\u00e9t\u00e9 de contenu pour les types avec plusieurs \u00e9l\u00e9ments d\u00e9riv\u00e9s xs:any \n\ \ -xmlschema : traitez l'entr\u00e9e en tant que W3C XML Schema (par d\u00e9faut)\n\ \ -relaxng : traitez l'entr\u00e9e en tant que RELAX NG (exp\u00e9rimental, non pris en charge)\n\ \ -relaxng-compact : traitez l'entr\u00e9e en tant que syntaxe compacte RELAX NG (exp\u00e9rimental, non pris en charge)\n\ \ -dtd : traitez l'entr\u00e9e en tant que DTD XML (exp\u00e9rimental, non pris en charge)\n\ \ -wsdl : traitez l'entr\u00e9e en tant que WSDL et compilez-y les sch\u00e9mas (exp\u00e9rimental, non pris en charge)\n\ \ -verbose : agissez en mode extra verbose\n\ \ -quiet : supprimez la sortie de compilateur\n\ \ -help : affichez ce message d'aide\n\ \ -version : affichez ces informations de version\n\ \ -fullversion : affichez ces informations de version compl\u00e8te\n
|
||||
Driver.AddonUsage = \nExtensions :
|
||||
|
||||
# {0} - one of: DTD, RELAX NG, RELAX NG compact syntax, WSDL; {1} - one of (respectively): -dtd, -relaxng, -relaxng-compact, -wsdl
|
||||
Driver.Public.Usage = Syntaxe : xjc [-options ...] <schema file/URL/dir/jar> ... [-b <bindinfo>] ...\n\
|
||||
Si le r\u00e9pertoire est indiqu\u00e9, tous les fichiers de sch\u00e9ma qu'il contient seront compil\u00e9s.\n\
|
||||
Si le fichier JAR est indiqu\u00e9, le fichier de binding /META-INF/sun-jaxb.episode sera compil\u00e9.\n\
|
||||
Options :\n\
|
||||
\ \ -nv : n'effectuez pas de validation stricte des sch\u00e9mas d'entr\u00e9e\n\
|
||||
\ \ -extension : autorisez les extensions fournisseur, ne suivez pas strictement les\n\
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ R\u00e8gles de compatibilit\u00e9 et App E.2 de la sp\u00e9cification JAXB\n\
|
||||
\ \ -b <file/dir> : indiquez les fichiers de binding externes (chaque \u00e9l\u00e9ment <file> doit avoir sa propre option -b)\n\
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Si un r\u00e9pertoire est indiqu\u00e9, **/*.xjb est recherch\u00e9\n\
|
||||
\ \ -d <dir> : les fichiers g\u00e9n\u00e9r\u00e9s seront plac\u00e9s dans ce r\u00e9pertoire\n\
|
||||
\ \ -p <pkg> : indique le package cible\n\
|
||||
\ \ -httpproxy <proxy> : d\u00e9finissez le proxy HTTP/HTTPS. Le format est [user[:password]@]proxyHost:proxyPort\n\
|
||||
\ \ -httpproxyfile <f> : fonctionne comme -httpproxy mais prend l'argument dans un fichier pour prot\u00e9ger le mot de passe \n\
|
||||
\ \ -classpath <arg> : indiquez o\u00f9 trouver les fichiers de classe utilisateur\n\
|
||||
\ \ -catalog <file> : indiquez les fichiers de catalogue pour r\u00e9soudre les r\u00e9f\u00e9rences d'entit\u00e9 externes\n\
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ prenez en charge le format de catalogue TR9401, XCatalog et OASIS XML.\n\
|
||||
\ \ -readOnly : les fichiers g\u00e9n\u00e9r\u00e9s seront en mode lecture seule\n\
|
||||
\ \ -npa : supprimez la g\u00e9n\u00e9ration des annotations de niveau package (**/package-info.java)\n\
|
||||
\ \ -no-header : supprimez la g\u00e9n\u00e9ration d'un en-t\u00eate de fichier avec horodatage\n\
|
||||
\ \ -target (2.0|2.1) : comportez-vous comme XJC 2.0 ou 2.1 et g\u00e9n\u00e9rez du code qui n'utilise aucune fonctionnalit\u00e9 2.2.\n\
|
||||
\ \ -encoding <encoding> : indiquez l'encodage de caract\u00e8res pour les fichiers source g\u00e9n\u00e9r\u00e9s\n\
|
||||
\ \ -enableIntrospection : activez la g\u00e9n\u00e9ration correcte des m\u00e9thodes get/set bool\u00e9ennes pour activer les API d'introspection de bean \n\
|
||||
\ \ -contentForWildcard : g\u00e9n\u00e8re la propri\u00e9t\u00e9 de contenu pour les types avec plusieurs \u00e9l\u00e9ments d\u00e9riv\u00e9s xs:any \n\
|
||||
\ \ -xmlschema : traitez l'entr\u00e9e en tant que W3C XML Schema (par d\u00e9faut)\n\
|
||||
\ \ -dtd : traitez l'entr\u00e9e en tant que DTD XML (exp\u00e9rimental, non pris en charge)\n\
|
||||
\ \ -wsdl : traitez l'entr\u00e9e en tant que WSDL et compilez-y les sch\u00e9mas (exp\u00e9rimental, non pris en charge)\n\
|
||||
\ \ -verbose : agissez en mode extra verbose\n\
|
||||
\ \ -quiet : supprimez la sortie de compilateur\n\
|
||||
\ \ -help : affichez ce message d'aide\n\
|
||||
\ \ -version : affichez ces informations de version\n\
|
||||
\ \ -fullversion : affichez ces informations de version compl\u00e8te\n\
|
||||
|
||||
Driver.AddonUsage = \n\
|
||||
Extensions :
|
||||
|
||||
# {0} - one of: DTD, WSDL; {1} - one of (respectively): -dtd, -wsdl
|
||||
Driver.ExperimentalLanguageWarning = Essayez-vous de compiler {0} ? La prise en charge de {0} est exp\u00e9rimentale. Vous pouvez l''activer \u00e0 l''aide de l''option {1}.
|
||||
|
||||
# Not concatenated with any other String. Variable: Name of a directory (input argument of the XJC utility).
|
||||
|
|
|
@ -33,10 +33,41 @@ ConsoleErrorReporter.LineXOfY = \ \ riga {0} di {1}
|
|||
ConsoleErrorReporter.UnknownFile = file sconosciuto
|
||||
|
||||
Driver.Private.Usage = Opzioni di test private aggiuntive:\n\ \ -debug : l'esecuzione avviene in modalit\u00e0 debug (include -verbose)\n\ \ -mode <modalit\u00e0> : XJC viene eseguito in un'altra modalit\u00e0 di esecuzione\n\ \ -private : visualizza questo messaggio della Guida\nModalit\u00e0:\n\ \ code : genera il codice sorgente Java (valore predefinito)\n\ \ dryrun : compila lo schema nella memoria ma non genera il codice sorgente Java\n\ \ zip : genera il codice sorgente Java in un file zip specificato dall'opzione -d\n\ \ sig : esegue il dump del firme del codice generato\n\ \ forest : esegue il dump dell'insieme di strutture DOM trasformato\n
|
||||
Driver.Public.Usage = Uso: xjc [-options ...] <file schema/URL/dir/jar> ... [-b <bindinfo>] ...\nSe viene specificato dir, verranno compilati tutti i file dello schema in essa contenuti.\nSe viene specificato jar, verr\u00e0 compilato il file di associazione /META-INF/sun-jaxb.episode.\nOpzioni:\n\ \ -nv : non esegue la convalida rigorosa degli schemi di input\n\ \ -extension : consente le estensioni del fornitore; non segue in modo rigoroso le\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ regole di compatibilit\u00e0 e App E.2 dalla specifica JAXB\n\ \ -b <file/dir> : specifica i file di associazione esterni (ogni <file> deve avere la relativa -b)\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Se viene fornita una directory, la ricerca viene eseguita in **/*.xjb\n\ \ -d <dir> : i file generati andranno in questa directory\n\ \ -p <pkg> : specifica il package di destinazione\n\ \ -httpproxy <proxy> : imposta il proxy HTTP/HTTPS. Il formato \u00e8 [user[:password]@]proxyHost:proxyPort\n\ \ -httpproxyfile <f> : funziona come -httpproxy ma prende l'argomento da un file per proteggere la password \n\ \ -classpath <arg> : specifica dove trovare i file delle classi utente\n\ \ -catalog <file> : specifica i file di catalogo per risolvere i riferimenti a entit\u00e0 esterne\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ supporta il formato di catalogo XML TR9401, XCatalog e OASIS.\n\ \ -readOnly : i file generati saranno in modalit\u00e0 di sola lettura\n\ \ -npa : elimina la generazione delle annotazioni a livello di package (**/package-info.java)\n\ \ -no-header : elimina la generazione di un'intestazione di file con indicatore orario\n\ \ -target (2.0|2.1) : funziona come XJC 2.0 o 2.1 e genera del codice che non usa alcuna funzione 2.2.\n\ \ -encoding <encoding> : specifica la codifica di caratteri per i file di origine generati\n\ \ -enableIntrospection : abilita la generazione di getter/setter booleani per abilitare le API di introspezione dei bean \n\ \ -contentForWildcard : genera la propriet\u00e0 di contenuto per i tipi con pi\u00f9 elementi derivati xs:any \n\ \ -xmlschema : tratta l'input come schema XML W3C (valore predefinito)\n\ \ -relaxng : tratta l'input come NG RELAX (sperimentale, non supportato)\n\ \ -relaxng-compact : tratta l'input come sintassi compatta NG RELAX (sperimentale, non supportato)\n\ \ -dtd : tratta l'input come DTD XML (sperimentale, non supportato)\n\ \ -wsdl : tratta l'input come WSDL e compila gli schemi al suo interno (sperimentale, non supportato)\n\ \ -verbose : be extra verbose\n\ \ -quiet : elimina l'output del compilatore\n\ \ -help : visualizza questo messaggio della Guida\n\ \ -version : visualizza le informazioni sulla versione\n\ \ -fullversion : visualizza le informazioni sulla versione completa\n
|
||||
Driver.Public.Usage = Uso: xjc [-options ...] <file schema/URL/dir/jar> ... [-b <bindinfo>] ...\n\
|
||||
Se viene specificato dir, verranno compilati tutti i file dello schema in essa contenuti.\n\
|
||||
Se viene specificato jar, verr\u00e0 compilato il file di associazione /META-INF/sun-jaxb.episode.\n\
|
||||
Opzioni:\n\
|
||||
\ \ -nv : non esegue la convalida rigorosa degli schemi di input\n\
|
||||
\ \ -extension : consente le estensioni del fornitore; non segue in modo rigoroso le\n\
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ regole di compatibilit\u00e0 e App E.2 dalla specifica JAXB\n\
|
||||
\ \ -b <file/dir> : specifica i file di associazione esterni (ogni <file> deve avere la relativa -b)\n\
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Se viene fornita una directory, la ricerca viene eseguita in **/*.xjb\n\
|
||||
\ \ -d <dir> : i file generati andranno in questa directory\n\
|
||||
\ \ -p <pkg> : specifica il package di destinazione\n\
|
||||
\ \ -httpproxy <proxy> : imposta il proxy HTTP/HTTPS. Il formato \u00e8 [user[:password]@]proxyHost:proxyPort\n\
|
||||
\ \ -httpproxyfile <f> : funziona come -httpproxy ma prende l'argomento da un file per proteggere la password \n\
|
||||
\ \ -classpath <arg> : specifica dove trovare i file delle classi utente\n\
|
||||
\ \ -catalog <file> : specifica i file di catalogo per risolvere i riferimenti a entit\u00e0 esterne\n\
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ supporta il formato di catalogo XML TR9401, XCatalog e OASIS.\n\
|
||||
\ \ -readOnly : i file generati saranno in modalit\u00e0 di sola lettura\n\
|
||||
\ \ -npa : elimina la generazione delle annotazioni a livello di package (**/package-info.java)\n\
|
||||
\ \ -no-header : elimina la generazione di un'intestazione di file con indicatore orario\n\
|
||||
\ \ -target (2.0|2.1) : funziona come XJC 2.0 o 2.1 e genera del codice che non usa alcuna funzione 2.2.\n\
|
||||
\ \ -encoding <encoding> : specifica la codifica di caratteri per i file di origine generati\n\
|
||||
\ \ -enableIntrospection : abilita la generazione di getter/setter booleani per abilitare le API di introspezione dei bean \n\
|
||||
\ \ -contentForWildcard : genera la propriet\u00e0 di contenuto per i tipi con pi\u00f9 elementi derivati xs:any \n\
|
||||
\ \ -xmlschema : tratta l'input come schema XML W3C (valore predefinito)\n\
|
||||
\ \ -dtd : tratta l'input come DTD XML (sperimentale, non supportato)\n\
|
||||
\ \ -wsdl : tratta l'input come WSDL e compila gli schemi al suo interno (sperimentale, non supportato)\n\
|
||||
\ \ -verbose : be extra verbose\n\
|
||||
\ \ -quiet : elimina l'output del compilatore\n\
|
||||
\ \ -help : visualizza questo messaggio della Guida\n\
|
||||
\ \ -version : visualizza le informazioni sulla versione\n\
|
||||
\ \ -fullversion : visualizza le informazioni sulla versione completa\n\
|
||||
|
||||
Driver.AddonUsage = \nEstensioni:
|
||||
|
||||
# {0} - one of: DTD, RELAX NG, RELAX NG compact syntax, WSDL; {1} - one of (respectively): -dtd, -relaxng, -relaxng-compact, -wsdl
|
||||
# {0} - one of: DTD, WSDL; {1} - one of (respectively): -dtd, -wsdl
|
||||
Driver.ExperimentalLanguageWarning = Si sta tentando di compilare {0}? Il supporto per {0} \u00e8 sperimentale. \u00c8 possibile abilitarlo usando l''opzione {1}.
|
||||
|
||||
# Not concatenated with any other String. Variable: Name of a directory (input argument of the XJC utility).
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -33,10 +33,41 @@ ConsoleErrorReporter.LineXOfY = \ \ linha {0} de {1}
|
|||
ConsoleErrorReporter.UnknownFile = arquivo desconhecido
|
||||
|
||||
Driver.Private.Usage = Op\u00e7\u00f5es adicionais de teste privado:\n\\ \\ -debug : executar no modo de depura\u00e7\u00e3o (inclui -verbose)\n\\ \\ -mode <mode> : executar XJC em outro modo de execu\u00e7\u00e3o\n\\ \\ -private : exibir esta mensagem de ajuda\nModo:\n\\ \\ code : gerar c\u00f3digo de origem Java (default)\n\\ \\ dryrun : compilar o esquema na mem\u00f3ria, mas n\u00e3o gerar a origem Java\n\\ \\ zip : gerar c\u00f3digo de origem Java em um arquivo zip especificado pela op\u00e7\u00e3o -d\n\\ \\ sig : fazer dump das assinaturas do c\u00f3digo gerado\n\\ \\ forest : fazer dump do DOM transformado\n
|
||||
Driver.Public.Usage = Uso: xjc [-options ...] <schema file/URL/dir/jar> ... [-b <bindinfo>] ...\nSe dir for especificado, todos os arquivos do esquema dele ser\u00e3o compilados.\nSe jar for especificado, o arquivo de bind /META-INF/sun-jaxb.episode ser\u00e1 compilado.\nOp\u00e7\u00f5es:\n\\ \\ -nv : n\u00e3o executar valida\u00e7\u00e3o restrita do(s) esquema(s) de entrada\n\\ \\ -extension : permitir extens\u00f5es do fornecedor - n\u00e3o seguir rigorosamente as\n\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ Regras de Compatibilidade e Ap\u00eandice E.2 da Espec. JAXB\n\\ \\ -b <file/dir> : especifica arquivos de bind externos (cada <file> deve ter seu pr\u00f3prio -b)\n\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ Se for fornecido um diret\u00f3rio, **/*.xjb ser\u00e1 pesquisado\n\\ \\ -d <dir> : os arquivos gerados ficar\u00e3o neste diret\u00f3rio\n\\ \\ -p <pkg> : especifica o pacote do alvo\n\\ \\ -httpproxy <proxy> : definir proxy HTTP/HTTPS. O formato \u00e9 [user[:password]@]proxyHost:proxyPort\n\\ \\ -httpproxyfile <f> : Funciona como -httpproxy, mas usa o argumento em um arquivo para proteger a senha \n\\ \\ -classpath <arg> : especifica onde localizar os arquivos de classe do usu\u00e1rio\n\\ \\ -catalog <file> : especifica arquivos do cat\u00e1logo para resolver refer\u00eancias da entidade externa\n\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ suporta TR9401, formato de XCatalog e do Cat\u00e1logo XML do OASIS.\n\\ \\ -readOnly : os arquivos gerados ficar\u00e3o no modo somente leitura\n\\ \\ -npa : suprime a gera\u00e7\u00e3o de anota\u00e7\u00f5es do n\u00edvel do pacote (**/package-info.java)\n\\ \\ -no-header : suprime a gera\u00e7\u00e3o de um cabe\u00e7alho do arquivo com timestamp\n\\ \\ -target (2.0|2.1) : atua como XJC 2.0 ou 2.1 e gera c\u00f3digo que n\u00e3o usa nenhum recurso 2.2.\n\\ \\ -encoding <encoding> : especifica codifica\u00e7\u00e3o de caracteres para arquivos de origem gerados\n\\ \\ -enableIntrospection : ativa a gera\u00e7\u00e3o correta de getters/setters Boolianos para ativar apis de Introspec\u00e7\u00e3o de Bean \n\\ \\ -contentForWildcard : gera a propriedade do conte\u00fado dos tipos com v\u00e1rios xs:todos elementos derivados \n\\ \\ -xmlschema : trata a sa\u00edda como Esquema XML de W3C (default)\n\\ \\ -relaxng : trata a entrada como RELAX NG (experimental, n\u00e3o suportada)\n\\ \\ -relaxng-compact : trata a entrada como sintaxe compacta RELAX NG (experimental, n\u00e3o suportada)\n\\ \\ -dtd : trata a entrada como XML DTD (experimental,n\u00e3o suportada)\n\\ \\ -wsdl : trata a entrada como WSDL e compila esquemas dentro dela (experimental,n\u00e3o suportada)\n\\ \\ -verbose : verbose extra\n\\ \\ -quiet : suprime a sa\u00edda do compilador\n\\ \\ -help : exibe esta mensagem de ajuda\n\\ \\ -version : exibe informa\u00e7\u00f5es da vers\u00e3o\n\\ \\ -fullversion : exibe informa\u00e7\u00f5es da vers\u00e3o completa\n
|
||||
Driver.Public.Usage = Uso: xjc [-options ...] <schema file/URL/dir/jar> ... [-b <bindinfo>] ...\n\
|
||||
Se dir for especificado, todos os arquivos do esquema dele ser\u00e3o compilados.\n\
|
||||
Se jar for especificado, o arquivo de bind /META-INF/sun-jaxb.episode ser\u00e1 compilado.\n\
|
||||
Op\u00e7\u00f5es:\n\
|
||||
\ \ -nv : n\u00e3o executar valida\u00e7\u00e3o restrita do(s) esquema(s) de entrada\n\
|
||||
\ \ -extension : permitir extens\u00f5es do fornecedor - n\u00e3o seguir rigorosamente as\n\
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Regras de Compatibilidade e Ap\u00eandice E.2 da Espec. JAXB\n\
|
||||
\ \ -b <file/dir> : especifica arquivos de bind externos (cada <file> deve ter seu pr\u00f3prio -b)\n\
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Se for fornecido um diret\u00f3rio, **/*.xjb ser\u00e1 pesquisado\n\
|
||||
\ \ -d <dir> : os arquivos gerados ficar\u00e3o neste diret\u00f3rio\n\
|
||||
\ \ -p <pkg> : especifica o pacote do alvo\n\
|
||||
\ \ -httpproxy <proxy> : definir proxy HTTP/HTTPS. O formato \u00e9 [user[:password]@]proxyHost:proxyPort\n\
|
||||
\ \ -httpproxyfile <f> : Funciona como -httpproxy, mas usa o argumento em um arquivo para proteger a senha \n\
|
||||
\ \ -classpath <arg> : especifica onde localizar os arquivos de classe do usu\u00e1rio\n\
|
||||
\ \ -catalog <file> : especifica arquivos do cat\u00e1logo para resolver refer\u00eancias da entidade externa\n\
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ suporta TR9401, formato de XCatalog e do Cat\u00e1logo XML do OASIS.\n\
|
||||
\ \ -readOnly : os arquivos gerados ficar\u00e3o no modo somente leitura\n\
|
||||
\ \ -npa : suprime a gera\u00e7\u00e3o de anota\u00e7\u00f5es do n\u00edvel do pacote (**/package-info.java)\n\
|
||||
\ \ -no-header : suprime a gera\u00e7\u00e3o de um cabe\u00e7alho do arquivo com timestamp\n\
|
||||
\ \ -target (2.0|2.1) : atua como XJC 2.0 ou 2.1 e gera c\u00f3digo que n\u00e3o usa nenhum recurso 2.2.\n\
|
||||
\ \ -encoding <encoding> : especifica codifica\u00e7\u00e3o de caracteres para arquivos de origem gerados\n\
|
||||
\ \ -enableIntrospection : ativa a gera\u00e7\u00e3o correta de getters/setters Boolianos para ativar apis de Introspec\u00e7\u00e3o de Bean \n\
|
||||
\ \ -contentForWildcard : gera a propriedade do conte\u00fado dos tipos com v\u00e1rios xs:todos elementos derivados \n\
|
||||
\ \ -xmlschema : trata a sa\u00edda como Esquema XML de W3C (default)\n\
|
||||
\ \ -dtd : trata a entrada como XML DTD (experimental,n\u00e3o suportada)\n\
|
||||
\ \ -wsdl : trata a entrada como WSDL e compila esquemas dentro dela (experimental,n\u00e3o suportada)\n\
|
||||
\ \ -verbose : verbose extra\n\
|
||||
\ \ -quiet : suprime a sa\u00edda do compilador\n\
|
||||
\ \ -help : exibe esta mensagem de ajuda\n\
|
||||
\ \ -version : exibe informa\u00e7\u00f5es da vers\u00e3o\n\
|
||||
\ \ -fullversion : exibe informa\u00e7\u00f5es da vers\u00e3o completa\n\
|
||||
|
||||
Driver.AddonUsage = \nExtens\u00f5es:
|
||||
|
||||
# {0} - one of: DTD, RELAX NG, RELAX NG compact syntax, WSDL; {1} - one of (respectively): -dtd, -relaxng, -relaxng-compact, -wsdl
|
||||
# {0} - one of: DTD, WSDL; {1} - one of (respectively): -dtd, -wsdl
|
||||
Driver.ExperimentalLanguageWarning = Voc\u00ea est\u00e1 tentando compilar {0}? O suporte para {0} \u00e9 experimental. Voc\u00ea pode ativ\u00e1-lo usando a op\u00e7\u00e3o {1}.
|
||||
|
||||
# Not concatenated with any other String. Variable: Name of a directory (input argument of the XJC utility).
|
||||
|
|
|
@ -36,7 +36,42 @@ Driver.Private.Usage = \u5176\u4ed6\u4e13\u7528\u6d4b\u8bd5\u9009\u9879:\n\ \ -d
|
|||
Driver.Public.Usage = \u7528\u6cd5: xjc [-options ...] <schema file/URL/dir/jar> ... [-b <bindinfo>] ...\n\u5982\u679c\u6307\u5b9a dir, \u5c06\u7f16\u8bd1\u8be5\u76ee\u5f55\u4e2d\u7684\u6240\u6709\u6a21\u5f0f\u6587\u4ef6\u3002\n\u5982\u679c\u6307\u5b9a jar, \u5c06\u7f16\u8bd1 /META-INF/sun-jaxb.episode \u7ed1\u5b9a\u6587\u4ef6\u3002\n\u9009\u9879:\n\ \ -nv : \u4e0d\u5bf9\u8f93\u5165\u6a21\u5f0f\u6267\u884c\u4e25\u683c\u9a8c\u8bc1\n\ \ -extension : \u5141\u8bb8\u4f9b\u5e94\u5546\u6269\u5c55 - \u4e0d\u4e25\u683c\u9075\u5faa\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ JAXB \u89c4\u8303\u4e2d\u7684\u517c\u5bb9\u6027\u89c4\u5219\u548c\u5e94\u7528\u7a0b\u5e8f E.2\n\ \ -b <file/dir> : \u6307\u5b9a\u5916\u90e8\u7ed1\u5b9a\u6587\u4ef6 (\u6bcf\u4e2a <file> \u5fc5\u987b\u5177\u6709\u81ea\u5df1\u7684 -b)\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \u5982\u679c\u6307\u5b9a\u76ee\u5f55, \u5219\u5c06\u641c\u7d22 **/*.xjb\n\ \ -d <dir> : \u751f\u6210\u7684\u6587\u4ef6\u5c06\u653e\u5165\u6b64\u76ee\u5f55\u4e2d\n\ \ -p <pkg> : \u6307\u5b9a\u76ee\u6807\u7a0b\u5e8f\u5305\n\ \ -httpproxy <proxy> : \u8bbe\u7f6e HTTP/HTTPS \u4ee3\u7406\u3002\u683c\u5f0f\u4e3a [user[:password]@]proxyHost:proxyPort\n\ \ -httpproxyfile <f> : \u4f5c\u7528\u4e0e -httpproxy \u7c7b\u4f3c, \u4f46\u5728\u6587\u4ef6\u4e2d\u91c7\u7528\u53c2\u6570\u6765\u4fdd\u62a4\u53e3\u4ee4\n\ \ -classpath <arg> : \u6307\u5b9a\u67e5\u627e\u7528\u6237\u7c7b\u6587\u4ef6\u7684\u4f4d\u7f6e\n\ \ -catalog <file> : \u6307\u5b9a\u7528\u4e8e\u89e3\u6790\u5916\u90e8\u5b9e\u4f53\u5f15\u7528\u7684\u76ee\u5f55\u6587\u4ef6\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \u652f\u6301 TR9401, XCatalog \u548c OASIS XML \u76ee\u5f55\u683c\u5f0f\u3002\n\ \ -readOnly : \u751f\u6210\u7684\u6587\u4ef6\u5c06\u5904\u4e8e\u53ea\u8bfb\u6a21\u5f0f\n\ \ -npa : \u7981\u6b62\u751f\u6210\u7a0b\u5e8f\u5305\u7ea7\u522b\u6ce8\u91ca (**/package-info.java)\n\ \ -no-header : \u7981\u6b62\u751f\u6210\u5e26\u6709\u65f6\u95f4\u6233\u7684\u6587\u4ef6\u5934\n\ \ -target (2.0|2.1) : \u884c\u4e3a\u4e0e XJC 2.0 \u6216 2.1 \u7c7b\u4f3c, \u7528\u4e8e\u751f\u6210\u4e0d\u4f7f\u7528\u4efb\u4f55 2.2 \u529f\u80fd\u7684\u4ee3\u7801\u3002\n\ \ -encoding <encoding> : \u4e3a\u751f\u6210\u7684\u6e90\u6587\u4ef6\u6307\u5b9a\u5b57\u7b26\u7f16\u7801\n\ \ -enableIntrospection : \u7528\u4e8e\u6b63\u786e\u751f\u6210\u5e03\u5c14\u578b getter/setter \u4ee5\u542f\u7528 Bean \u81ea\u6d4b apis \n\ \ -contentForWildcard : \u4e3a\u5177\u6709\u591a\u4e2a xs:any \u6d3e\u751f\u5143\u7d20\u7684\u7c7b\u578b\u751f\u6210\u5185\u5bb9\u5c5e\u6027\n\ \ -xmlschema : \u91c7\u7528 W3C XML \u6a21\u5f0f\u5904\u7406\u8f93\u5165 (\u9ed8\u8ba4\u503c)\n\ \ -relaxng : \u91c7\u7528 RELAX NG \u5904\u7406\u8f93\u5165 (\u5b9e\u9a8c\u6027\u7684, \u4e0d\u652f\u6301)\n\ \ -relaxng-compact : \u91c7\u7528 RELAX NG \u7b80\u6d01\u8bed\u6cd5\u5904\u7406\u8f93\u5165 (\u5b9e\u9a8c\u6027\u7684, \u4e0d\u652f\u6301)\n\ \ -dtd : \u91c7\u7528 XML DTD \u5904\u7406\u8f93\u5165 (\u5b9e\u9a8c\u6027\u7684, \u4e0d\u652f\u6301)\n\ \ -wsdl : \u91c7\u7528 WSDL \u5904\u7406\u8f93\u5165\u5e76\u7f16\u8bd1\u5176\u4e2d\u7684\u6a21\u5f0f (\u5b9e\u9a8c\u6027\u7684, \u4e0d\u652f\u6301)\n\ \ -verbose : \u7279\u522b\u8be6\u7ec6\n\ \ -quiet : \u9690\u85cf\u7f16\u8bd1\u5668\u8f93\u51fa\n\ \ -help : \u663e\u793a\u6b64\u5e2e\u52a9\u6d88\u606f\n\ \ -version : \u663e\u793a\u7248\u672c\u4fe1\u606f\n\ \ -fullversion : \u663e\u793a\u5b8c\u6574\u7684\u7248\u672c\u4fe1\u606f\n
|
||||
Driver.AddonUsage = \n\u6269\u5c55:
|
||||
|
||||
# {0} - one of: DTD, RELAX NG, RELAX NG compact syntax, WSDL; {1} - one of (respectively): -dtd, -relaxng, -relaxng-compact, -wsdl
|
||||
Driver.Public.Usage = \u7528\u6cd5: xjc [-options ...] <schema file/URL/dir/jar> ... [-b <bindinfo>] ...\n\
|
||||
\u5982\u679c\u6307\u5b9a dir, \u5c06\u7f16\u8bd1\u8be5\u76ee\u5f55\u4e2d\u7684\u6240\u6709\u6a21\u5f0f\u6587\u4ef6\u3002\n\
|
||||
\u5982\u679c\u6307\u5b9a jar, \u5c06\u7f16\u8bd1 /META-INF/sun-jaxb.episode \u7ed1\u5b9a\u6587\u4ef6\u3002\n\
|
||||
\u9009\u9879:\n\
|
||||
\ \ -nv : \u4e0d\u5bf9\u8f93\u5165\u6a21\u5f0f\u6267\u884c\u4e25\u683c\u9a8c\u8bc1\n\
|
||||
\ \ -extension : \u5141\u8bb8\u4f9b\u5e94\u5546\u6269\u5c55 - \u4e0d\u4e25\u683c\u9075\u5faa\n\
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ JAXB \u89c4\u8303\u4e2d\u7684\u517c\u5bb9\u6027\u89c4\u5219\u548c\u5e94\u7528\u7a0b\u5e8f E.2\n\
|
||||
\ \ -b <file/dir> : \u6307\u5b9a\u5916\u90e8\u7ed1\u5b9a\u6587\u4ef6 (\u6bcf\u4e2a <file> \u5fc5\u987b\u5177\u6709\u81ea\u5df1\u7684 -b)\n\
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \u5982\u679c\u6307\u5b9a\u76ee\u5f55, \u5219\u5c06\u641c\u7d22 **/*.xjb\n\
|
||||
\ \ -d <dir> : \u751f\u6210\u7684\u6587\u4ef6\u5c06\u653e\u5165\u6b64\u76ee\u5f55\u4e2d\n\
|
||||
\ \ -p <pkg> : \u6307\u5b9a\u76ee\u6807\u7a0b\u5e8f\u5305\n\
|
||||
\ \ -httpproxy <proxy> : \u8bbe\u7f6e HTTP/HTTPS \u4ee3\u7406\u3002\u683c\u5f0f\u4e3a [user[:password]@]proxyHost:proxyPort\n\
|
||||
\ \ -httpproxyfile <f> : \u4f5c\u7528\u4e0e -httpproxy \u7c7b\u4f3c, \u4f46\u5728\u6587\u4ef6\u4e2d\u91c7\u7528\u53c2\u6570\u6765\u4fdd\u62a4\u53e3\u4ee4\n\
|
||||
\ \ -classpath <arg> : \u6307\u5b9a\u67e5\u627e\u7528\u6237\u7c7b\u6587\u4ef6\u7684\u4f4d\u7f6e\n\
|
||||
\ \ -catalog <file> : \u6307\u5b9a\u7528\u4e8e\u89e3\u6790\u5916\u90e8\u5b9e\u4f53\u5f15\u7528\u7684\u76ee\u5f55\u6587\u4ef6\n\
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \u652f\u6301 TR9401, XCatalog \u548c OASIS XML \u76ee\u5f55\u683c\u5f0f\u3002\n\
|
||||
\ \ -readOnly : \u751f\u6210\u7684\u6587\u4ef6\u5c06\u5904\u4e8e\u53ea\u8bfb\u6a21\u5f0f\n\
|
||||
\ \ -npa : \u7981\u6b62\u751f\u6210\u7a0b\u5e8f\u5305\u7ea7\u522b\u6ce8\u91ca (**/package-info.java)\n\
|
||||
\ \ -no-header : \u7981\u6b62\u751f\u6210\u5e26\u6709\u65f6\u95f4\u6233\u7684\u6587\u4ef6\u5934\n\
|
||||
\ \ -target (2.0|2.1) : \u884c\u4e3a\u4e0e XJC 2.0 \u6216 2.1 \u7c7b\u4f3c, \u7528\u4e8e\u751f\u6210\u4e0d\u4f7f\u7528\u4efb\u4f55 2.2 \u529f\u80fd\u7684\u4ee3\u7801\u3002\n\
|
||||
\ \ -encoding <encoding> : \u4e3a\u751f\u6210\u7684\u6e90\u6587\u4ef6\u6307\u5b9a\u5b57\u7b26\u7f16\u7801\n\
|
||||
\ \ -enableIntrospection : \u7528\u4e8e\u6b63\u786e\u751f\u6210\u5e03\u5c14\u578b getter/setter \u4ee5\u542f\u7528 Bean \u81ea\u6d4b apis \n\
|
||||
\ \ -contentForWildcard : \u4e3a\u5177\u6709\u591a\u4e2a xs:any \u6d3e\u751f\u5143\u7d20\u7684\u7c7b\u578b\u751f\u6210\u5185\u5bb9\u5c5e\u6027\n\
|
||||
\ \ -xmlschema : \u91c7\u7528 W3C XML \u6a21\u5f0f\u5904\u7406\u8f93\u5165 (\u9ed8\u8ba4\u503c)\n\
|
||||
\ \ -dtd : \u91c7\u7528 XML DTD \u5904\u7406\u8f93\u5165 (\u5b9e\u9a8c\u6027\u7684, \u4e0d\u652f\u6301)\n\
|
||||
\ \ -wsdl : \u91c7\u7528 WSDL \u5904\u7406\u8f93\u5165\u5e76\u7f16\u8bd1\u5176\u4e2d\u7684\u6a21\u5f0f (\u5b9e\u9a8c\u6027\u7684, \u4e0d\u652f\u6301)\n\
|
||||
\ \ -verbose : \u7279\u522b\u8be6\u7ec6\n\
|
||||
\ \ -quiet : \u9690\u85cf\u7f16\u8bd1\u5668\u8f93\u51fa\n\
|
||||
\ \ -help : \u663e\u793a\u6b64\u5e2e\u52a9\u6d88\u606f\n\
|
||||
\ \ -version : \u663e\u793a\u7248\u672c\u4fe1\u606f\n\
|
||||
\ \ -fullversion : \u663e\u793a\u5b8c\u6574\u7684\u7248\u672c\u4fe1\u606f\n\
|
||||
|
||||
Driver.AddonUsage = \n\
|
||||
\u6269\u5c55:
|
||||
|
||||
# {0} - one of: DTD, WSDL; {1} - one of (respectively): -dtd, -wsdl
|
||||
Driver.ExperimentalLanguageWarning = \u662f\u5426\u8981\u5c1d\u8bd5\u7f16\u8bd1{0}? \u5bf9{0}\u7684\u652f\u6301\u662f\u5b9e\u9a8c\u6027\u7684\u3002\u53ef\u901a\u8fc7\u4f7f\u7528{1}\u9009\u9879\u542f\u7528\u5b83\u3002
|
||||
|
||||
# Not concatenated with any other String. Variable: Name of a directory (input argument of the XJC utility).
|
||||
|
|
|
@ -33,10 +33,41 @@ ConsoleErrorReporter.LineXOfY = \ \ {1} \u7684\u7b2c {0} \u884c
|
|||
ConsoleErrorReporter.UnknownFile = \u4e0d\u660e\u7684\u6a94\u6848
|
||||
|
||||
Driver.Private.Usage = \u5176\u4ed6\u5c08\u7528\u6e2c\u8a66\u9078\u9805:\n\\ \\ -debug : \u5728\u9664\u932f\u6a21\u5f0f\u4e2d\u57f7\u884c (\u5305\u542b -verbose)\n\\ \\ -mode <mode> : \u5728\u5176\u4ed6\u57f7\u884c\u4e2d\u6a21\u5f0f\u4e0b\u57f7\u884c XJC\n\\ \\ -private : \u986f\u793a\u6b64\u8aaa\u660e\u8a0a\u606f\n\u6a21\u5f0f:\n\\ \\ code : \u7522\u751f Java \u4f86\u6e90\u7a0b\u5f0f\u78bc (\u9810\u8a2d\u503c)\n\\ \\ dryrun : \u5728\u8a18\u61b6\u9ad4\u4e2d\u7de8\u8b6f\u7db1\u8981, \u4f46\u4e0d\u7522\u751f Java \u4f86\u6e90\n\\ \\ zip : \u5c07 Java \u4f86\u6e90\u7a0b\u5f0f\u78bc\u8f49\u63db\u70ba -d \u9078\u9805\u6307\u5b9a\u7684 zip \u6a94\u6848\n\\ \\ sig : \u50be\u5370\u7522\u751f\u4e4b\u7a0b\u5f0f\u78bc\u7684\u7c3d\u7ae0\n\\ \\ forest : \u50be\u5370\u8f49\u63db\u7684 DOM \u6a39\u7cfb\n
|
||||
Driver.Public.Usage = \u7528\u6cd5: xjc [-options ...] <schema file/URL/dir/jar> ... [-b <bindinfo>] ...\n\u82e5\u6307\u5b9a dir, \u5c07\u7de8\u8b6f\u5176\u4e2d\u7684\u6240\u6709\u7db1\u8981\u6a94\u6848.\n\u82e5\u6307\u5b9a jar, \u5c07\u7de8\u8b6f /META-INF/sun-jaxb.episode \u9023\u7d50\u6a94.\n\u9078\u9805:\n\\ \\ -nv : \u4e0d\u57f7\u884c\u56b4\u683c\u7684\u8f38\u5165\u7db1\u8981\u9a57\u8b49\n\\ \\ -extension : \u5141\u8a31\u5ee0\u5546\u64f4\u5145\u5957\u4ef6 - \u4e0d\u56b4\u683c\u9075\u5faa\n\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ JAXB \u898f\u683c\u4e2d\u7684\u76f8\u5bb9\u6027\u898f\u5247\u8207 App E.2\n\\ \\ -b <file/dir> : \u6307\u5b9a\u5916\u90e8\u9023\u7d50\u6a94 (\u6bcf\u500b <file> \u9700\u6709\u81ea\u5df1\u7684 -b)\n\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \u82e5\u6307\u5b9a\u76ee\u9304, \u5247\u6703\u641c\u5c0b **/*.xjb\n\\ \\ -d <dir> : \u7522\u751f\u7684\u6a94\u6848\u5c07\u79fb\u81f3\u6b64\u76ee\u9304\n\\ \\ -p <pkg> : \u6307\u5b9a\u76ee\u6a19\u5957\u88dd\u7a0b\u5f0f\n\\ \\ -httpproxy <proxy> : \u8a2d\u5b9a HTTP/HTTPS \u4ee3\u7406\u4e3b\u6a5f. \u683c\u5f0f\u70ba [user[:password]@]proxyHost:proxyPort\n\\ \\ -httpproxyfile <f> : \u4f5c\u7528\u5982\u540c -httpproxy, \u4f46\u63a5\u53d7\u6a94\u6848\u4e2d\u7684\u5f15\u6578\u4ee5\u4fdd\u8b77\u5bc6\u78bc \n\\ \\ -classpath <arg> : \u6307\u5b9a\u5c0b\u627e\u4f7f\u7528\u8005\u985e\u5225\u6a94\u6848\u7684\u4f4d\u7f6e\n\\ \\ -catalog <file> : \u6307\u5b9a\u89e3\u6790\u5916\u90e8\u5be6\u9ad4\u53c3\u7167\u7684\u76ee\u9304\u6a94\u6848\n\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \u652f\u63f4 TR9401\u3001XCatalog \u4ee5\u53ca OASIS XML \u76ee\u9304\u683c\u5f0f.\n\\ \\ -readOnly : \u7522\u751f\u7684\u6a94\u6848\u5c07\u662f\u552f\u8b80\u6a21\u5f0f\n\\ \\ -npa : \u6291\u5236\u5957\u88dd\u7a0b\u5f0f\u5c64\u6b21\u8a3b\u89e3 (**/package-info.java) \u7684\u7522\u751f\n\\ \\ -no-header : \u6291\u5236\u6a94\u6848\u6a19\u982d\u548c\u6642\u6233\u7684\u7522\u751f\n\\ \\ -target (2.0|2.1) : \u4f5c\u7528\u5982\u540c XJC 2.0 \u6216 2.1, \u4e26\u4e14\u6703\u7522\u751f\u4e0d\u4f7f\u7528\u4efb\u4f55 2.2 \u529f\u80fd\u7684\u7a0b\u5f0f\u78bc.\n\\ \\ -encoding <encoding> : \u70ba\u7522\u751f\u7684\u4f86\u6e90\u6a94\u6848\u6307\u5b9a\u5b57\u5143\u7de8\u78bc\n\\ \\ -enableIntrospection : \u6b63\u78ba\u7522\u751f\u5e03\u6797\u503c getter/setter \u4ee5\u555f\u7528 Bean \u81ea\u6211\u6aa2\u67e5 api \n\\ \\ -contentForWildcard : \u70ba\u542b\u6709\u591a\u500b xs:any \u884d\u751f\u4e4b\u5143\u7d20\u7684\u985e\u578b\u7522\u751f\u5167\u5bb9\u7279\u6027 \n\\ \\ -xmlschema : \u5c07\u8f38\u5165\u8996\u70ba W3C XML \u7db1\u8981 (\u9810\u8a2d\u503c)\n\\ \\ -relaxng : \u5c07\u8f38\u5165\u8996\u70ba RELAX NG (\u5be6\u9a57\u6027, \u4e0d\u63d0\u4f9b\u652f\u63f4)\n\\ \\ -relaxng-compact : \u5c07\u8f38\u5165\u8996\u70ba RELAX NG \u7cbe\u7c21\u8a9e\u6cd5 (\u5be6\u9a57\u6027, \u4e0d\u63d0\u4f9b\u4e0d\u652f\u63f4)\n\\ \\ -dtd : \u5c07\u8f38\u5165\u8996\u70ba XML DTD (\u5be6\u9a57\u6027, \u4e0d\u63d0\u4f9b\u652f\u63f4)\n\\ \\ -wsdl : \u5c07\u8f38\u5165\u8996\u70ba WSDL, \u4e26\u7de8\u8b6f\u5176\u4e2d\u7684\u7db1\u8981 (\u5be6\u9a57\u6027, \u4e0d\u63d0\u4f9b\u652f\u63f4)\n\\ \\ -verbose : \u63d0\u4f9b\u984d\u5916\u7684\u8a73\u7d30\u8cc7\u8a0a\n\\ \\ -quiet : \u6291\u5236\u7de8\u8b6f\u5668\u8f38\u51fa\n\\ \\ -help : \u986f\u793a\u6b64\u8aaa\u660e\u8a0a\u606f\n\\ \\ -version : \u986f\u793a\u7248\u672c\u8cc7\u8a0a\n\\ \\ -fullversion : \u986f\u793a\u5b8c\u6574\u7248\u672c\u8cc7\u8a0a\n
|
||||
Driver.Public.Usage = \u7528\u6cd5: xjc [-options ...] <schema file/URL/dir/jar> ... [-b <bindinfo>] ...\n\
|
||||
\u82e5\u6307\u5b9a dir, \u5c07\u7de8\u8b6f\u5176\u4e2d\u7684\u6240\u6709\u7db1\u8981\u6a94\u6848.\n\
|
||||
\u82e5\u6307\u5b9a jar, \u5c07\u7de8\u8b6f /META-INF/sun-jaxb.episode \u9023\u7d50\u6a94.\n\
|
||||
\u9078\u9805:\n\
|
||||
\ \ -nv : \u4e0d\u57f7\u884c\u56b4\u683c\u7684\u8f38\u5165\u7db1\u8981\u9a57\u8b49\n\
|
||||
\ \ -extension : \u5141\u8a31\u5ee0\u5546\u64f4\u5145\u5957\u4ef6 - \u4e0d\u56b4\u683c\u9075\u5faa\n\
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ JAXB \u898f\u683c\u4e2d\u7684\u76f8\u5bb9\u6027\u898f\u5247\u8207 App E.2\n\
|
||||
\ \ -b <file/dir> : \u6307\u5b9a\u5916\u90e8\u9023\u7d50\u6a94 (\u6bcf\u500b <file> \u9700\u6709\u81ea\u5df1\u7684 -b)\n\
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \u82e5\u6307\u5b9a\u76ee\u9304, \u5247\u6703\u641c\u5c0b **/*.xjb\n\
|
||||
\ \ -d <dir> : \u7522\u751f\u7684\u6a94\u6848\u5c07\u79fb\u81f3\u6b64\u76ee\u9304\n\
|
||||
\ \ -p <pkg> : \u6307\u5b9a\u76ee\u6a19\u5957\u88dd\u7a0b\u5f0f\n\
|
||||
\ \ -httpproxy <proxy> : \u8a2d\u5b9a HTTP/HTTPS \u4ee3\u7406\u4e3b\u6a5f. \u683c\u5f0f\u70ba [user[:password]@]proxyHost:proxyPort\n\
|
||||
\ \ -httpproxyfile <f> : \u4f5c\u7528\u5982\u540c -httpproxy, \u4f46\u63a5\u53d7\u6a94\u6848\u4e2d\u7684\u5f15\u6578\u4ee5\u4fdd\u8b77\u5bc6\u78bc \n\
|
||||
\ \ -classpath <arg> : \u6307\u5b9a\u5c0b\u627e\u4f7f\u7528\u8005\u985e\u5225\u6a94\u6848\u7684\u4f4d\u7f6e\n\
|
||||
\ \ -catalog <file> : \u6307\u5b9a\u89e3\u6790\u5916\u90e8\u5be6\u9ad4\u53c3\u7167\u7684\u76ee\u9304\u6a94\u6848\n\
|
||||
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \u652f\u63f4 TR9401\u3001XCatalog \u4ee5\u53ca OASIS XML \u76ee\u9304\u683c\u5f0f.\n\
|
||||
\ \ -readOnly : \u7522\u751f\u7684\u6a94\u6848\u5c07\u662f\u552f\u8b80\u6a21\u5f0f\n\
|
||||
\ \ -npa : \u6291\u5236\u5957\u88dd\u7a0b\u5f0f\u5c64\u6b21\u8a3b\u89e3 (**/package-info.java) \u7684\u7522\u751f\n\
|
||||
\ \ -no-header : \u6291\u5236\u6a94\u6848\u6a19\u982d\u548c\u6642\u6233\u7684\u7522\u751f\n\
|
||||
\ \ -target (2.0|2.1) : \u4f5c\u7528\u5982\u540c XJC 2.0 \u6216 2.1, \u4e26\u4e14\u6703\u7522\u751f\u4e0d\u4f7f\u7528\u4efb\u4f55 2.2 \u529f\u80fd\u7684\u7a0b\u5f0f\u78bc.\n\
|
||||
\ \ -encoding <encoding> : \u70ba\u7522\u751f\u7684\u4f86\u6e90\u6a94\u6848\u6307\u5b9a\u5b57\u5143\u7de8\u78bc\n\
|
||||
\ \ -enableIntrospection : \u6b63\u78ba\u7522\u751f\u5e03\u6797\u503c getter/setter \u4ee5\u555f\u7528 Bean \u81ea\u6211\u6aa2\u67e5 api \n\
|
||||
\ \ -contentForWildcard : \u70ba\u542b\u6709\u591a\u500b xs:any \u884d\u751f\u4e4b\u5143\u7d20\u7684\u985e\u578b\u7522\u751f\u5167\u5bb9\u7279\u6027 \n\
|
||||
\ \ -xmlschema : \u5c07\u8f38\u5165\u8996\u70ba W3C XML \u7db1\u8981 (\u9810\u8a2d\u503c)\n\
|
||||
\ \ -dtd : \u5c07\u8f38\u5165\u8996\u70ba XML DTD (\u5be6\u9a57\u6027, \u4e0d\u63d0\u4f9b\u652f\u63f4)\n\
|
||||
\ \ -wsdl : \u5c07\u8f38\u5165\u8996\u70ba WSDL, \u4e26\u7de8\u8b6f\u5176\u4e2d\u7684\u7db1\u8981 (\u5be6\u9a57\u6027, \u4e0d\u63d0\u4f9b\u652f\u63f4)\n\
|
||||
\ \ -verbose : \u63d0\u4f9b\u984d\u5916\u7684\u8a73\u7d30\u8cc7\u8a0a\n\
|
||||
\ \ -quiet : \u6291\u5236\u7de8\u8b6f\u5668\u8f38\u51fa\n\
|
||||
\ \ -help : \u986f\u793a\u6b64\u8aaa\u660e\u8a0a\u606f\n\
|
||||
\ \ -version : \u986f\u793a\u7248\u672c\u8cc7\u8a0a\n\
|
||||
\ \ -fullversion : \u986f\u793a\u5b8c\u6574\u7248\u672c\u8cc7\u8a0a\n\
|
||||
|
||||
Driver.AddonUsage = \n\u64f4\u5145\u5957\u4ef6:
|
||||
|
||||
# {0} - one of: DTD, RELAX NG, RELAX NG compact syntax, WSDL; {1} - one of (respectively): -dtd, -relaxng, -relaxng-compact, -wsdl
|
||||
# {0} - one of: DTD, WSDL; {1} - one of (respectively): -dtd, -wsdl
|
||||
Driver.ExperimentalLanguageWarning = \u60a8\u6b63\u5728\u5617\u8a66\u7de8\u8b6f {0} \u55ce? \u5c0d {0} \u7684\u652f\u63f4\u662f\u5be6\u9a57\u6027\u7684. \u60a8\u53ef\u4f7f\u7528 {1} \u9078\u9805\u4f86\u555f\u7528.
|
||||
|
||||
# Not concatenated with any other String. Variable: Name of a directory (input argument of the XJC utility).
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, 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
|
||||
|
@ -38,8 +38,6 @@ import com.sun.tools.internal.xjc.reader.internalizer.DOMForestScanner;
|
|||
import com.sun.tools.internal.xjc.reader.internalizer.InternalizationLogic;
|
||||
import com.sun.tools.internal.xjc.reader.internalizer.SCDBasedBindingSet;
|
||||
import com.sun.tools.internal.xjc.reader.internalizer.VersionChecker;
|
||||
import com.sun.tools.internal.xjc.reader.relaxng.RELAXNGCompiler;
|
||||
import com.sun.tools.internal.xjc.reader.relaxng.RELAXNGInternalizationLogic;
|
||||
import com.sun.tools.internal.xjc.reader.xmlschema.BGMBuilder;
|
||||
import com.sun.tools.internal.xjc.reader.xmlschema.bindinfo.AnnotationParserFactoryImpl;
|
||||
import com.sun.tools.internal.xjc.reader.xmlschema.parser.CustomizationContextChecker;
|
||||
|
@ -54,15 +52,6 @@ import com.sun.xml.internal.xsom.parser.XMLParser;
|
|||
import com.sun.xml.internal.xsom.parser.XSOMParser;
|
||||
import javax.xml.XMLConstants;
|
||||
|
||||
import com.sun.xml.internal.rngom.ast.builder.SchemaBuilder;
|
||||
import com.sun.xml.internal.rngom.ast.util.CheckingSchemaBuilder;
|
||||
import com.sun.xml.internal.rngom.digested.DPattern;
|
||||
import com.sun.xml.internal.rngom.digested.DSchemaBuilderImpl;
|
||||
import com.sun.xml.internal.rngom.parse.IllegalSchemaException;
|
||||
import com.sun.xml.internal.rngom.parse.Parseable;
|
||||
import com.sun.xml.internal.rngom.parse.compact.CompactParseable;
|
||||
import com.sun.xml.internal.rngom.parse.xml.SAXParseable;
|
||||
import com.sun.xml.internal.rngom.xml.sax.XMLReaderCreator;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
@ -73,8 +62,6 @@ import org.xml.sax.ErrorHandler;
|
|||
import org.xml.sax.InputSource;
|
||||
import org.xml.sax.SAXException;
|
||||
import org.xml.sax.SAXParseException;
|
||||
import org.xml.sax.XMLFilter;
|
||||
import org.xml.sax.XMLReader;
|
||||
import org.xml.sax.helpers.XMLFilterImpl;
|
||||
|
||||
/**
|
||||
|
@ -141,16 +128,6 @@ public final class ModelLoader {
|
|||
grammar = loadDTD(opt.getGrammars()[0], bindFile );
|
||||
break;
|
||||
|
||||
case RELAXNG :
|
||||
checkTooManySchemaErrors();
|
||||
grammar = loadRELAXNG();
|
||||
break;
|
||||
|
||||
case RELAXNG_COMPACT :
|
||||
checkTooManySchemaErrors();
|
||||
grammar = loadRELAXNGCompact();
|
||||
break;
|
||||
|
||||
case WSDL:
|
||||
grammar = annotateXMLSchema( loadWSDL() );
|
||||
break;
|
||||
|
@ -206,12 +183,6 @@ public final class ModelLoader {
|
|||
case DTD:
|
||||
msg = new String[]{"DTD","-dtd"};
|
||||
break;
|
||||
case RELAXNG:
|
||||
msg = new String[]{"RELAX NG","-relaxng"};
|
||||
break;
|
||||
case RELAXNG_COMPACT:
|
||||
msg = new String[]{"RELAX NG compact syntax","-relaxng-compact"};
|
||||
break;
|
||||
case WSDL:
|
||||
msg = new String[]{"WSDL","-wsdl"};
|
||||
break;
|
||||
|
@ -528,71 +499,4 @@ public final class ModelLoader {
|
|||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses a RELAX NG grammar into an annotated grammar.
|
||||
*/
|
||||
private Model loadRELAXNG() throws SAXException {
|
||||
|
||||
// build DOM forest
|
||||
final DOMForest forest = buildDOMForest( new RELAXNGInternalizationLogic() );
|
||||
|
||||
// use JAXP masquerading to validate the input document.
|
||||
// DOMForest -> ExtensionBindingChecker -> RNGOM
|
||||
|
||||
XMLReaderCreator xrc = new XMLReaderCreator() {
|
||||
public XMLReader createXMLReader() {
|
||||
|
||||
// foreset parser cannot change the receivers while it's working,
|
||||
// so we need to have one XMLFilter that works as a buffer
|
||||
XMLFilter buffer = new XMLFilterImpl() {
|
||||
@Override
|
||||
public void parse(InputSource source) throws IOException, SAXException {
|
||||
forest.createParser().parse( source, this, this, this );
|
||||
}
|
||||
};
|
||||
|
||||
XMLFilter f = new ExtensionBindingChecker(Const.RELAXNG_URI,opt,errorReceiver);
|
||||
f.setParent(buffer);
|
||||
|
||||
f.setEntityResolver(opt.entityResolver);
|
||||
|
||||
return f;
|
||||
}
|
||||
};
|
||||
|
||||
Parseable p = new SAXParseable( opt.getGrammars()[0], errorReceiver, xrc );
|
||||
|
||||
return loadRELAXNG(p);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads RELAX NG compact syntax
|
||||
*/
|
||||
private Model loadRELAXNGCompact() {
|
||||
if(opt.getBindFiles().length>0)
|
||||
errorReceiver.error(new SAXParseException(
|
||||
Messages.format(Messages.ERR_BINDING_FILE_NOT_SUPPORTED_FOR_RNC),null));
|
||||
|
||||
// TODO: entity resolver?
|
||||
Parseable p = new CompactParseable( opt.getGrammars()[0], errorReceiver );
|
||||
|
||||
return loadRELAXNG(p);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Common part between the XML syntax and the compact syntax.
|
||||
*/
|
||||
private Model loadRELAXNG(Parseable p) {
|
||||
SchemaBuilder sb = new CheckingSchemaBuilder(new DSchemaBuilderImpl(),errorReceiver);
|
||||
|
||||
try {
|
||||
DPattern out = (DPattern)p.parse(sb);
|
||||
return RELAXNGCompiler.build(out,codeModel,opt);
|
||||
} catch (IllegalSchemaException e) {
|
||||
errorReceiver.error(e.getMessage(),e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, 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
|
||||
|
@ -562,14 +562,6 @@ public class Options
|
|||
schemaLanguage = Language.DTD;
|
||||
return 1;
|
||||
}
|
||||
if (args[i].equals("-relaxng")) {
|
||||
schemaLanguage = Language.RELAXNG;
|
||||
return 1;
|
||||
}
|
||||
if (args[i].equals("-relaxng-compact")) {
|
||||
schemaLanguage = Language.RELAXNG_COMPACT;
|
||||
return 1;
|
||||
}
|
||||
if (args[i].equals("-xmlschema")) {
|
||||
schemaLanguage = Language.XMLSCHEMA;
|
||||
return 1;
|
||||
|
@ -869,10 +861,6 @@ public class Options
|
|||
if ((grammars != null) && (grammars.size() > 0)) {
|
||||
String name = grammars.get(0).getSystemId().toLowerCase();
|
||||
|
||||
if (name.endsWith(".rng"))
|
||||
return Language.RELAXNG;
|
||||
if (name.endsWith(".rnc"))
|
||||
return Language.RELAXNG_COMPACT;
|
||||
if (name.endsWith(".dtd"))
|
||||
return Language.DTD;
|
||||
if (name.endsWith(".wsdl"))
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, 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,7 +32,7 @@ import javax.xml.namespace.NamespaceContext;
|
|||
|
||||
import com.sun.xml.internal.xsom.XmlString;
|
||||
|
||||
import org.relaxng.datatype.ValidationContext;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.ValidationContext;
|
||||
|
||||
/**
|
||||
* Take a {@link ValidationContext} and make it look like a {@link NamespaceContext}.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* Copyright (c) 2001, Thai Open Source Software Center Ltd
|
||||
/*
|
||||
* Copyright (c) 2005, 2015, Thai Open Source Software Center Ltd
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -31,7 +31,8 @@
|
|||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package org.relaxng.datatype;
|
||||
|
||||
package com.sun.xml.internal.org.relaxng.datatype;
|
||||
|
||||
/**
|
||||
* Datatype object.
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* Copyright (c) 2001, Thai Open Source Software Center Ltd
|
||||
/*
|
||||
* Copyright (c) 2005, 2015, Thai Open Source Software Center Ltd
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -31,7 +31,8 @@
|
|||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package org.relaxng.datatype;
|
||||
|
||||
package com.sun.xml.internal.org.relaxng.datatype;
|
||||
|
||||
/**
|
||||
* Creates a user-defined type by adding parameters to
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* Copyright (c) 2001, Thai Open Source Software Center Ltd
|
||||
/*
|
||||
* Copyright (c) 2005, 2015, Thai Open Source Software Center Ltd
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -31,7 +31,8 @@
|
|||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package org.relaxng.datatype;
|
||||
|
||||
package com.sun.xml.internal.org.relaxng.datatype;
|
||||
|
||||
/**
|
||||
* Signals Datatype related exceptions.
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* Copyright (c) 2001, Thai Open Source Software Center Ltd
|
||||
/*
|
||||
* Copyright (c) 2005, 2015, Thai Open Source Software Center Ltd
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -31,7 +31,8 @@
|
|||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package org.relaxng.datatype;
|
||||
|
||||
package com.sun.xml.internal.org.relaxng.datatype;
|
||||
|
||||
/**
|
||||
* A Datatype library
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* Copyright (c) 2001, Thai Open Source Software Center Ltd
|
||||
/*
|
||||
* Copyright (c) 2005, 2015, Thai Open Source Software Center Ltd
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -31,7 +31,8 @@
|
|||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package org.relaxng.datatype;
|
||||
|
||||
package com.sun.xml.internal.org.relaxng.datatype;
|
||||
|
||||
/**
|
||||
* Factory class for the DatatypeLibrary class.
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* Copyright (c) 2001, Thai Open Source Software Center Ltd
|
||||
/*
|
||||
* Copyright (c) 2005, 2015, Thai Open Source Software Center Ltd
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -31,7 +31,8 @@
|
|||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package org.relaxng.datatype;
|
||||
|
||||
package com.sun.xml.internal.org.relaxng.datatype;
|
||||
|
||||
/**
|
||||
* Datatype streaming validator.
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* Copyright (c) 2001, Thai Open Source Software Center Ltd
|
||||
/*
|
||||
* Copyright (c) 2005, 2015, Thai Open Source Software Center Ltd
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -31,7 +31,8 @@
|
|||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package org.relaxng.datatype;
|
||||
|
||||
package com.sun.xml.internal.org.relaxng.datatype;
|
||||
|
||||
/**
|
||||
* An interface that must be implemented by caller to
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* Copyright (c) 2001, Thai Open Source Software Center Ltd
|
||||
* Copyright (c) 2001, 2015 Thai Open Source Software Center Ltd
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -31,10 +31,10 @@
|
|||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package org.relaxng.datatype.helpers;
|
||||
package com.sun.xml.internal.org.relaxng.datatype.helpers;
|
||||
|
||||
import org.relaxng.datatype.DatatypeLibraryFactory;
|
||||
import org.relaxng.datatype.DatatypeLibrary;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeLibraryFactory;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeLibrary;
|
||||
import java.util.Enumeration;
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.Vector;
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* Copyright (c) 2001, Thai Open Source Software Center Ltd
|
||||
/*
|
||||
* Copyright (c) 2005, 2015, Thai Open Source Software Center Ltd
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -31,9 +31,10 @@
|
|||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package org.relaxng.datatype.helpers;
|
||||
|
||||
import org.relaxng.datatype.*;
|
||||
package com.sun.xml.internal.org.relaxng.datatype.helpers;
|
||||
|
||||
import com.sun.xml.internal.org.relaxng.datatype.*;
|
||||
|
||||
/**
|
||||
* Dummy implementation of {@link DatatypeBuilder}.
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* Copyright (c) 2001, Thai Open Source Software Center Ltd
|
||||
/*
|
||||
* Copyright (c) 2005, 2015, Thai Open Source Software Center Ltd
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -31,9 +31,10 @@
|
|||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package org.relaxng.datatype.helpers;
|
||||
|
||||
import org.relaxng.datatype.*;
|
||||
package com.sun.xml.internal.org.relaxng.datatype.helpers;
|
||||
|
||||
import com.sun.xml.internal.org.relaxng.datatype.*;
|
||||
|
||||
/**
|
||||
* Dummy implementation of {@link DatatypeStreamingValidator}.
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2015, 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
|
||||
|
@ -53,7 +53,7 @@ import com.sun.xml.internal.rngom.binary.SchemaPatternBuilder;
|
|||
import com.sun.xml.internal.rngom.parse.IllegalSchemaException;
|
||||
import com.sun.xml.internal.rngom.parse.host.ParsedPatternHost;
|
||||
import com.sun.xml.internal.rngom.parse.host.SchemaBuilderHost;
|
||||
import org.relaxng.datatype.DatatypeLibraryFactory;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeLibraryFactory;
|
||||
import org.xml.sax.ErrorHandler;
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2015, 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
|
||||
|
@ -47,7 +47,7 @@ package com.sun.xml.internal.rngom.binary;
|
|||
|
||||
import com.sun.xml.internal.rngom.binary.visitor.PatternFunction;
|
||||
import com.sun.xml.internal.rngom.binary.visitor.PatternVisitor;
|
||||
import org.relaxng.datatype.Datatype;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.Datatype;
|
||||
import org.xml.sax.Locator;
|
||||
|
||||
public class DataExceptPattern extends DataPattern {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2015, 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
|
||||
|
@ -47,7 +47,7 @@ package com.sun.xml.internal.rngom.binary;
|
|||
|
||||
import com.sun.xml.internal.rngom.binary.visitor.PatternFunction;
|
||||
import com.sun.xml.internal.rngom.binary.visitor.PatternVisitor;
|
||||
import org.relaxng.datatype.Datatype;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.Datatype;
|
||||
|
||||
public class DataPattern extends StringPattern {
|
||||
private Datatype dt;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2015, 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
|
||||
|
@ -75,13 +75,13 @@ import com.sun.xml.internal.rngom.parse.Context;
|
|||
import com.sun.xml.internal.rngom.parse.IllegalSchemaException;
|
||||
import com.sun.xml.internal.rngom.parse.Parseable;
|
||||
import com.sun.xml.internal.rngom.util.Localizer;
|
||||
import org.relaxng.datatype.Datatype;
|
||||
import org.relaxng.datatype.DatatypeBuilder;
|
||||
import org.relaxng.datatype.DatatypeException;
|
||||
import org.relaxng.datatype.DatatypeLibrary;
|
||||
import org.relaxng.datatype.DatatypeLibraryFactory;
|
||||
import org.relaxng.datatype.ValidationContext;
|
||||
import org.relaxng.datatype.helpers.DatatypeLibraryLoader;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.Datatype;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeBuilder;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeException;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeLibrary;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeLibraryFactory;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.ValidationContext;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.helpers.DatatypeLibraryLoader;
|
||||
import org.xml.sax.ErrorHandler;
|
||||
import org.xml.sax.Locator;
|
||||
import org.xml.sax.SAXException;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2015, 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
|
||||
|
@ -46,7 +46,7 @@
|
|||
package com.sun.xml.internal.rngom.binary;
|
||||
|
||||
import com.sun.xml.internal.rngom.nc.NameClass;
|
||||
import org.relaxng.datatype.Datatype;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.Datatype;
|
||||
import org.xml.sax.Locator;
|
||||
|
||||
public class SchemaPatternBuilder extends PatternBuilder {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2015, 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
|
||||
|
@ -47,7 +47,7 @@ package com.sun.xml.internal.rngom.binary;
|
|||
|
||||
import com.sun.xml.internal.rngom.binary.visitor.PatternFunction;
|
||||
import com.sun.xml.internal.rngom.binary.visitor.PatternVisitor;
|
||||
import org.relaxng.datatype.Datatype;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.Datatype;
|
||||
|
||||
public class ValuePattern extends StringPattern {
|
||||
Object obj;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2015, 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
|
||||
|
@ -47,7 +47,7 @@ package com.sun.xml.internal.rngom.binary.visitor;
|
|||
|
||||
import com.sun.xml.internal.rngom.binary.Pattern;
|
||||
import com.sun.xml.internal.rngom.nc.NameClass;
|
||||
import org.relaxng.datatype.Datatype;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.Datatype;
|
||||
|
||||
public interface PatternVisitor {
|
||||
void visitEmpty();
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2015, 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
|
||||
|
@ -47,7 +47,7 @@ package com.sun.xml.internal.rngom.binary.visitor;
|
|||
|
||||
import com.sun.xml.internal.rngom.binary.Pattern;
|
||||
import com.sun.xml.internal.rngom.nc.NameClass;
|
||||
import org.relaxng.datatype.Datatype;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.Datatype;
|
||||
|
||||
/**
|
||||
* Walks the pattern tree.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2015, 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
|
||||
|
@ -45,8 +45,8 @@
|
|||
*/
|
||||
package com.sun.xml.internal.rngom.dt;
|
||||
|
||||
import org.relaxng.datatype.DatatypeLibrary;
|
||||
import org.relaxng.datatype.DatatypeLibraryFactory;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeLibrary;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeLibraryFactory;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2015, 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
|
||||
|
@ -45,8 +45,8 @@
|
|||
*/
|
||||
package com.sun.xml.internal.rngom.dt;
|
||||
|
||||
import org.relaxng.datatype.DatatypeLibrary;
|
||||
import org.relaxng.datatype.DatatypeLibraryFactory;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeLibrary;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeLibraryFactory;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2015, 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
|
||||
|
@ -45,14 +45,14 @@
|
|||
*/
|
||||
package com.sun.xml.internal.rngom.dt;
|
||||
|
||||
import org.relaxng.datatype.DatatypeLibraryFactory;
|
||||
import org.relaxng.datatype.DatatypeLibrary;
|
||||
import org.relaxng.datatype.Datatype;
|
||||
import org.relaxng.datatype.DatatypeBuilder;
|
||||
import org.relaxng.datatype.DatatypeException;
|
||||
import org.relaxng.datatype.ValidationContext;
|
||||
import org.relaxng.datatype.DatatypeStreamingValidator;
|
||||
import org.relaxng.datatype.helpers.StreamingValidatorImpl;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeLibraryFactory;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeLibrary;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.Datatype;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeBuilder;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeException;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.ValidationContext;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeStreamingValidator;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.helpers.StreamingValidatorImpl;
|
||||
|
||||
/**
|
||||
* {@link DatatypeLibraryFactory} implementation
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2015, 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
|
||||
|
@ -45,10 +45,10 @@
|
|||
*/
|
||||
package com.sun.xml.internal.rngom.dt.builtin;
|
||||
|
||||
import org.relaxng.datatype.Datatype;
|
||||
import org.relaxng.datatype.DatatypeBuilder;
|
||||
import org.relaxng.datatype.DatatypeException;
|
||||
import org.relaxng.datatype.ValidationContext;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.Datatype;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeBuilder;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeException;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.ValidationContext;
|
||||
|
||||
import com.sun.xml.internal.rngom.util.Localizer;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2015, 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
|
||||
|
@ -45,11 +45,11 @@
|
|||
*/
|
||||
package com.sun.xml.internal.rngom.dt.builtin;
|
||||
|
||||
import org.relaxng.datatype.Datatype;
|
||||
import org.relaxng.datatype.DatatypeBuilder;
|
||||
import org.relaxng.datatype.DatatypeException;
|
||||
import org.relaxng.datatype.DatatypeLibrary;
|
||||
import org.relaxng.datatype.DatatypeLibraryFactory;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.Datatype;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeBuilder;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeException;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeLibrary;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeLibraryFactory;
|
||||
|
||||
import com.sun.xml.internal.rngom.xml.util.WellKnownNamespaces;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2015, 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
|
||||
|
@ -45,8 +45,8 @@
|
|||
*/
|
||||
package com.sun.xml.internal.rngom.dt.builtin;
|
||||
|
||||
import org.relaxng.datatype.DatatypeLibrary;
|
||||
import org.relaxng.datatype.DatatypeLibraryFactory;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeLibrary;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeLibraryFactory;
|
||||
|
||||
import com.sun.xml.internal.rngom.xml.util.WellKnownNamespaces;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2015, 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
|
||||
|
@ -45,11 +45,11 @@
|
|||
*/
|
||||
package com.sun.xml.internal.rngom.dt.builtin;
|
||||
|
||||
import org.relaxng.datatype.Datatype;
|
||||
import org.relaxng.datatype.DatatypeBuilder;
|
||||
import org.relaxng.datatype.DatatypeException;
|
||||
import org.relaxng.datatype.DatatypeLibrary;
|
||||
import org.relaxng.datatype.DatatypeLibraryFactory;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.Datatype;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeBuilder;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeException;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeLibrary;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.DatatypeLibraryFactory;
|
||||
import com.sun.xml.internal.rngom.xml.util.WellKnownNamespaces;
|
||||
|
||||
class CompatibilityDatatypeLibrary implements DatatypeLibrary {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2015, 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
|
||||
|
@ -46,7 +46,7 @@
|
|||
package com.sun.xml.internal.rngom.parse;
|
||||
|
||||
import java.util.Enumeration;
|
||||
import org.relaxng.datatype.ValidationContext;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.ValidationContext;
|
||||
|
||||
/**
|
||||
* Provides contextual information.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2015, 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
|
||||
|
@ -47,7 +47,7 @@ package com.sun.xml.internal.rngom.parse.xml;
|
|||
|
||||
import org.xml.sax.DTDHandler;
|
||||
import org.xml.sax.SAXException;
|
||||
import org.relaxng.datatype.ValidationContext;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.ValidationContext;
|
||||
|
||||
import java.util.Hashtable;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, 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
|
||||
|
@ -27,7 +27,7 @@ package com.sun.xml.internal.xsom;
|
|||
|
||||
import org.xml.sax.Attributes;
|
||||
import org.xml.sax.Locator;
|
||||
import org.relaxng.datatype.ValidationContext;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.ValidationContext;
|
||||
|
||||
/**
|
||||
* Foreign attributes on schema elements.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, 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
|
||||
|
@ -25,7 +25,7 @@
|
|||
|
||||
package com.sun.xml.internal.xsom;
|
||||
|
||||
import org.relaxng.datatype.ValidationContext;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.ValidationContext;
|
||||
|
||||
/**
|
||||
* String with in-scope namespace binding information.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, 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
|
||||
|
@ -26,7 +26,7 @@
|
|||
package com.sun.xml.internal.xsom.impl;
|
||||
|
||||
import com.sun.xml.internal.xsom.ForeignAttributes;
|
||||
import org.relaxng.datatype.ValidationContext;
|
||||
import com.sun.xml.internal.org.relaxng.datatype.ValidationContext;
|
||||
import org.xml.sax.Locator;
|
||||
import org.xml.sax.helpers.AttributesImpl;
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue