This commit is contained in:
Vladimir Danushevsky 2011-04-14 11:02:05 -04:00
commit 0ab6045255
2107 changed files with 55988 additions and 23272 deletions

View File

@ -109,3 +109,6 @@ d8af56da89bc0fc02a6b6ad78f51157a46d665ab jdk7-b131
d61280d36755d1941fb487f554e8b7a6d0bca6a1 jdk7-b132
fd444c61e7ed3d92b2a730da7c737b02191b682f jdk7-b133
def8e16dd237a47fc067d66d4c616d7baaec6001 jdk7-b134
f75a1efb141210901aabe00a834e0fc32bb8b337 jdk7-b135
46acf76a533954cfd594bb88fdea79938abfbe20 jdk7-b136
d1cf7d4ee16c341f5b8c7e7f1d68a8c412b6c693 jdk7-b137

View File

@ -109,3 +109,6 @@ cc58c11af15411042719e9c82707fdbef60a9e0f jdk7-b130
0f62a65fb666b337caa585015ab6ea2e60e709ca jdk7-b132
c6f380693342feadccc5fe2c5adf500e861361aa jdk7-b133
ddc2fcb3682ffd27f44354db666128827be7e3c3 jdk7-b134
783bd02b4ab4596059c74b10a1793d7bd2f1c157 jdk7-b135
2fe76e73adaa5133ac559f0b3c2c0707eca04580 jdk7-b136
7654afc6a29e43cb0a1343ce7f1287bf690d5e5f jdk7-b137

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1995, 2011, 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

View File

@ -1763,6 +1763,12 @@
Where each of these directories contain the import JDK image
for that platform.
</dd>
<dt><a name="ALT_OPENWIN_HOME"><tt>ALT_OPENWIN_HOME</tt></a></dt>
<dd>
The top-level directory of the libraries and include files for the platform's
graphical programming environment. The default location is platform specific.
For example, on Linux it defaults to <tt>/usr/X11R6/</tt>.
</dd>
<dt><strong>Windows specific:</strong></dt>
<dd>
<dl>
@ -1791,6 +1797,81 @@
</dd>
</dl>
</dd>
<dt><strong>Cross-Compilation Support:</strong></dt>
<dd>
<dl>
<dt><a name="CROSS_COMPILE_ARCH"><tt>CROSS_COMPILE_ARCH</tt></a> </dt>
<dd>
Set to the target architecture of a cross-compilation build. If set, this
variable is used to signify that we are cross-compiling. The expectation
is that <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> is set
to point to the cross-compiler and that any cross-compilation specific flags
are passed using <a href="#EXTRA_CFLAGS"><tt>EXTRA_CFLAGS</tt></a>.
The <a href="#ALT_OPENWIN_HOME"><tt>ALT_OPENWIN_HOME</tt></a> variable should
also be set to point to the graphical header files (e.g. X11) provided with
the cross-compiler.
When cross-compiling we skip execution of any demos etc that may be built, and
also skip binary-file verification.
</dd>
<dt><tt><a name="EXTRA_CFLAGS">EXTRA_CFLAGS</a></tt> </dt>
<dd>
Used to pass cross-compilation options to the cross-compiler.
These are added to the <tt>CFLAGS</tt> and <tt>CXXFLAGS</tt> variables.
</dd>
<dt><tt><a name="USE_ONLY_BOOTDIR_TOOLS">USE_ONLY_BOOTDIR_TOOLS</a></tt> </dt>
<dd>
Used primarily for cross-compilation builds (and always set in that case)
this variable indicates that tools from the boot JDK should be used during
the build process, not the tools (<tt>javac</tt>, <tt>javah</tt>, <tt>jar</tt>)
just built (which can't execute on the build host).
</dd>
<dt><tt><a name="HOST_CC">HOST_CC</a></tt> </dt>
<dd>
The location of the C compiler to generate programs to run on the build host.
Some parts of the build generate programs that are then compiled and executed
to produce other parts of the build. Normally the primary C compiler is used
to do this, but when cross-compiling that would be the cross-compiler and the
resulting program could not be executed.
On Linux this defaults to <tt>/usr/bin/gcc</tt>; on other platforms it must be
set explicitly.
</dd>
</dl>
<dt><strong>Specialized Build Options:</strong></dt>
<dd>
Some build variables exist to support specialized build environments and/or specialized
build products. Their use is only supported in those contexts:
<dl>
<dt><tt><a name="BUILD_CLIENT_ONLY">BUILD_CLIENT_ONLY</a></tt> </dt>
<dd>
Indicates this build will only contain the Hotspot client VM. In addition to
controlling the Hotspot build target, it ensures that we don't try to copy
any server VM files/directories, and defines a default <tt>jvm.cfg</tt> file
suitable for a client-only environment. Using this in a 64-bit build will
generate a sanity warning as 64-bit client builds are not directly supported.
</dd>
<dt><tt><a name="BUILD_HEADLESS_ONLY"></a>BUILD_HEADLESS_ONLY</tt> </dt>
<dd>
Used when the build environment has no graphical capabilities at all. This
excludes building anything that requires graphical libraries to be available.
</dd>
<dt><tt><a name="JAVASE_EMBEDDED"></a>JAVASE_EMBEDDED</tt> </dt>
<dd>
Used to indicate this is a build of the Oracle Java SE Embedded product.
This will enable the directives included in the SE-Embedded specific build
files.
</dd>
<dt><tt><a name="LIBZIP_CAN_USE_MMAP">LIBZIP_CAN_USE_MMAP</a></tt> </dt>
<dd>
If set to false, disables the use of mmap by the zip utility. Otherwise,
mmap will be used.
</dd>
<dt><tt><a name="COMPRESS_JARS"></a>COMPRESS_JARS</tt> </dt>
<dd>
If set to true, causes certain jar files that would otherwise be built without
compression, to use compression.
</dd>
</dl>
</dd>
</dl>
</blockquote>
<!-- ------------------------------------------------------ -->

View File

@ -109,3 +109,6 @@ d7532bcd3742f1576dd07ff9fbb535c9c9a276e9 jdk7-b126
1b1e75e8f476e5c07f0d2b035993895e2603e1f0 jdk7-b132
671fe2e623ffefb4b7c312be919fc71eb48c1df1 jdk7-b133
918003855fa0dba5acf4bf1fe36526d2fc4c1ba8 jdk7-b134
e0b72ae5dc5e824b342801c8d1d336a55eb54e2c jdk7-b135
48ef0c712e7cbf272f47f9224db92a3c6a9e2612 jdk7-b136
a66c01d8bf895261715955df0b95545c000ed6a8 jdk7-b137

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2000, 2011, 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

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2000, 2011, 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

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2000, 2011, 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

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2000, 2011, 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

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2000, 2011, 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

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2000, 2011, 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

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2000, 2011, 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

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2000, 2011, 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

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2000, 2011, 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

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2000, 2011, 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

View File

@ -1,5 +1,5 @@
;
; Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
; Copyright (c) 2003, 2011, 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

View File

@ -1,5 +1,5 @@
;
; Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
; Copyright (c) 2003, 2011, 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

View File

@ -1,5 +1,5 @@
;
; Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
; Copyright (c) 2003, 2011, 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

View File

@ -1,5 +1,5 @@
;
; Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
; Copyright (c) 2003, 2011, 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

View File

@ -1,5 +1,5 @@
;
; Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
; Copyright (c) 2003, 2011, 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

View File

@ -1,6 +1,6 @@
;
; Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
; Copyright (c) 2003, 2011, 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

View File

@ -1,5 +1,5 @@
;
; Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
; Copyright (c) 2003, 2011, 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

View File

@ -1,5 +1,5 @@
;
; Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
; Copyright (c) 2003, 2011, 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

View File

@ -64,97 +64,97 @@
#
# Translator: Start Translating
Compile.parsing=%0 \u3092\u69cb\u6587\u89e3\u6790\u4e2d
Compile.parseDone=\u5b8c\u4e86 - %0
Compile.generating=%0 \u3092\u751f\u6210\u4e2d
Compile.genDone=\u5b8c\u4e86 - %0
Deprecated.keyword=\u8b66\u544a: \u30ad\u30fc\u30ef\u30fc\u30c9 `%0' \u306f\u63a8\u5968\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
EvaluationException.1=%0 \u6f14\u7b97\u5b50\u306e\u30aa\u30da\u30e9\u30f3\u30c9 %1 \u3068 %2 \u304c\u4e00\u81f4\u3057\u3066\u3044\u307e\u305b\u3093\u3002
EvaluationException.2=%0 \u6f14\u7b97\u5b50\u306e\u30aa\u30da\u30e9\u30f3\u30c9\u306f %1 \u3067\u306f\u306a\u304f\u6570\u5024\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002
EvaluationException.or=\u30d3\u30c3\u30c8\u5358\u4f4d\u306e\u8ad6\u7406\u548c
EvaluationException.xor=\u30d3\u30c3\u30c8\u5358\u4f4d\u306e\u6392\u4ed6\u7684\u8ad6\u7406\u548c
EvaluationException.and=\u30d3\u30c3\u30c8\u5358\u4f4d\u306e\u8ad6\u7406\u7a4d
EvaluationException.plus=\u52a0\u7b97
EvaluationException.minus=\u6e1b\u7b97
EvaluationException.left=\u5de6\u30b7\u30d5\u30c8
EvaluationException.right=\u53f3\u30b7\u30d5\u30c8
EvaluationException.times=\u4e57\u7b97
EvaluationException.divide=\u9664\u7b97
EvaluationException.mod=\u30e2\u30b8\u30e5\u30ed
EvaluationException.pos=\u5358\u9805\u6b63\u6570
EvaluationException.neg=\u5358\u9805\u8ca0\u6570
EvaluationException.not=\u30d3\u30c3\u30c8\u5358\u4f4d\u306e\u5426\u5b9a
EvaluationException.booleanNot=\u30d6\u30fc\u30eb\u306e\u5426\u5b9a
EvaluationException.booleanAnd=\u30d6\u30fc\u30eb\u306e\u8ad6\u7406\u7a4d
EvaluationException.booleanOr=\u30d6\u30fc\u30eb\u306e\u8ad6\u7406\u548c
EvaluationException.equal=\u7b49\u4fa1
EvaluationException.notEqual=\u4e0d\u7b49\u4fa1
EvaluationException.greaterThan=\u5927\u304d\u3044
EvaluationException.lessThan=\u5c0f\u3055\u3044
EvaluationException.greaterEqual=\u5927\u304d\u3044\u304b\u7b49\u3057\u3044
EvaluationException.lessEqual=\u5c0f\u3055\u3044\u304b\u7b49\u3057\u3044
GenFileStream.1=%0 \u3092\u751f\u6210\u3067\u304d\u307e\u305b\u3093: %1
InvalidArgument.1=\u4e0d\u6b63\u306a\u5f15\u6570: %0
InvalidArgument.2=IDL \u30d5\u30a1\u30a4\u30eb\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
InvalidCharacter.1=%0 (%1 \u884c\u76ee): \u4e0d\u6b63\u306a\u6587\u5b57: %2 (ASCII %3).\n%4\n%5
Migration.futureKeyword=\u8b66\u544a: \u8b58\u5225\u5b50 `%0' \u304c\u30ad\u30fc\u30ef\u30fc\u30c9\u3068\u885d\u7a81\u3057\u3066\u3044\u307e\u3059\u3002\u4eca\u5f8c\u3082\u4e92\u63db\u6027\u3092\u4fdd\u3064\u305f\u3081\u306b\u306f\u62e1\u5f35\u8b58\u5225\u5b50\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002
Migration.keywordCollision=\u8b66\u544a: \u8b58\u5225\u5b50 `%0' \u304c\u30ad\u30fc\u30ef\u30fc\u30c9\u3068\u885d\u7a81\u3057\u3066\u3044\u307e\u3059\u3002\u4eca\u5f8c\u3082\u4e92\u63db\u6027\u3092\u4fdd\u3064\u305f\u3081\u306b\u306f\u62e1\u5f35\u8b58\u5225\u5b50\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002
ParseException.abstractValueBox=%0 (%1 \u884c\u76ee): \u5024\u30dc\u30c3\u30af\u30b9\u3092 abstract \u3067\u5ba3\u8a00\u3067\u304d\u307e\u305b\u3093\u3002\n%2\n%3
ParseException.alreadyDeclared=%0 (%1 \u884c\u76ee): %2 \u306f\u65e2\u306b\u5ba3\u8a00\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n%3\n%4
ParseException.declNotInSameFile=%0 (%1 \u884c\u76ee): %2 \u306f\u4ee5\u524d\u306b\u30d5\u30a1\u30a4\u30eb %3 \u306e\u524d\u65b9\u5ba3\u8a00\u306b\u5ba3\u8a00\u3055\u308c\u307e\u3057\u305f\u3002\n%4\n%5
ParseException.alreadyDerived=%0 (%1 \u884c\u76ee): %2 \u306f %3 \u306e\u89aa\u3068\u3057\u3066\u65e2\u306b\u5ba3\u8a00\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n%4\n%5
ParseException.alreadyDefaulted=%0 (%1 \u884c\u76ee): \u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u5206\u5c90\u306f\u65e2\u306b\u691c\u51fa\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n%2\n%3
ParseException.alreadyRaised=%0 (%1 \u884c\u76ee): %2 \u306f raises \u7bc0\u3067\u65e2\u306b\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n%3\n%4
ParseException.attributeNotType=%0 (%1 \u884c\u76ee): %2 \u306f\u5c5e\u6027\u3067\u3059\u3002\u578b\u3068\u3057\u3066\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n%3\n%4
ParseException.badAbstract=%0 (%1 \u884c\u76ee): %2 \u306e\u524d\u65b9\u306e\u5ba3\u8a00\u3068\u5b9f\u969b\u306e\u5ba3\u8a00\u304c\u4e00\u81f4\u3057\u307e\u305b\u3093\u3002\u4e00\u65b9\u306f abstract \u3067\u4ed6\u65b9\u306f\u305d\u308c\u3068\u7570\u306a\u308a\u307e\u3059\u3002\n%3\n%4
ParseException.badCustom=%0 (%1 \u884c\u76ee): \u524d\u65b9\u5024\u5ba3\u8a00\u3092 custom \u3067\u5ba3\u8a00\u3067\u304d\u307e\u305b\u3093\u3002\n%2\n%3
ParseException.badRepIDAlreadyAssigned=%0 (%1 \u884c\u76ee): \u578b %2 \u306f\u524d\u306e ID \u30d7\u30e9\u30b0\u30de\u6307\u793a\u306e\u30ea\u30dd\u30b8\u30c8\u30ea ID \u306b\u5272\u308a\u5f53\u3066\u3089\u308c\u3066\u3044\u307e\u3059\u3002\n%3\n%4
ParseException.badRepIDForm=%0 (%1 \u884c\u76ee): \u30ea\u30dd\u30b8\u30c8\u30ea ID '%2' \u306f '<format>:<string>' \u306e\u5f62\u5f0f\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002\n%3\n%4
ParseException.badRepIDPrefix=%0 (%1 \u884c\u76ee): \u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 %2 \u306e\u30ea\u30dd\u30b8\u30c8\u30ea ID \u306e\u63a5\u982d\u8f9e\u306f '%4' \u3067\u306a\u304f `%3' \u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002\n%5\n%6
ParseException.badState=%0 (%1 \u884c\u76ee): %2 \u3092\u72b6\u614b\u3092\u6301\u3063\u305f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306b\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u30022 \u3064\u4ee5\u4e0a\u306e\u72b6\u614b\u3092\u6301\u3063\u305f\u89aa\u304c\u3042\u308a\u307e\u3059\u3002\n%3\n%4
ParseException.branchLabel=%0 (%1 \u884c\u76ee): case %2 \u306f\u65e2\u306b\u5ba3\u8a00\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n%3\n%4
ParseException.branchName=%0 (%1 \u884c\u76ee): %2 \u3068\u3044\u3046\u5206\u5c90\u306f\u65e2\u306b\u5ba3\u8a00\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n%3\n%4
ParseException.duplicateInit=%0 (%1 \u884c\u76ee): \u521d\u671f\u5316\u5b50\u306e\u30b7\u30b0\u30cb\u30c1\u30e3\u30fc\u304c\u524d\u306e\u521d\u671f\u5316\u5b50\u3068\u540c\u3058\u3067\u3059\u3002\n%2\n%3
ParseException.duplicateState=%0 (%1 \u884c\u76ee): \u30c7\u30fc\u30bf\u30e1\u30f3\u30d0 %2 \u306e\u540d\u524d\u304c\u524d\u306e\u30c7\u30fc\u30bf\u30e1\u30f3\u30d0\u3068\u540c\u3058\u3067\u3059\u3002\n%3\n%4
ParseException.elseNoIf=%0 (%1 \u884c\u76ee): #if \u3068\u30de\u30c3\u30c1\u30f3\u30b0\u3057\u306a\u3044 #else \u304c\u691c\u51fa\u3055\u308c\u307e\u3057\u305f\u3002\n%2\n%3
ParseException.endNoIf=%0 (%1 \u884c\u76ee): #if \u3068\u30de\u30c3\u30c1\u30f3\u30b0\u3057\u306a\u3044 #endif \u304c\u691c\u51fa\u3055\u308c\u307e\u3057\u305f\u3002\n%2\n%3
ParseException.evaluation=%0 (%1 \u884c\u76ee): %2\n%3\n%4
ParseException.forwardEntry=%0 (%1 \u884c\u76ee): %2 \u3078\u306e\u524d\u65b9\u53c2\u7167\u304c\u3042\u308a\u307e\u3057\u305f\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\n%3\n%4
ParseException.forwardedValueBox=%0 (%1 \u884c\u76ee): %2 \u306b\u524d\u65b9\u5ba3\u8a00\u304c\u3042\u308a\u307e\u3059\u3002\u5024\u30dc\u30c3\u30af\u30b9\u3092\u524d\u65b9\u5ba3\u8a00\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n%3\n%4
ParseException.forwardInheritance=%0 (%1 \u884c\u76ee): %3 \u306e\u4e0d\u5b8c\u5168\u306a\u524d\u65b9\u5ba3\u8a00\u3092 %2 \u304c\u7d99\u627f\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n%4\n%5
ParseException.generic=%0 (%1 \u884c\u76ee): %2\n%3\n%4
ParseException.illegalArray=%0 (%1 \u884c\u76ee): %2 \u306e\u914d\u5217\u306e\u578b\u304c\u4e0d\u6b63\u3067\u3059\u3002\n%3\n%4
ParseException.illegalException=%0 (%1 \u884c\u76ee): %2 \u5185\u3067\u4f8b\u5916\u3092\u751f\u6210\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n%3\n%4
ParseException.invalidConst1=%0 (%1 \u884c\u76ee): \u5b9a\u6570\u5f0f\u306e\u578b\u306f %3 \u3067\u306f\u306a\u304f %2 \u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002\n%4\n%5
ParseException.invalidConst2=%0 (%1 \u884c\u76ee): \u5b9a\u6570\u5f0f\u5185\u306e\u8b58\u5225\u5b50\u306f %2 \u3067\u306f\u306a\u304f\u5b9a\u6570\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002\n%3\n%4
ParseException.keywordCollision=%0 (%1 \u884c\u76ee): \u8b58\u5225\u5b50 `%2' \u304c\u30ad\u30fc\u30ef\u30fc\u30c9\u3068\u885d\u7a81\u3057\u3066\u3044\u307e\u3059\u3002\u62e1\u5f35\u8b58\u5225\u5b50\u3092\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n%3\n%4
ParseException.methodClash=%0 (%1 \u884c\u76ee): \u30e1\u30bd\u30c3\u30c9\u540d\u304c\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 %2 \u3067\u885d\u7a81\u3057\u3066\u3044\u307e\u3059: %3.\n%4\n%5
ParseException.moduleNotType=%0 (%1 \u884c\u76ee): %2 \u306f\u30e2\u30b8\u30e5\u30fc\u30eb\u3067\u3059\u3002\u578b\u3068\u3057\u3066\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n%3\n%4
ParseException.nestedValueBox=%0 (%1 \u884c\u76ee): \u5024\u30dc\u30c3\u30af\u30b9\u3092\u5165\u308c\u5b50\u306b\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n%2\n%3
ParseException.noDefault=%0 (%1 \u884c\u76ee): \u8d77\u3053\u308a\u3046\u308b\u5168 case \u304c\u5b8c\u5168\u306b\u30ab\u30d0\u30fc\u3055\u308c\u3066\u3044\u306a\u3044\u9650\u308a\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u5206\u5c90\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n%2\n%3
ParseException.nonAbstractParent=%0 (%1 \u884c\u76ee): abstract \u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 %2 \u306f\u975e abstract \u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 %3 \u3092\u7d99\u627f\u3067\u304d\u307e\u305b\u3093\u3002\n%4\n%5
ParseException.nonAbstractParent2=%0 (%1 \u884c\u76ee): abstract \u5024 %2 \u306f\u975e abstract \u5024 %3 \u3092\u7d99\u627f\u3067\u304d\u307e\u305b\u3093\u3002\n%4\n%5
ParseException.nonAbstractParent3=%0 (%1 \u884c\u76ee): \u5024 %2 \u306f\u6307\u5b9a\u3055\u308c\u305f\u975e abstract \u5024 %3 \u3092\u7d99\u627f\u3067\u304d\u307e\u305b\u3093\u3002\n%4\n%5
ParseException.notANumber=%0 (%1 \u884c\u76ee): \u6570\u5024\u304c\u4e88\u671f\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u3002%2 \u306f\u4e0d\u6b63\u306a\u6570\u5024\u3067\u3059\u3002\n%3\n%4
ParseException.nothing=%0 \u306f\u7a7a\u3067\u3059\u3002\u30b3\u30f3\u30d1\u30a4\u30eb\u5bfe\u8c61\u304c\u5b58\u5728\u3057\u307e\u305b\u3093\u3002
ParseException.notPosInt=%0 (%1 \u884c\u76ee): %2 \u3067\u306f\u306a\u304f\u6b63\u306e\u6574\u6570\u5b9a\u6570\u304c\u4e88\u671f\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u3002\n%3\n%4
ParseException.oneway=%0 (%1 \u884c\u76ee): %2 \u306f\u7247\u65b9\u5411\u306b\u5ba3\u8a00\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u7247\u65b9\u5411\u30e1\u30bd\u30c3\u30c9\u306f\u3001void \u3092\u8fd4\u3059\u3053\u3068\u3001\u30d1\u30e9\u30e1\u30fc\u30bf\u5185\u3067 1 \u3064\u3060\u3051\u3067\u3042\u308b\u3053\u3068\u3001\u4f8b\u5916\u3092\u751f\u6210\u3057\u306a\u3044\u3053\u3068\u304c\u8981\u6c42\u3055\u308c\u307e\u3059\u3002\n%3\n%4
ParseException.operationNotType=%0 (%1 \u884c\u76ee): %2 \u306f\u6f14\u7b97\u5b50\u3067\u3059\u3002\u578b\u3068\u3057\u3066\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n%3\n%4
ParseException.outOfRange=%0 (%1 \u884c\u76ee): \u5b9a\u6570\u5f0f\u306e\u5024 %2 \u306f\u578b %3 \u306e\u7bc4\u56f2\u5916\u3067\u3059\u3002\n%4\n%5
ParseException.recursive=%0 (%1 \u884c\u76ee): \u6b63\u5f53\u306a\u518d\u5e30\u5b9a\u7fa9\u306f\u6b21\u306e\u3082\u306e\u3060\u3051\u3067\u3059: sequence<%2> %3.\n%4\n%5
ParseException.selfInherit=%0 (%1 \u884c\u76ee): %2 \u306f\u81ea\u8eab\u3092\u7d99\u627f\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n%3\n%4
ParseException.stringTooLong=%0 (%1 \u884c\u76ee): "%2" \u306f %3 \u6587\u5b57\u4ee5\u4e0a\u306e\u9577\u3055\u306b\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n%4\n%5
ParseException.syntax1=%0 (%1 \u884c\u76ee): `%2' \u304c\u4e88\u671f\u3055\u308c `%3' \u304c\u691c\u51fa\u3055\u308c\u307e\u3057\u305f\u3002\n%4\n%5
ParseException.syntax2=%0 (%1 \u884c\u76ee): %2 \u306e 1 \u3064\u304c\u4e88\u671f\u3055\u308c `%3'\u304c\u691c\u51fa\u3055\u308c\u307e\u3057\u305f\u3002\n%4\n%5
ParseException.unclosed=%0: \u30b3\u30e1\u30f3\u30c8\u5185\u306b\u4e88\u60f3\u5916\u306e EOF \u304c\u691c\u51fa\u3055\u308c\u307e\u3057\u305f\u3002
ParseException.undeclaredType=%0 (%1 \u884c\u76ee): %2 \u306f\u5ba3\u8a00\u3055\u308c\u3066\u3044\u306a\u3044\u578b\u3067\u3059\u3002\n%3\n%4
ParseException.warning=%0 (%1 \u884c\u76ee): %2\n%3\n%4
ParseException.constExprType=%0 (%1 \u884c\u76ee): \u5b9a\u6570\u5f0f\u306e\u578b\u306f %2 \u3067\u3059\u304c\u3001%3 \u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002\n%4\n%5
ParseException.wrongType=%0 (%1 \u884c\u76ee): %2 \u306e\u578b\u306f %3 \u3067\u3059\u304c %4 \u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002\n%5\n%6
ParseException.illegalIncompleteTypeReference=%0 (%1 \u884c\u76ee): \u578b %2 \u306e\u4e0d\u5b8c\u5168\u306a\u524d\u65b9\u5ba3\u8a00\u3078\u306e\u4e0d\u6b63\u306a\u53c2\u7167\u3067\u3059\u3002\n%3\n%4
Preprocessor.unknown=`%0'\u306f\u672a\u77e5\u306e\u30d7\u30ea\u30d7\u30ed\u30bb\u30c3\u30b5\u6307\u793a\u3067\u3059\u3002\u884c\u306f\u7121\u8996\u3055\u308c\u307e\u3059\u3002
Preprocessor.unknownPragma=`%0'\u306f\u672a\u77e5\u306e\u30d7\u30e9\u30b0\u30de\u3067\u3059\u3002\u884c\u306f\u7121\u8996\u3055\u308c\u307e\u3059\u3002
Preprocessor.undefinedName=%1 \u306f\u30d7\u30e9\u30b0\u30de %0 \u306e\u672a\u5b9a\u7fa9\u306e\u578b\u540d\u3067\u3059\u3002\u884c\u306f\u7121\u8996\u3055\u308c\u307e\u3059\u3002
Compile.parsing=%0\u306E\u89E3\u6790\u4E2D
Compile.parseDone=\u5B8C\u4E86 - %0
Compile.generating=%0\u306E\u751F\u6210\u4E2D
Compile.genDone=\u5B8C\u4E86 - %0
Deprecated.keyword=\u8B66\u544A: \u30AD\u30FC\u30EF\u30FC\u30C9`%0'\u306F\u63A8\u5968\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
EvaluationException.1=%0\u6F14\u7B97\u5B50\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306B\u4E00\u8CAB\u6027\u304C\u3042\u308A\u307E\u305B\u3093: %1\u304A\u3088\u3073%2\u3002
EvaluationException.2=%0\u6F14\u7B97\u5B50\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306F\u3001%1\u3067\u306F\u306A\u304F\u6570\u5024\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
EvaluationException.or=\u30D3\u30C3\u30C8\u5358\u4F4D\u306EOR\u6F14\u7B97
EvaluationException.xor=\u30D3\u30C3\u30C8\u5358\u4F4D\u306EXOR\u6F14\u7B97
EvaluationException.and=\u30D3\u30C3\u30C8\u5358\u4F4D\u306EAND\u6F14\u7B97
EvaluationException.plus=\u52A0\u7B97
EvaluationException.minus=\u6E1B\u7B97
EvaluationException.left=\u5DE6\u30B7\u30D5\u30C8
EvaluationException.right=\u53F3\u30B7\u30D5\u30C8
EvaluationException.times=\u4E57\u7B97
EvaluationException.divide=\u9664\u7B97
EvaluationException.mod=\u3079\u304D\u4E57
EvaluationException.pos=\u5358\u9805\u30D7\u30E9\u30B9
EvaluationException.neg=\u5358\u9805\u30DE\u30A4\u30CA\u30B9
EvaluationException.not=\u30D3\u30C3\u30C8\u5358\u4F4D\u306ENOT\u6F14\u7B97
EvaluationException.booleanNot=boolean NOT
EvaluationException.booleanAnd=boolean AND
EvaluationException.booleanOr=boolean OR
EvaluationException.equal=\u6B21\u3068\u7B49\u3057\u3044
EvaluationException.notEqual=\u6B21\u3068\u7B49\u3057\u304F\u306A\u3044
EvaluationException.greaterThan=\u304C\u6B21\u306E\u5024\u3088\u308A\u5927\u304D\u3044
EvaluationException.lessThan=\u304C\u6B21\u306E\u5024\u3088\u308A\u5C0F\u3055\u3044
EvaluationException.greaterEqual=\u304C\u6B21\u306E\u5024\u4EE5\u4E0A
EvaluationException.lessEqual=\u304C\u6B21\u306E\u5024\u4EE5\u4E0B
GenFileStream.1=%0\u3092\u751F\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: %1
InvalidArgument.1=\u5F15\u6570\u304C\u7121\u52B9\u3067\u3059: %0\u3002
InvalidArgument.2=IDL\u30D5\u30A1\u30A4\u30EB\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
InvalidCharacter.1=%0 (\u884C%1): \u6587\u5B57\u304C\u7121\u52B9\u3067\u3059: %2 (ASCII %3)\u3002\n%4\n%5
Migration.futureKeyword=\u8B66\u544A: \u8B58\u5225\u5B50`%0'\u304C\u30AD\u30FC\u30EF\u30FC\u30C9\u3068\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059\u3002\u5C06\u6765\u306E\u4E92\u63DB\u6027\u306E\u305F\u3081\u306B\u3001\u30A8\u30B9\u30B1\u30FC\u30D7\u3055\u308C\u305F\u8B58\u5225\u5B50\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002
Migration.keywordCollision=\u8B66\u544A: \u8B58\u5225\u5B50`%0'\u304C\u30AD\u30FC\u30EF\u30FC\u30C9\u3068\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059\u3002\u5C06\u6765\u306E\u4E92\u63DB\u6027\u306E\u305F\u3081\u306B\u3001\u30A8\u30B9\u30B1\u30FC\u30D7\u3055\u308C\u305F\u8B58\u5225\u5B50\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002
ParseException.abstractValueBox=%0 (\u884C%1): \u5024\u30DC\u30C3\u30AF\u30B9\u306Fabstract\u3068\u3057\u3066\u5BA3\u8A00\u3067\u304D\u307E\u305B\u3093\u3002\n%2\n%3
ParseException.alreadyDeclared=%0 (\u884C%1): %2\u306F\u3059\u3067\u306B\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u3059\u3002\n%3\n%4
ParseException.declNotInSameFile=%0 (\u884C%1): %2\u306F\u30D5\u30A1\u30A4\u30EB%3\u306Eforward\u5BA3\u8A00\u3067\u4EE5\u524D\u306B\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u3059\u3002\n%4\n%5
ParseException.alreadyDerived=%0 (\u884C%1): %2\u306F%3\u306E\u89AA\u3068\u3057\u3066\u3059\u3067\u306B\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u3059\u3002\n%4\n%5
ParseException.alreadyDefaulted=%0 (\u884C%1): \u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u5206\u5C90\u306F\u3059\u3067\u306B\u691C\u51FA\u3055\u308C\u3066\u3044\u307E\u3059\u3002\n%2\n%3
ParseException.alreadyRaised=%0 (\u884C%1): %2\u306Fraises\u53E5\u3067\u3059\u3067\u306B\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059\u3002\n%3\n%4
ParseException.attributeNotType=%0 (\u884C%1): %2\u306F\u5C5E\u6027\u3067\u3059\u3002\u578B\u3068\u3057\u3066\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002\n%3\n%4
ParseException.badAbstract=%0 (\u884C%1): %2\u306Eforward\u5BA3\u8A00\u3068\u5B9F\u969B\u306E\u5BA3\u8A00\u306B\u4E00\u8CAB\u6027\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u4E00\u65B9\u306Fabstract\u3067\u3059\u304C\u3001\u3082\u3046\u4E00\u65B9\u306Fabstract\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\n%3\n%4
ParseException.badCustom=%0 (\u884C%1): forward\u5024\u5BA3\u8A00\u306Fcustom\u3068\u3057\u3066\u5BA3\u8A00\u3067\u304D\u307E\u305B\u3093\u3002\n%2\n%3
ParseException.badRepIDAlreadyAssigned=%0 (\u884C%1): \u578B%2\u306B\u306F\u3001\u524D\u306EID\u30D7\u30E9\u30B0\u30DE\u30FB\u30C7\u30A3\u30EC\u30AF\u30C6\u30A3\u30D6\u306E\u30EA\u30DD\u30B8\u30C8\u30EAID\u304C\u3059\u3067\u306B\u5272\u308A\u5F53\u3066\u3089\u308C\u3066\u3044\u307E\u3059\u3002\n%3\n%4
ParseException.badRepIDForm=%0 (\u884C%1): \u30EA\u30DD\u30B8\u30C8\u30EAID '%2'\u306E\u5F62\u5F0F\u306F'<format>:<string>'\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n%3\n%4
ParseException.badRepIDPrefix=%0 (\u884C%1): \u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9%2\u306B\u306F\u3001'%4'\u3067\u306F\u306A\u304F\u30EA\u30DD\u30B8\u30C8\u30EAID\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9`%3'\u304C\u5FC5\u8981\u3067\u3059\u3002\n%5\n%6
ParseException.badState=%0 (\u884C%1): %2\u306F\u30B9\u30C6\u30FC\u30C8\u30D5\u30EB\u30FB\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306B\u3067\u304D\u307E\u305B\u3093\u3002\u8907\u6570\u306E\u30B9\u30C6\u30FC\u30C8\u30D5\u30EB\u89AA\u304C\u3042\u308A\u307E\u3059\u3002\n%3\n%4
ParseException.branchLabel=%0 (\u884C%1): case %2\u306F\u3059\u3067\u306B\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u3059\u3002\n%3\n%4
ParseException.branchName=%0 (\u884C%1): %2\u3068\u3044\u3046\u540D\u524D\u306E\u5206\u5C90\u306F\u3059\u3067\u306B\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u3059\u3002\n%3\n%4
ParseException.duplicateInit=%0 (\u884C%1): \u521D\u671F\u5316\u5B50\u306B\u306F\u524D\u306E\u521D\u671F\u5316\u5B50\u3068\u540C\u3058\u7F72\u540D\u304C\u3042\u308A\u307E\u3059\u3002\n%2\n%3
ParseException.duplicateState=%0 (\u884C%1): \u30C7\u30FC\u30BF\u30FB\u30E1\u30F3\u30D0\u30FC%2\u306E\u540D\u524D\u304C\u524D\u306E\u30C7\u30FC\u30BF\u30FB\u30E1\u30F3\u30D0\u30FC\u3068\u540C\u3058\u3067\u3059\u3002\n%3\n%4
ParseException.elseNoIf=%0 (\u884C%1): \u4E00\u81F4\u3059\u308B#if\u304C\u306A\u3044#else\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u3002\n%2\n%3
ParseException.endNoIf=%0 (\u884C%1): \u4E00\u81F4\u3059\u308B#if\u304C\u306A\u3044#endif\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u3002\n%2\n%3
ParseException.evaluation=%0 (\u884C%1): %2\n%3\n%4
ParseException.forwardEntry=%0 (\u884C%1): %2\u3078\u306E\u524D\u65B9\u53C2\u7167\u304C\u3042\u308A\u307E\u3059\u304C\u3001\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\n%3\n%4
ParseException.forwardedValueBox=%0 (\u884C%1): %2\u306B\u306Fforward\u5BA3\u8A00\u304C\u3042\u308A\u307E\u3059\u3002\u5024\u30DC\u30C3\u30AF\u30B9\u306Fforward\u3068\u3057\u3066\u5BA3\u8A00\u3067\u304D\u307E\u305B\u3093\u3002\n%3\n%4
ParseException.forwardInheritance=%0 (\u884C%1): %3\u306E\u4E0D\u5B8C\u5168\u306Aforward\u5BA3\u8A00\u304B\u3089\u306E%2\u306E\u7D99\u627F\u306F\u7121\u52B9\u3067\u3059\u3002\n%4\n%5
ParseException.generic=%0 (\u884C%1): %2\n%3\n%4
ParseException.illegalArray=%0 (\u884C%1): \u914D\u5217\u306F%2\u306E\u6B63\u3057\u3044\u578B\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\n%3\n%4
ParseException.illegalException=%0 (\u884C%1): \u4F8B\u5916\u3092%2s\u5185\u306B\u8868\u793A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002\n%3\n%4
ParseException.invalidConst1=%0 (\u884C%1): \u5B9A\u6570\u5F0F\u306F%3\u578B\u3067\u306F\u306A\u304F%2\u578B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n%4\n%5
ParseException.invalidConst2=%0 (\u884C%1): \u5B9A\u6570\u5F0F\u306E\u8B58\u5225\u5B50\u306F\u3001%2\u3067\u306F\u306A\u304F\u5B9A\u6570\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n%3\n%4
ParseException.keywordCollision=%0 (\u884C%1): \u8B58\u5225\u5B50`%2'\u304C\u30AD\u30FC\u30EF\u30FC\u30C9\u3068\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059\u3002\u5FC5\u8981\u306A\u5834\u5408\u306F\u30A8\u30B9\u30B1\u30FC\u30D7\u3055\u308C\u305F\u8B58\u5225\u5B50\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n%3\n%4
ParseException.methodClash=%0 (\u884C%1): \u30E1\u30BD\u30C3\u30C9\u540D\u304C\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9%2\u3067\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059: %3\u3002\n%4\n%5
ParseException.moduleNotType=%0 (\u884C%1): %2\u306F\u30E2\u30B8\u30E5\u30FC\u30EB\u3067\u3059\u3002\u578B\u3068\u3057\u3066\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002\n%3\n%4
ParseException.nestedValueBox=%0 (\u884C%1): \u5024\u30DC\u30C3\u30AF\u30B9\u306F\u30CD\u30B9\u30C8\u3067\u304D\u307E\u305B\u3093\u3002\n%2\n%3
ParseException.noDefault=%0 (\u884C%1): \u8003\u3048\u3089\u308C\u308B\u3059\u3079\u3066\u306Ecase\u304C\u5B8C\u5168\u306B\u9069\u7528\u3055\u308C\u308B\u5834\u5408\u3001\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u5206\u5C90\u306F\u8A31\u53EF\u3055\u308C\u307E\u305B\u3093\u3002\n%2\n%3
ParseException.nonAbstractParent=%0 (\u884C%1): abstract\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9%2\u306F\u975Eabstract\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9%3\u304B\u3089\u7D99\u627F\u3067\u304D\u307E\u305B\u3093\u3002\n%4\n%5
ParseException.nonAbstractParent2=%0 (\u884C%1): abstract\u5024%2\u306F\u975Eabstract\u5024%3\u304B\u3089\u7D99\u627F\u3067\u304D\u307E\u305B\u3093\u3002\n%4\n%5
ParseException.nonAbstractParent3=%0 (\u884C%1): \u5024%2\u306F\u6307\u5B9A\u3069\u304A\u308A\u306B\u975Eabstract\u5024%3\u304B\u3089\u7D99\u627F\u3067\u304D\u307E\u305B\u3093\u3002\n%4\n%5
ParseException.notANumber=%0 (\u884C%1): \u6570\u5024\u304C\u5FC5\u8981\u3067\u3059\u3002%2\u306F\u6709\u52B9\u306A\u6570\u5024\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\n%3\n%4
ParseException.nothing=%0\u306F\u7A7A\u3067\u3059\u3002\u30B3\u30F3\u30D1\u30A4\u30EB\u3059\u308B\u3082\u306E\u304C\u3042\u308A\u307E\u305B\u3093\u3002
ParseException.notPosInt=%0 (\u884C%1): %2\u3067\u306F\u306A\u304F\u6B63\u306E\u6574\u6570\u306E\u5B9A\u6570\u304C\u5FC5\u8981\u3067\u3059\u3002\n%3\n%4
ParseException.oneway=%0 (\u884C%1): %2\u306Foneway\u306B\u306A\u308B\u3088\u3046\u306B\u5BA3\u8A00\u3055\u308C\u307E\u3059\u3002oneway\u30E1\u30BD\u30C3\u30C9\u306F\u3001void\u3092\u8FD4\u3057\u3001\u30D1\u30E9\u30E1\u30FC\u30BF\u5185\u3067\u306E\u307F\u4F7F\u7528\u3057\u3001\u4F8B\u5916\u3092\u767A\u751F\u3057\u306A\u3044\u3088\u3046\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n%3\n%4
ParseException.operationNotType=%0 (\u884C%1): %2\u306F\u64CD\u4F5C\u3067\u3059\u3002\u578B\u3068\u3057\u3066\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002\n%3\n%4
ParseException.outOfRange=%0 (\u884C%1): \u5B9A\u6570\u5F0F\u306E\u5024%2\u304C\u578B%3\u306E\u7BC4\u56F2\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002\n%4\n%5
ParseException.recursive=%0 (\u884C%1): \u552F\u4E00\u306E\u6B63\u3057\u3044\u518D\u5E30\u7684\u5B9A\u7FA9\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059: \u30B7\u30FC\u30B1\u30F3\u30B9<%2> %3\u3002\n%4\n%5
ParseException.selfInherit=%0 (\u884C%1): %2\u3092\u305D\u308C\u81EA\u4F53\u304B\u3089\u7D99\u627F\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002\n%3\n%4
ParseException.stringTooLong=%0 (\u884C%1): "%2"\u306F%3\u6587\u5B57\u4EE5\u5185\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n%4\n%5
ParseException.syntax1=%0 (\u884C%1): `%2'\u304C\u5FC5\u8981\u3067\u3059\u304C\u3001`%3'\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u3002\n%4\n%5
ParseException.syntax2=%0 (\u884C%1): %2\u306E1\u3064\u304C\u5FC5\u8981\u3067\u3059\u304C\u3001`%3'\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u3002\n%4\n%5
ParseException.unclosed=%0: \u30B3\u30E1\u30F3\u30C8\u3067\u4E88\u671F\u3057\u306A\u3044EOF\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002
ParseException.undeclaredType=%0 (\u884C%1): %2\u306F\u5BA3\u8A00\u3055\u308C\u3066\u3044\u306A\u3044\u578B\u3067\u3059\u3002\n%3\n%4
ParseException.warning=%0 (\u884C%1): %2\n%3\n%4
ParseException.constExprType=%0 (\u884C%1): \u5B9A\u6570\u5F0F\u306E\u578B\u306F%2\u3067\u3059\u304C\u3001%3\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n%4\n%5
ParseException.wrongType=%0 (\u884C%1): %2\u306E\u578B\u306F%3\u3067\u3059\u304C\u3001%4\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n%5\n%6
ParseException.illegalIncompleteTypeReference=%0 (\u884C%1): %2\u578B\u306E\u4E0D\u5B8C\u5168\u306Aforward\u5BA3\u8A00\u3078\u306E\u7121\u52B9\u306A\u53C2\u7167\u3067\u3059\u3002\n%3\n%4
Preprocessor.unknown=\u4E0D\u660E\u306A\u30D7\u30EA\u30D7\u30ED\u30BB\u30C3\u30B5\u30FB\u30C7\u30A3\u30EC\u30AF\u30C6\u30A3\u30D6`%0'\u3067\u3059\u3002\u884C\u306F\u7121\u8996\u3055\u308C\u307E\u3057\u305F\u3002
Preprocessor.unknownPragma=\u4E0D\u660E\u306A\u30D7\u30E9\u30B0\u30DE`%0'\u3067\u3059\u3002\u884C\u306F\u7121\u8996\u3055\u308C\u307E\u3057\u305F\u3002
Preprocessor.undefinedName=\u30D7\u30E9\u30B0\u30DE%0\u306E\u578B\u540D\u304C\u672A\u5B9A\u7FA9\u3067\u3059: %1\u3002\u884C\u306F\u7121\u8996\u3055\u308C\u307E\u3057\u305F\u3002
Token.boolLit=<boolean literal>
Token.charLit=<character literal>
Token.intLit=<integer literal>
@ -164,32 +164,14 @@ Token.literal=<literal>
Token.identifier=<identifier>
Token.endOfFile=EOF
Token.unknown=?
Util.cantCreatePkg=\u30d1\u30c3\u30b1\u30fc\u30b8 %0 \u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3002
Version.product=IDL Parser Framework, \u30d0\u30fc\u30b8\u30e7\u30f3 "%0"
Version.number=3.0
default=\u30a8\u30e9\u30fc! \u5b58\u5728\u3057\u306a\u3044\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u8981\u6c42\u3055\u308c\u307e\u3057\u305f\u3002\u30e1\u30c3\u30bb\u30fc\u30b8\u30d5\u30a1\u30a4\u30eb\u306b\u30ad\u30fc\u304c\u3042\u308a\u307e\u305b\u3093: %0.
Util.cantCreatePkg=\u30D1\u30C3\u30B1\u30FC\u30B8%0\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3002
Version.product=IDL\u30D1\u30FC\u30B5\u30FC\u30FB\u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF\u3001\u30D0\u30FC\u30B8\u30E7\u30F3"%0"
Version.number=3.2
default=\u30A8\u30E9\u30FC\u3002\u5B58\u5728\u3057\u306A\u3044\u30E1\u30C3\u30BB\u30FC\u30B8\u304C\u30EA\u30AF\u30A8\u30B9\u30C8\u3055\u308C\u307E\u3057\u305F\u3002\u30E1\u30C3\u30BB\u30FC\u30B8\u30FB\u30D5\u30A1\u30A4\u30EB\u306B\u30AD\u30FC\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093: %0\u3002
# Translator: In the list of options below, do not translate:
# -i, -d, -keep, -emitAll, -noWarn, -v, -verbose, -version, #define
# Do not translate the string "java com.sun.tools.corba.se.idl.Compile"
usage=\u30b3\u30f3\u30d1\u30a4\u30e9\u306e\u4f7f\u3044\u65b9:\n\
\ java com.sun.tools.corba.se.idl.Compile [options] <idl file>\n\
<idl file> \u306f IDL \u5b9a\u7fa9\u304c\u683c\u7d0d\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d\u3067\u3059\u3002\n\
[options] \u306f\u4ee5\u4e0b\u306b\u793a\u3059\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u7d44\u307f\u5408\u308f\u305b\u3067\u3059\u3002\n\
\u3053\u308c\u3089\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u7701\u7565\u53ef\u80fd\u3067\u3001\u4efb\u610f\u306e\u9806\u5e8f\u3067\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002\n\
\u305f\u3060\u3057 <idl file> \u306f\u5fc5\u9808\u3067\u3001\u6700\u5f8c\u306b\u6307\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n\
\ \n\
\u30aa\u30d7\u30b7\u30e7\u30f3:\n\
-d <symbol> IDL \u30d5\u30a1\u30a4\u30eb\u5185\u306e\u6b21\u306e\u884c\u3068\u7b49\u4fa1:\n\
\ #define <symbol>\n\
-emitAll #included \u30d5\u30a1\u30a4\u30eb\u5185\u306e\u3082\u306e\u3092\u542b\u3080\u5168\u578b\u3092\n\
\ \u751f\u6210\u3059\u308b\n\
-i <include path> \u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u73fe\u5728\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u30d5\u30a1\u30a4\u30eb\u3092\u691c\u7d22\n\
\ \u3059\u308b\u3002\u305d\u308c\u4ee5\u5916\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f\u3053\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u8ffd\u52a0\u3059\u308b\n\
-keep \u751f\u6210\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u304c\u3059\u3067\u306b\u5b58\u5728\u3059\u308b\u5834\u5408\u3001\u65e2\u5b58\u306e\u30d5\u30a1\u30a4\u30eb\u3092\n\
\ \u4e0a\u66f8\u304d\u3057\u306a\u3044\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u4e0a\u66f8\u304d\u3059\u308b\n\
-noWarn \u8b66\u544a\u3092\u751f\u6210\u3057\u306a\u3044\n\
-v, -verbose \u8a73\u7d30\u30e2\u30fc\u30c9\n\
-version \u30d0\u30fc\u30b8\u30e7\u30f3\u756a\u53f7\u3092\u8868\u793a\u3059\u308b\n
usage=\u30B3\u30F3\u30D1\u30A4\u30E9\u306E\u4F7F\u7528\u65B9\u6CD5:\n\ java com.sun.tools.corba.se.idl.Compile [options] <idl file>\n<idl file>\u306FIDL\u5B9A\u7FA9\u3092\u542B\u3080\u30D5\u30A1\u30A4\u30EB\u306E\u540D\u524D\u3067\u3001\n[options]\u306F\u6B21\u306B\u30EA\u30B9\u30C8\u3059\u308B\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u7D44\u5408\u305B\u3067\u3059\u3002\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\n\u7701\u7565\u53EF\u80FD\u3067\u3001\u4EFB\u610F\u306E\u9806\u5E8F\u3067\u8868\u793A\u3055\u308C\u307E\u3059\u3002<idl file>\u306F\u5FC5\u9808\u3067\u3001\n\u6700\u5F8C\u306B\u8868\u793A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\ \n\u30AA\u30D7\u30B7\u30E7\u30F3:\n-d <symbol> IDL\u30D5\u30A1\u30A4\u30EB\u306E\u6B21\u306E\u884C\u3068\n\ \u540C\u3058\u3067\u3059: #define <symbol>\n-emitAll #included\u30D5\u30A1\u30A4\u30EB\u3067\u898B\u3064\u304B\u3063\u305F\u30BF\u30A4\u30D7\u3092\u542B\u3080\u3001\u3059\u3079\u3066\u306E\u30BF\u30A4\u30D7\u3092\n\ \u767A\u884C\u3057\u307E\u3059\u3002\n-i <include path> \u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u306F\u3001\u73FE\u5728\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u30A4\u30F3\u30AF\u30EB\u30FC\u30C9\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u304C\n\ \u30B9\u30AD\u30E3\u30F3\u3055\u308C\u307E\u3059\u3002\u3053\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u5225\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u8FFD\u52A0\u3057\u307E\u3059\u3002\n-keep \u751F\u6210\u3055\u308C\u308B\u30D5\u30A1\u30A4\u30EB\u304C\u3059\u3067\u306B\u5B58\u5728\u3059\u308B\u5834\u5408\u306F\u3001\u4E0A\u66F8\u304D\n\ \u3057\u307E\u305B\u3093\u3002\u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u306F\u4E0A\u66F8\u304D\u3055\u308C\u307E\u3059\u3002\n-noWarn \u8B66\u544A\u3092\u51FA\u3055\u306A\u3044\u3088\u3046\u306B\u3057\u307E\u3059\u3002\n-v, -verbose \u8A73\u7D30\u30E2\u30FC\u30C9\u3002\n-version \u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1999, 2009, 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
@ -64,132 +64,114 @@
#
# Translator: Start Translating
Compile.parsing=\u6b63\u5728\u89e3\u6790 %0
Compile.parseDone=\u5b8c\u6210--%0
Compile.generating=\u6b63\u5728\u751f\u6210 %0
Compile.genDone=\u5b8c\u6210--%0
Deprecated.keyword=\u8b66\u544a\uff1a\u5173\u952e\u5b57 `%0' \u5df2\u8fc7\u65f6\u3002
EvaluationException.1=%0 \u8fd0\u7b97\u7b26\u7684\u64cd\u4f5c\u6570\u4e0d\u4e00\u81f4\uff1a%1 \u548c %2\u3002
EvaluationException.2=%0 \u8fd0\u7b97\u7b26\u7684\u64cd\u4f5c\u6570\u5fc5\u987b\u4e3a\u6570\u5b57\uff0c\u800c\u975e %1\u3002
EvaluationException.or=\u6309\u4f4d or
EvaluationException.xor=\u6309\u4f4d xor
EvaluationException.and=\u6309\u4f4d and
EvaluationException.plus=\u52a0
EvaluationException.minus=\u51cf
EvaluationException.left=\u5411\u5de6\u79fb\u4f4d
EvaluationException.right=\u5411\u53f3\u79fb\u4f4d
EvaluationException.times=\u4e58
EvaluationException.divide=\u9664
EvaluationException.mod=\u5efa\u6a21
EvaluationException.pos=\u4e00\u5143\u6b63\u6570
EvaluationException.neg=\u4e00\u5143\u8d1f\u6570
EvaluationException.not=\u6309\u4f4d not
EvaluationException.booleanNot=\u5e03\u5c14\u503c not
EvaluationException.booleanAnd=\u5e03\u5c14\u503c and
EvaluationException.booleanOr=\u5e03\u5c14\u503c or
EvaluationException.equal=\u7b49\u4e8e
EvaluationException.notEqual=\u4e0d\u7b49\u4e8e
EvaluationException.greaterThan=\u5927\u4e8e
EvaluationException.lessThan=\u5c0f\u4e8e
EvaluationException.greaterEqual=\u5927\u4e8e\u6216\u7b49\u4e8e
EvaluationException.lessEqual=\u5c0f\u4e8e\u6216\u7b49\u4e8e
GenFileStream.1=\u65e0\u6cd5\u751f\u6210 {0}\uff1a%1
InvalidArgument.1=\u53c2\u6570\u65e0\u6548\uff1a%0\u3002
InvalidArgument.2=\u672a\u6307\u5b9a\u4efb\u4f55 IDL \u6587\u4ef6\u3002
InvalidCharacter.1=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u5b57\u7b26\u65e0\u6548\uff1a%2 (ASCII %3)\u3002\n%4\n%5
Migration.futureKeyword=\u8b66\u544a\uff1a\u6807\u8bc6\u7b26 `%0' \u4e0e\u5173\u952e\u5b57\u51b2\u7a81\uff0c\u8bf7\u4f7f\u7528\u6362\u7801\u7684\u6807\u8bc6\u7b26\u786e\u4fdd\u4ee5\u540e\u7684\u517c\u5bb9\u6027\u3002
Migration.keywordCollision=\u8b66\u544a\uff1a\u6807\u8bc6\u7b26 `%0' \u4e0e\u5173\u952e\u5b57\u51b2\u7a81\uff0c\u8bf7\u4f7f\u7528\u6362\u7801\u7684\u6807\u8bc6\u7b26\u786e\u4fdd\u4ee5\u540e\u7684\u517c\u5bb9\u6027\u3002
ParseException.abstractValueBox=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u65e0\u6cd5\u5c06\u503c\u6846\u58f0\u660e\u4e3a\u62bd\u8c61\u3002\n%2\n%3
ParseException.alreadyDeclared=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u5df2\u58f0\u660e %2\u3002\n%3\n%4
ParseException.declNotInSameFile=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u4ee5\u524d\u5df2\u5728\u6587\u4ef6 %3 \u7684\u5411\u524d\u58f0\u660e\u4e2d\u58f0\u660e\u4e86 %2\u3002\n%4\n%5
ParseException.alreadyDerived=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u5df2\u5c06 %2 \u58f0\u660e\u4e3a %3 \u7684\u7236\u9879\u3002\n%4\n%5
ParseException.alreadyDefaulted=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u9047\u5230\u9ed8\u8ba4\u5206\u652f\u3002\n%2\n%3
ParseException.alreadyRaised=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u5df2\u5728 raises \u5b50\u53e5\u4e2d\u6307\u5b9a\u4e86 %2\u3002\n%3\n%4
ParseException.attributeNotType=%0\uff08\u7b2c %1 \u884c\uff09\uff1a%2 \u4e3a\u5c5e\u6027\u3002\u4e0d\u80fd\u5c06\u5176\u7528\u4f5c\u7c7b\u578b\u3002\n%3\n%4
ParseException.badAbstract=%0\uff08\u7b2c %1 \u884c\uff09\uff1a%2 \u7684\u5411\u524d\u548c\u5b9e\u9645\u58f0\u660e\u4e0d\u4e00\u81f4\u3002\u5176\u4e2d\u4e00\u4e2a\u662f\u62bd\u8c61\u58f0\u660e\uff0c\u800c\u53e6\u4e00\u4e2a\u5374\u4e0d\u662f\u3002\n%3\n%4
ParseException.badCustom=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u65e0\u6cd5\u81ea\u5b9a\u4e49\u58f0\u660e\u5411\u524d\u503c\u58f0\u660e\u3002\n%2\n%3
ParseException.badRepIDAlreadyAssigned=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u5728\u4ee5\u524d\u7684 ID pragma \u6307\u4ee4\u4e2d\u5df2\u5411\u7c7b\u578b %2 \u6307\u5b9a\u4e86\u7cfb\u7edf\u4fe1\u606f\u5e93 ID\u3002\n%3\n%4
ParseException.badRepIDForm=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u7cfb\u7edf\u4fe1\u606f\u5e93 ID '%2' \u7684\u683c\u5f0f\u5e94\u4e3a '<\u683c\u5f0f>:<\u5b57\u7b26\u4e32>'\u3002\n%3\n%4
ParseException.badRepIDPrefix=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u63a5\u53e3 %2 \u7684\u7cfb\u7edf\u4fe1\u606f\u5e93 ID \u524d\u7f00\u5e94\u4e3a `%3' \u800c\u975e '%4'\u3002\n%5\n%6
ParseException.badState=%0\uff08\u7b2c %1 \u884c\uff09\uff1a%2 \u4e0d\u80fd\u4e3a\u6709\u72b6\u6001\u63a5\u53e3\uff1b\u5b83\u5177\u6709\u591a\u4e2a\u6709\u72b6\u6001\u7236\u63a5\u53e3\u3002\n%3\n%4
ParseException.branchLabel=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u5df2\u58f0\u660e\u6761\u4ef6 %2\u3002\n%3\n%4
ParseException.branchName=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u5df2\u58f0\u660e\u540d\u4e3a %2 \u7684\u5206\u652f\u3002\n%3\n%4
ParseException.duplicateInit=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u521d\u59cb\u5316\u7a0b\u5e8f\u4e0e\u4ee5\u524d\u7684\u521d\u59cb\u5316\u7a0b\u5e8f\u5177\u6709\u76f8\u540c\u7684\u7b7e\u540d\u3002\n%2\n%3
ParseException.duplicateState=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u6570\u636e\u6210\u5458 %2 \u4e0e\u4ee5\u524d\u7684\u6570\u636e\u6210\u5458\u5177\u6709\u76f8\u540c\u7684\u540d\u79f0\u3002\n%3\n%4
ParseException.elseNoIf=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u9047\u5230\u7684 #else \u6ca1\u6709\u5339\u914d\u7684 #if\u3002\n%2\n%3
ParseException.endNoIf=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u9047\u5230\u7684 #endif \u6ca1\u6709\u5339\u914d\u7684 #if\u3002\n%2\n%3
ParseException.evaluation=%0\uff08\u7b2c %1 \u884c\uff09\uff1a %2\n%3\n%4
ParseException.forwardEntry=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u5b58\u5728\u5bf9 %2 \u7684\u5411\u524d\u5f15\u7528\uff0c\u4f46\u5c1a\u672a\u8fdb\u884c\u5b9a\u4e49\u3002\n%3\n%4
ParseException.forwardedValueBox=%0\uff08\u7b2c %1 \u884c\uff09\uff1a%2 \u5177\u6709\u5411\u524d\u58f0\u660e\u3002\u65e0\u6cd5\u5411\u524d\u58f0\u660e\u503c\u6846\u3002\n%3\n%4
ParseException.forwardInheritance=%0\uff08\u7b2c %1 \u884c\uff09\uff1a%2 \u4ece %3 \u7684\u4e0d\u5b8c\u6574\u7684\u5411\u524d\u58f0\u660e\u8fdb\u884c\u7ee7\u627f\u662f\u975e\u6cd5\u7684\u3002\n%4\n%5
ParseException.generic=%0\uff08\u7b2c %1 \u884c\uff09\uff1a %2\n%3\n%4
ParseException.illegalArray=%0\uff08\u7b2c %1 \u884c\uff09\uff1a%2 \u4e2d\u7684\u6570\u7ec4\u7684\u7c7b\u578b\u4e0d\u5408\u6cd5\u3002\n%3\n%4
ParseException.illegalException=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u5f02\u5e38\u4e0d\u80fd\u663e\u793a\u5728 %2 \u4e2d\u3002\n%3\n%4
ParseException.invalidConst1=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u5e38\u91cf\u8868\u8fbe\u5f0f\u7684\u7c7b\u578b\u5fc5\u987b\u4e3a %2\uff0c\u800c\u4e0d\u80fd\u4e3a %3\u3002\n%4\n%5
ParseException.invalidConst2=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u5e38\u91cf\u8868\u8fbe\u5f0f\u4e2d\u7684\u6807\u8bc6\u7b26\u5fc5\u987b\u4e3a\u5e38\u91cf\uff0c\u800c\u4e0d\u80fd\u4e3a %2\u3002\n%3\n%4
ParseException.keywordCollision=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u6807\u8bc6\u7b26 `%2' \u4e0e\u5173\u952e\u5b57\u51b2\u7a81\uff1b\u5982\u679c\u9700\u8981\uff0c\u8bf7\u4f7f\u7528\u6362\u7801\u7684\u6807\u8bc6\u7b26\u3002\n%3\n%4
ParseException.methodClash=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u63a5\u53e3 %2 \u4e2d\u7684\u65b9\u6cd5\u540d\u51b2\u7a81\uff1a%3\u3002\n%4\n%5
ParseException.moduleNotType=%0\uff08\u7b2c %1 \u884c\uff09\uff1a%2 \u4e3a\u6a21\u5757\u3002\u4e0d\u80fd\u5c06\u5176\u7528\u4f5c\u7c7b\u578b\u3002\n%3\n%4
ParseException.nestedValueBox=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u503c\u6846\u4e0d\u80fd\u5d4c\u5957\u3002\n%2\n%3
ParseException.noDefault=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u6ee1\u8db3\u6240\u6709\u53ef\u80fd\u60c5\u51b5\u65f6\uff0c\u4e0d\u5141\u8bb8\u4f7f\u7528\u9ed8\u8ba4\u5206\u652f\u3002\n%2\n%3
ParseException.nonAbstractParent=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u62bd\u8c61\u63a5\u53e3 %2 \u4e0d\u80fd\u4ece\u975e\u62bd\u8c61\u63a5\u53e3 %3 \u8fdb\u884c\u7ee7\u627f\u3002\n%4\n%5
ParseException.nonAbstractParent2=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u62bd\u8c61\u503c %2 \u4e0d\u80fd\u4ece\u975e\u62bd\u8c61\u503c %3 \u8fdb\u884c\u7ee7\u627f\u3002\n%4\n%5
ParseException.nonAbstractParent3=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u503c %2 \u65e0\u6cd5\u6309\u6307\u5b9a\u7684\u90a3\u6837\u4ece\u975e\u62bd\u8c61\u503c %3 \u8fdb\u884c\u7ee7\u627f\u3002\n%4\n%5
ParseException.notANumber=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u9700\u8981\u6570\u5b57\u3002%2 \u4e0d\u662f\u6709\u6548\u6570\u5b57\u3002\n%3\n%4
ParseException.nothing=%0 \u4e3a\u7a7a\u3002\u65e0\u7f16\u8bd1\u5185\u5bb9\u3002
ParseException.notPosInt=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u9700\u8981\u6b63\u6574\u6570\u5e38\u91cf\uff0c\u800c\u4e0d\u662f %2\u3002\n%3\n%4
ParseException.oneway=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u5c06 %2 \u58f0\u660e\u4e3a oneway\u3002Oneway \u65b9\u6cd5\u5fc5\u987b\uff1a\u8fd4\u56de void\uff1b\u4ec5\u5728\u53c2\u6570\u4e2d\u624d\u6709\uff1b\u4e0d\u4f1a\u51fa\u73b0\u4efb\u4f55\u5f02\u5e38\u3002\n%3\n%4
ParseException.operationNotType=%0\uff08\u7b2c %1 \u884c\uff09\uff1a%2 \u4e3a\u64cd\u4f5c\u3002\u4e0d\u80fd\u5c06\u5176\u7528\u4f5c\u7c7b\u578b\u3002\n%3\n%4
ParseException.outOfRange=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u5e38\u91cf\u8868\u8fbe\u5f0f\u7684\u503c %2 \u8d85\u51fa\u4e86\u7c7b\u578b %3 \u7684\u8303\u56f4\u3002\n%4\n%5
ParseException.recursive=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u552f\u4e00\u7684\u5408\u6cd5\u9012\u5f52\u5b9a\u4e49\u4e3a\uff1asequence<%2> %3\u3002\n%4\n%5
ParseException.selfInherit=%0\uff08\u7b2c %1 \u884c\uff09\uff1a%2 \u4e0d\u80fd\u4ece\u5176\u672c\u8eab\u8fdb\u884c\u7ee7\u627f\u3002\n%3\n%4
ParseException.stringTooLong=%0\uff08\u7b2c %1 \u884c\uff09\uff1a"%2" \u7684\u957f\u5ea6\u4e0d\u80fd\u8d85\u8fc7 %3 \u4e2a\u5b57\u7b26\u3002\n%4\n%5
ParseException.syntax1=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u9700\u8981 `%2'\uff0c\u800c\u9047\u5230 `%3'\u3002\n%4\n%5
ParseException.syntax2=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u9700\u8981\u5176\u4e2d\u4e00\u4e2a `%2'\uff0c\u800c\u9047\u5230 `%3'\u3002\n%4\n%5
ParseException.unclosed=%0\uff1a\u5728\u6ce8\u91ca\u4e2d\u9047\u5230\u610f\u5916\u7684\u6587\u4ef6\u7ed3\u5c3e\u3002
ParseException.undeclaredType=%0\uff08\u7b2c %1 \u884c\uff09\uff1a%2 \u662f\u672a\u58f0\u660e\u7684\u7c7b\u578b\u3002\n%3\n%4
ParseException.warning=%0\uff08\u7b2c %1 \u884c\uff09\uff1a %2\n%3\n%4
ParseException.constExprType=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u5e38\u91cf\u8868\u8fbe\u5f0f\u7684\u7c7b\u578b\u4e3a %2\uff0c\u4f46\u662f\u5b83\u5e94\u8be5\u4e3a %3\u3002\n%4\n%5
ParseException.wrongType=%0\uff08\u7b2c %1 \u884c\uff09\uff1a%2 \u7684\u7c7b\u578b\u4e3a %3\uff0c\u4f46\u662f\u5b83\u5e94\u8be5\u4e3a %4\u3002\n%5\n%6
ParseException.illegalIncompleteTypeReference=%0\uff08\u7b2c %1 \u884c\uff09\uff1a\u5bf9\u7c7b\u578b %2 \u7684\u4e0d\u5b8c\u6574\u5411\u524d\u58f0\u660e\u7684\u5f15\u7528\u975e\u6cd5\u3002\n%3\n%4
Preprocessor.unknown=\u672a\u77e5\u9884\u5904\u7406\u7a0b\u5e8f\u6307\u4ee4 `%0'\u3002\u5ffd\u7565\u884c\u3002
Preprocessor.unknownPragma=\u672a\u77e5 pragma `%0'\u3002\u5ffd\u7565\u884c\u3002
Preprocessor.undefinedName=pragma %0 \u7684\u672a\u5b9a\u4e49\u7c7b\u578b\u540d\uff1a%1\u3002 \u5ffd\u7565\u884c\u3002
Token.boolLit=<\u5e03\u5c14\u503c\u5b57\u9762\u503c>
Token.charLit=<\u5b57\u7b26\u5b57\u9762\u503c>
Token.intLit=<\u6574\u578b\u5b57\u9762\u503c>
Token.floatLit=<\u6d6e\u70b9\u5b57\u9762\u503c>
Token.stringLit=<\u5b57\u7b26\u4e32\u5b57\u9762\u503c>
Token.literal=<\u5b57\u9762\u503c>
Token.identifier=<\u6807\u8bc6\u7b26>
Compile.parsing=\u6B63\u5728\u5BF9 %0 \u8FDB\u884C\u8BED\u6CD5\u5206\u6790
Compile.parseDone=\u5B8C\u6210 - %0
Compile.generating=\u6B63\u5728\u751F\u6210 %0
Compile.genDone=\u5B8C\u6210 - %0
Deprecated.keyword=\u8B66\u544A: \u5173\u952E\u5B57 `%0' \u5DF2\u8FC7\u65F6\u3002
EvaluationException.1=%0 \u8FD0\u7B97\u7B26\u7684\u64CD\u4F5C\u6570\u4E0D\u4E00\u81F4: %1 \u548C %2\u3002
EvaluationException.2=%0 \u8FD0\u7B97\u7B26\u7684\u64CD\u4F5C\u6570\u5FC5\u987B\u662F\u6570\u5B57, \u800C\u4E0D\u662F %1\u3002
EvaluationException.or=\u6309\u4F4D\u6216
EvaluationException.xor=\u6309\u4F4D\u5F02\u6216
EvaluationException.and=\u6309\u4F4D\u4E0E
EvaluationException.plus=\u6DFB\u52A0
EvaluationException.minus=\u51CF\u6CD5
EvaluationException.left=\u5411\u5DE6\u79FB\u4F4D
EvaluationException.right=\u5411\u53F3\u79FB\u4F4D
EvaluationException.times=\u4E58\u6CD5
EvaluationException.divide=\u9664\u6CD5
EvaluationException.mod=\u53D6\u6A21
EvaluationException.pos=\u4E00\u5143\u6B63\u6570
EvaluationException.neg=\u4E00\u5143\u8D1F\u6570
EvaluationException.not=\u6309\u4F4D\u975E
EvaluationException.booleanNot=\u5E03\u5C14\u975E
EvaluationException.booleanAnd=\u5E03\u5C14\u4E0E
EvaluationException.booleanOr=\u5E03\u5C14\u6216
EvaluationException.equal=\u7B49\u4E8E
EvaluationException.notEqual=\u4E0D\u7B49\u4E8E
EvaluationException.greaterThan=\u5927\u4E8E
EvaluationException.lessThan=\u5C0F\u4E8E
EvaluationException.greaterEqual=\u5927\u4E8E\u7B49\u4E8E
EvaluationException.lessEqual=\u5C0F\u4E8E\u7B49\u4E8E
GenFileStream.1=\u65E0\u6CD5\u751F\u6210%0: %1
InvalidArgument.1=\u53C2\u6570\u65E0\u6548: %0\u3002
InvalidArgument.2=\u672A\u6307\u5B9A IDL \u6587\u4EF6\u3002
InvalidCharacter.1=%0 (\u884C %1): \u5B57\u7B26\u65E0\u6548: %2 (ASCII %3)\u3002\n%4\n%5
Migration.futureKeyword=\u8B66\u544A: \u6807\u8BC6\u7B26 `%0' \u4E0E\u5173\u952E\u5B57\u51B2\u7A81; \u8BF7\u4F7F\u7528\u8F6C\u4E49\u6807\u8BC6\u7B26\u4EE5\u786E\u4FDD\u5C06\u6765\u517C\u5BB9\u3002
Migration.keywordCollision=\u8B66\u544A: \u6807\u8BC6\u7B26 `%0' \u4E0E\u5173\u952E\u5B57\u51B2\u7A81; \u8BF7\u4F7F\u7528\u8F6C\u4E49\u6807\u8BC6\u7B26\u4EE5\u786E\u4FDD\u5C06\u6765\u517C\u5BB9\u3002
ParseException.abstractValueBox=%0 (\u884C %1): \u4E0D\u80FD\u5C06\u503C\u6846\u58F0\u660E\u4E3A\u62BD\u8C61\u3002\n%2\n%3
ParseException.alreadyDeclared=%0 (\u884C %1): %2\u5DF2\u58F0\u660E\u3002\n%3\n%4
ParseException.declNotInSameFile=%0 (\u884C %1): %2\u4EE5\u524D\u66FE\u5728\u6587\u4EF6%3\u7684\u524D\u5411\u58F0\u660E\u4E2D\u58F0\u660E\u3002\n%4\n%5
ParseException.alreadyDerived=%0 (\u884C %1): %2\u5DF2\u58F0\u660E\u4E3A%3\u7684\u7236\u7EA7\u3002\n%4\n%5
ParseException.alreadyDefaulted=%0 (\u884C %1): \u5DF2\u9047\u5230\u9ED8\u8BA4\u5206\u652F\u3002\n%2\n%3
ParseException.alreadyRaised=%0 (\u884C %1): %2\u5DF2\u5728 raise \u5B50\u53E5\u4E2D\u6307\u5B9A\u3002\n%3\n%4
ParseException.attributeNotType=%0 (\u884C %1): %2 \u662F\u5C5E\u6027\u3002\u4E0D\u80FD\u5C06\u5176\u7528\u4F5C\u7C7B\u578B\u3002\n%3\n%4
ParseException.badAbstract=%0 (\u884C %1): %2\u7684\u524D\u5411\u58F0\u660E\u548C\u5B9E\u9645\u58F0\u660E\u4E0D\u4E00\u81F4\u3002\u4E00\u4E2A\u662F\u62BD\u8C61\u7684, \u800C\u53E6\u4E00\u4E2A\u4E0D\u662F\u62BD\u8C61\u7684\u3002\n%3\n%4
ParseException.badCustom=%0 (\u884C %1): \u65E0\u6CD5\u5C06\u524D\u5411\u503C\u58F0\u660E\u58F0\u660E\u4E3A\u5B9A\u5236\u3002\n%2\n%3
ParseException.badRepIDAlreadyAssigned=%0 (\u884C %1): \u5DF2\u5728\u4E0A\u4E00\u4E2A ID \u7F16\u8BD1\u6307\u793A\u6307\u4EE4\u4E2D\u4E3A\u7C7B\u578B%2\u5206\u914D\u4E86\u8D44\u6599\u6863\u6848\u5E93 ID\u3002\n%3\n%4
ParseException.badRepIDForm=%0 (\u884C %1): \u8D44\u6599\u6863\u6848\u5E93 ID '%2' \u7684\u683C\u5F0F\u5E94\u4E3A '<format>:<string>'\u3002\n%3\n%4
ParseException.badRepIDPrefix=%0 (\u884C %1): \u63A5\u53E3 %2 \u7684\u8D44\u6599\u6863\u6848\u5E93 ID \u524D\u7F00\u5E94\u4E3A `%3', \u800C\u975E '%4'\u3002\n%5\n%6
ParseException.badState=%0 (\u884C %1): %2 \u4E0D\u80FD\u662F\u6709\u72B6\u6001\u63A5\u53E3; \u5B83\u5305\u542B\u591A\u4E2A\u6709\u72B6\u6001\u7236\u7EA7\u3002\n%3\n%4
ParseException.branchLabel=%0 (\u884C %1): case %2\u5DF2\u58F0\u660E\u3002\n%3\n%4
ParseException.branchName=%0 (\u884C %1): \u540D\u4E3A%2\u7684\u5206\u652F\u5DF2\u58F0\u660E\u3002\n%3\n%4
ParseException.duplicateInit=%0 (\u884C %1): \u67D0\u4E2A\u521D\u59CB\u5316\u7A0B\u5E8F\u4E0E\u4E0A\u4E00\u4E2A\u521D\u59CB\u5316\u7A0B\u5E8F\u5177\u6709\u76F8\u540C\u7684\u7B7E\u540D\u3002\n%2\n%3
ParseException.duplicateState=%0 (\u884C %1): \u6570\u636E\u6210\u5458 %2 \u4E0E\u4E0A\u4E00\u4E2A\u6570\u636E\u6210\u5458\u5177\u6709\u76F8\u540C\u7684\u540D\u79F0\u3002\n%3\n%4
ParseException.elseNoIf=%0 (\u884C %1): \u9047\u5230\u4E86 #else, \u4F46\u6CA1\u6709\u5339\u914D\u7684 #if\u3002\n%2\n%3
ParseException.endNoIf=%0 (\u884C %1): \u9047\u5230\u4E86 #endif, \u4F46\u6CA1\u6709\u5339\u914D\u7684 #if\u3002\n%2\n%3
ParseException.evaluation=%0 (\u884C %1): %2\n%3\n%4
ParseException.forwardEntry=%0 (\u884C %1): \u5B58\u5728\u9488\u5BF9%2\u7684\u524D\u5411\u5F15\u7528, \u4F46\u5B83\u5C1A\u672A\u5B9A\u4E49\u3002\n%3\n%4
ParseException.forwardedValueBox=%0 (\u884C %1): %2 \u5177\u6709\u524D\u5411\u58F0\u660E\u3002\u4E0D\u80FD\u5BF9\u503C\u6846\u8FDB\u884C\u524D\u5411\u58F0\u660E\u3002\n%3\n%4
ParseException.forwardInheritance=%0 (\u884C %1): \u5BF9\u4E8E%2, \u4ECE%3\u7684\u4E0D\u5B8C\u6574\u524D\u5411\u58F0\u660E\u8FDB\u884C\u7EE7\u627F\u662F\u975E\u6CD5\u7684\u3002\n%4\n%5
ParseException.generic=%0 (\u884C %1): %2\n%3\n%4
ParseException.illegalArray=%0 (\u884C %1): %2\u4E2D\u67D0\u4E2A\u6570\u7EC4\u7684\u7C7B\u578B\u975E\u6CD5\u3002\n%3\n%4
ParseException.illegalException=%0 (\u884C %1): %2s \u4E2D\u4E0D\u80FD\u51FA\u73B0\u5F02\u5E38\u9519\u8BEF\u3002\n%3\n%4
ParseException.invalidConst1=%0 (\u884C %1): \u5E38\u91CF\u8868\u8FBE\u5F0F\u7684\u7C7B\u578B\u5FC5\u987B\u662F%2, \u800C\u4E0D\u80FD\u662F%3\u3002\n%4\n%5
ParseException.invalidConst2=%0 (\u884C %1): \u5E38\u91CF\u8868\u8FBE\u5F0F\u4E2D\u7684\u6807\u8BC6\u7B26\u5FC5\u987B\u662F\u5E38\u91CF, \u800C\u4E0D\u80FD\u662F%2\u3002\n%3\n%4
ParseException.keywordCollision=%0 (\u884C %1): \u6807\u8BC6\u7B26 `%2' \u4E0E\u5173\u952E\u5B57\u51B2\u7A81; \u5982\u6709\u5FC5\u8981, \u8BF7\u4F7F\u7528\u8F6C\u4E49\u6807\u8BC6\u7B26\u3002\n%3\n%4
ParseException.methodClash=%0 (\u884C %1): \u63A5\u53E3 %2 \u4E2D\u7684\u65B9\u6CD5\u540D\u51B2\u7A81: %3\u3002\n%4\n%5
ParseException.moduleNotType=%0 (\u884C %1): %2 \u662F\u6A21\u5757\u3002\u4E0D\u80FD\u5C06\u5176\u7528\u4F5C\u7C7B\u578B\u3002\n%3\n%4
ParseException.nestedValueBox=%0 (\u884C %1): \u503C\u6846\u4E0D\u80FD\u5D4C\u5957\u3002\n%2\n%3
ParseException.noDefault=%0 (\u884C %1): \u5F53\u5B8C\u5168\u6D89\u53CA\u6240\u6709\u53EF\u80FD\u7684 case \u65F6, \u4E0D\u5141\u8BB8\u4F7F\u7528\u9ED8\u8BA4\u5206\u652F\u3002\n%2\n%3
ParseException.nonAbstractParent=%0 (\u884C %1): \u62BD\u8C61\u63A5\u53E3 %2 \u4E0D\u80FD\u4ECE\u975E\u62BD\u8C61\u63A5\u53E3 %3 \u7EE7\u627F\u3002\n%4\n%5
ParseException.nonAbstractParent2=%0 (\u884C %1): \u62BD\u8C61\u503C %2 \u4E0D\u80FD\u4ECE\u975E\u62BD\u8C61\u503C %3 \u7EE7\u627F\u3002\n%4\n%5
ParseException.nonAbstractParent3=%0 (\u884C %1): \u503C %2 \u4E0D\u80FD\u6839\u636E\u6307\u5B9A\u4ECE\u975E\u62BD\u8C61\u503C %3 \u7EE7\u627F\u3002\n%4\n%5
ParseException.notANumber=%0 (\u884C %1): \u5E94\u4E3A\u6570\u5B57\u3002%2\u4E0D\u662F\u6709\u6548\u7684\u6570\u5B57\u3002\n%3\n%4
ParseException.nothing=%0\u4E3A\u7A7A\u3002\u6CA1\u6709\u8981\u7F16\u8BD1\u7684\u5BF9\u8C61\u3002
ParseException.notPosInt=%0 (\u884C %1): \u5E94\u4E3A\u6B63\u6574\u6570\u5E38\u91CF, \u800C\u975E%2\u3002\n%3\n%4
ParseException.oneway=%0 (\u884C %1): %2\u5DF2\u58F0\u660E\u4E3A\u5355\u5411\u3002\u5355\u5411\u65B9\u6CD5\u5FC5\u987B: \u8FD4\u56DE\u7A7A\u503C; \u53EA\u6709 in \u53C2\u6570; \u4E0D\u5F15\u53D1\u5F02\u5E38\u9519\u8BEF\u3002\n%3\n%4
ParseException.operationNotType=%0 (\u884C %1): %2\u662F\u8FD0\u7B97\u3002\u4E0D\u80FD\u5C06\u5176\u7528\u4F5C\u7C7B\u578B\u3002\n%3\n%4
ParseException.outOfRange=%0 (\u884C %1): \u5E38\u91CF\u8868\u8FBE\u5F0F %2 \u7684\u503C\u8D85\u51FA\u4E86\u7C7B\u578B%3\u7684\u8303\u56F4\u3002\n%4\n%5
ParseException.recursive=%0 (\u884C %1): \u552F\u4E00\u7684\u5408\u6CD5\u9012\u5F52\u5B9A\u4E49\u662F: sequence<%2> %3\u3002\n%4\n%5
ParseException.selfInherit=%0 (\u884C %1): %2 \u4E0D\u80FD\u4ECE\u81EA\u8EAB\u7EE7\u627F\u3002\n%3\n%4
ParseException.stringTooLong=%0 (\u884C %1): "%2" \u7684\u957F\u5EA6\u4E0D\u80FD\u8D85\u8FC7 %3 \u4E2A\u5B57\u7B26\u3002\n%4\n%5
ParseException.syntax1=%0 (\u884C %1): \u5E94\u4E3A `%2'; \u4F46\u9047\u5230 `%3'\u3002\n%4\n%5
ParseException.syntax2=%0 (\u884C %1): \u5E94\u4E3A %2 \u4E4B\u4E00; \u4F46\u9047\u5230 `%3'\u3002\n%4\n%5
ParseException.unclosed=%0: \u5728\u6CE8\u91CA\u4E2D\u9047\u5230\u610F\u5916\u7684\u6587\u4EF6\u7ED3\u5C3E\u3002
ParseException.undeclaredType=%0 (\u884C %1): %2 \u662F\u672A\u58F0\u660E\u7684\u7C7B\u578B\u3002\n%3\n%4
ParseException.warning=%0 (\u884C %1): %2\n%3\n%4
ParseException.constExprType=%0 (\u884C %1): \u5E38\u91CF\u8868\u8FBE\u5F0F\u7684\u7C7B\u578B\u4E3A %2, \u4F46\u5E94\u4E3A %3\u3002\n%4\n%5
ParseException.wrongType=%0 (\u884C %1): %2\u7684\u7C7B\u578B\u4E3A%3, \u4F46\u5E94\u4E3A%4\u3002\n%5\n%6
ParseException.illegalIncompleteTypeReference=%0 (\u884C %1): \u5BF9\u7C7B\u578B%2\u7684\u4E0D\u5B8C\u6574\u524D\u5411\u58F0\u660E\u7684\u5F15\u7528\u975E\u6CD5\u3002\n%3\n%4
Preprocessor.unknown=\u672A\u77E5\u7684\u9884\u5904\u7406\u7A0B\u5E8F\u6307\u4EE4 `%0'\u3002\u5DF2\u5FFD\u7565\u884C\u3002
Preprocessor.unknownPragma=\u672A\u77E5\u7684\u7F16\u8BD1\u6307\u793A\u6307\u4EE4 `%0'\u3002\u5DF2\u5FFD\u7565\u884C\u3002
Preprocessor.undefinedName=\u7F16\u8BD1\u6307\u793A %0 \u7684\u672A\u5B9A\u4E49\u7C7B\u578B\u540D: %1\u3002\u5DF2\u5FFD\u7565\u884C\u3002
Token.boolLit=<\u5E03\u5C14\u6587\u5B57>
Token.charLit=<\u5B57\u7B26\u6587\u5B57>
Token.intLit=<\u6574\u578B\u6587\u5B57>
Token.floatLit=<\u6D6E\u70B9\u6587\u5B57>
Token.stringLit=<\u5B57\u7B26\u4E32\u6587\u5B57>
Token.literal=<\u6587\u5B57>
Token.identifier=<\u6807\u8BC6\u7B26>
Token.endOfFile=EOF
Token.unknown=?
Util.cantCreatePkg=\u65e0\u6cd5\u521b\u5efa\u8f6f\u4ef6\u5305 %0\u3002
Version.product=IDL Parser Framework\uff0c\u7248\u672c "%0"
Util.cantCreatePkg=\u65E0\u6CD5\u521B\u5EFA\u7A0B\u5E8F\u5305%0\u3002
Version.product=IDL \u8BED\u6CD5\u5206\u6790\u5668\u6846\u67B6, \u7248\u672C "%0"
Version.number=3.2
default=\u9519\u8bef\uff01\u8bf7\u6c42\u7684\u6d88\u606f\u4e0d\u5b58\u5728\u3002\u6d88\u606f\u6587\u4ef6\u4e0d\u5305\u542b\u5bc6\u94a5\uff1a%0\u3002
default=\u9519\u8BEF! \u8BF7\u6C42\u4E86\u4E0D\u5B58\u5728\u7684\u6D88\u606F\u3002\u6D88\u606F\u6587\u4EF6\u672A\u5305\u542B\u5173\u952E\u5B57: %0\u3002
# Translator: In the list of options below, do not translate:
# -i, -d, -keep, -emitAll, -noWarn, -v, -verbose, -version, #define
# Do not translate the string "java com.sun.tools.corba.se.idl.Compile"
usage=\u7f16\u8bd1\u5668\u7528\u6cd5\uff1a\n\
\ java com.sun.tools.corba.se.idl.Compile [\u9009\u9879] <idl \u6587\u4ef6>\n\
\u5176\u4e2d\uff0c<idl \u6587\u4ef6> \u662f\u5305\u542b IDL \u5b9a\u4e49\u7684\u6587\u4ef6\u7684\u540d\u79f0\uff0c\u800c\n\
[\u9009\u9879] \u662f\u4ee5\u4e0b\u6240\u5217\u9009\u9879\u7684\u4efb\u4e00\u7ec4\u5408\u3002\u8fd9\u4e9b\u9009\u9879\n\
\u662f\u53ef\u9009\u7684\u5e76\u4e14\u53ef\u4ee5\u4ee5\u4efb\u610f\u987a\u5e8f\u663e\u793a\uff1b<idl \u6587\u4ef6> \u662f\u5fc5\u987b\u7684\u5e76\u4e14\n\
\u5fc5\u987b\u663e\u793a\u5728\u6700\u540e\u3002\n\
\ \n\
\u9009\u9879\uff1a\n\
-d <\u7b26\u53f7> \u7b49\u4ef7\u4e8e IDL \u6587\u4ef6\u4e2d\u7684\u4ee5\u4e0b\u884c\uff1a\n\
\ #define <\u7b26\u53f7>\n\
-emitAll \u53d1\u51fa\u6240\u6709\u7c7b\u578b\uff0c\u5305\u62ec\u5728 #included\n\
\ \u6587\u4ef6\u4e2d\u627e\u5230\u7684\u90a3\u4e9b\u7c7b\u578b\u3002\n\
-i <\u5305\u62ec\u8def\u5f84> \u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u641c\u7d22\u5f53\u524d\u76ee\u5f55\u4ee5\u83b7\u5f97\u5176\u6240\u5305\u542b\u7684\u6587\u4ef6\u3002\n\
\ \u6b64\u9009\u9879\u5c06\u6dfb\u52a0\u5176\u4ed6\u76ee\u5f55\u3002\n\
-keep \u5982\u679c\u8981\u751f\u6210\u7684\u6587\u4ef6\u5df2\u5b58\u5728\uff0c\u5219\u4e0d\n\
\ \u8986\u76d6\u5b83\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u4f1a\u8986\u76d6\u8be5\u6587\u4ef6\u3002\n\
-noWarn \u6291\u5236\u8b66\u544a\u3002\n\
-v, -verbose \u8be6\u7ec6\u6a21\u5f0f\u3002\n\
-version \u663e\u793a\u7248\u672c\u53f7\u3002\n
usage=\u7F16\u8BD1\u5668\u7528\u6CD5:\n\ java com.sun.tools.corba.se.idl.Compile [\u9009\u9879] <idl \u6587\u4EF6>\n\u5176\u4E2D, <idl \u6587\u4EF6> \u662F\u5305\u542B IDL \u5B9A\u4E49\u7684\u6587\u4EF6\u7684\u540D\u79F0, \u800C\n[\u9009\u9879] \u662F\u4E0B\u5217\u9009\u9879\u7684\u4EFB\u610F\u7EC4\u5408\u3002\u8FD9\u4E9B\u9009\u9879\n\u662F\u53EF\u9009\u7684, \u5E76\u4E14\u663E\u793A\u987A\u5E8F\u5E76\u4E0D\u56FA\u5B9A; <idl \u6587\u4EF6> \u662F\u5FC5\u9700\u7684\n\u5E76\u4E14\u5FC5\u987B\u663E\u793A\u5728\u6700\u540E\u3002\n\ \n\u9009\u9879:\n-d <\u7B26\u53F7> \u8FD9\u7B49\u540C\u4E8E IDL \u6587\u4EF6\u4E2D\u7684\n\ \u4E0B\u9762\u4E00\u884C: #define <\u7B26\u53F7>\n-emitAll \u53D1\u51FA\u6240\u6709\u7C7B\u578B, \u5305\u62EC\u5728 #included\n\ \u6587\u4EF6\u4E2D\u627E\u5230\u7684\u7C7B\u578B\u3002\n-i <\u5305\u542B\u8DEF\u5F84> \u9ED8\u8BA4\u60C5\u51B5\u4E0B, \u5C06\u5728\u5F53\u524D\u76EE\u5F55\u4E2D\u626B\u63CF\n\ \u5305\u542B\u7684\u6587\u4EF6\u3002\u6B64\u9009\u9879\u5C06\u6DFB\u52A0\u53E6\u4E00\u4E2A\u76EE\u5F55\u3002\n-keep \u5982\u679C\u8981\u751F\u6210\u7684\u6587\u4EF6\u5DF2\u5B58\u5728, \u8BF7\u4E0D\u8981\n\ \u8986\u76D6\u5B83\u3002\u9ED8\u8BA4\u60C5\u51B5\u4E0B\u4F1A\u8986\u76D6\u5B83\u3002\n-noWarn \u9690\u85CF\u8B66\u544A\u3002\n-v, -verbose \u8BE6\u7EC6\u6A21\u5F0F\u3002\n-version \u663E\u793A\u7248\u672C\u53F7\u3002\n

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1999, 2009, 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
@ -51,61 +51,18 @@
#
# Translator: Start Translating
#
toJavaProlog1=\u7531 %0 \u751f\u6210
toJavaProlog2=\u6765\u81ea %0
PreEmit.indeterminateTypeInfo=\u65e0\u6cd5\u786e\u5b9a %0 \u7684\u7c7b\u578b\u4fe1\u606f\u3002
InterfaceGen.noImpl=\u672a\u627e\u5230 %0 \u7684\u672c\u5730\u5b9e\u73b0\u3002
Version.product=IDL-to-Java \u7f16\u8bd1\u5668\uff08\u53ef\u79fb\u690d\uff09\uff0c\u7248\u672c "%0"
toJavaProlog1=\u7531%0\u751F\u6210
toJavaProlog2=\u4ECE%0
PreEmit.indeterminateTypeInfo=\u65E0\u6CD5\u786E\u5B9A%0\u7684\u7C7B\u578B\u4FE1\u606F\u3002
InterfaceGen.noImpl=\u627E\u4E0D\u5230%0\u7684\u672C\u5730\u5B9E\u73B0\u3002
Version.product=IDL-to-Java \u7F16\u8BD1\u5668 (\u53EF\u79FB\u690D), \u7248\u672C "%0"
Version.number=3.2
NameModifier.TooManyPercent=\u6a21\u5f0f\u5305\u542b\u591a\u4e2a\u767e\u5206\u6bd4\u5b57\u7b26
NameModifier.NoPercent=\u6a21\u5f0f\u4e0d\u5305\u542b\u4efb\u4f55\u767e\u5206\u6bd4\u5b57\u7b26
NameModifier.InvalidChar=\u6a21\u5f0f\u5305\u542b\u65e0\u6548\u5b57\u7b26 %0
NameModifier.TooManyPercent=\u6A21\u5F0F\u4E2D\u5305\u542B\u591A\u4E2A\u767E\u5206\u6BD4\u5B57\u7B26
NameModifier.NoPercent=\u6A21\u5F0F\u4E2D\u4E0D\u5305\u542B\u767E\u5206\u6BD4\u5B57\u7B26
NameModifier.InvalidChar=\u6A21\u5F0F\u4E2D\u5305\u542B\u65E0\u6548\u5B57\u7B26 %0
#
# Translator: In the list of options below, do not translate:
# -d, -emitAll, -f, -i, -keep, -m, -sep, -pkgPrefix, -td, -v, -verbose, -version, -implbase
# Do not translate the string "java com.sun.tools.corba.se.idl.toJavaPortable.Compile"
#
usage=\u7f16\u8bd1\u5668\u7528\u6cd5\uff1a\n\
\n\
\ java com.sun.tools.corba.se.idl.toJavaPortable.Compile [\u9009\u9879] <idl \u6587\u4ef6>\n\
\n\
\u5176\u4e2d\uff0c<idl \u6587\u4ef6> \u662f\u5305\u542b IDL \u5b9a\u4e49\u7684\u6587\u4ef6\u7684\u540d\u79f0\uff0c\u800c\n\
[\u9009\u9879] \u662f\u4ee5\u4e0b\u6240\u5217\u9009\u9879\u7684\u4efb\u4e00\u7ec4\u5408\u3002\u8fd9\u4e9b\u9009\u9879\u662f\u53ef\u9009\u7684\n\
\u5e76\u4e14\u53ef\u4ee5\u4ee5\u4efb\u610f\u987a\u5e8f\u663e\u793a\uff1b<idl \u6587\u4ef6> \u662f\u5fc5\u987b\u7684\u5e76\u4e14\n\
\u5fc5\u987b\u663e\u793a\u5728\u6700\u540e\u3002\n\
\ \n\
\u9009\u9879\uff1a\n\
-d <\u7b26\u53f7> \u7b49\u4ef7\u4e8e IDL \u6587\u4ef6\u4e2d\u7684\u4ee5\u4e0b\u884c\uff1a\n\
\ #define <\u7b26\u53f7>\n\
-emitAll \u53d1\u51fa\u6240\u6709\u7c7b\u578b\uff0c\u5305\u62ec\u5728 #included \u6587\u4ef6\u4e2d\u627e\u5230\u7684\u90a3\u4e9b\u7c7b\u578b\u3002\n\
-f<\u7aef> \u5b9a\u4e49\u8981\u53d1\u51fa\u7684\u7ed1\u5b9a\u3002 <\u7aef> \u662f client\u3001\n\
\ server\u3001all\u3001serverTIE \u548c allTIE \u4e2d\u4e4b\u4e00\u3002 serverTIE \u548c allTIE\n\
\ \u5c06\u5bfc\u81f4\u53d1\u51fa\u59d4\u6258\u6a21\u578b\u6846\u67b6\u3002\u5982\u679c\u672a\u4f7f\u7528\u6b64\n\
\ \u6807\u5fd7\uff0c\u5219\u5047\u8bbe\u4e3a -fclient\u3002\n\
-i <\u5305\u62ec\u8def\u5f84> \u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u641c\u7d22\u5f53\u524d\u76ee\u5f55\u4ee5\u83b7\u5f97\u5176\u6240\u5305\u542b\u7684\u6587\u4ef6\u3002\n\
\ \u6b64\u9009\u9879\u5c06\u6dfb\u52a0\u5176\u4ed6\u76ee\u5f55\u3002\n\
-keep \u5982\u679c\u8981\u751f\u6210\u7684\u6587\u4ef6\u5df2\u5b58\u5728\uff0c\u5219\u4e0d\n\
\ \u8986\u76d6\u5b83\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u4f1a\u8986\u76d6\u8be5\u6587\u4ef6\u3002\n\
-noWarn \u6291\u5236\u8b66\u544a\u3002\n\
-oldImplBase \u751f\u6210\u4e0e\u65e7\uff081.4 \u7248\u4e4b\u524d\uff09JDK ORB \u517c\u5bb9\u7684\u6846\u67b6\u3002\n\
-pkgPrefix <t> <\u524d\u7f00> \u5728\u6587\u4ef6\u8303\u56f4\u5185\u9047\u5230\u7c7b\u578b\u6216\u6a21\u5757\u540d\u79f0 <t> \u65f6\uff0c\n\
\ \u5c06\u4e3a\u9488\u5bf9 <t> \u6240\u751f\u6210\u7684\u6240\u6709\u6587\u4ef6\u7684 Java \u8f6f\u4ef6\u5305\u540d\u79f0\n\
\ \u9644\u52a0 <\u524d\u7f00>\u3002\n\
-pkgTranslate <t> <pkg> \u5728\u9047\u5230\u7c7b\u578b\u6216\u6a21\u5757\u540d\u79f0 <t> \u65f6\uff0c\n\
\ \u5219\u5728\u751f\u6210\u7684 java \u8f6f\u4ef6\u5305\u4e2d\u4ee5 <pkg> \u5c06\u5176\u66ff\u6362\u3002\u8bf7\u6ce8\u610f\uff0c\n\
\ \u9996\u5148\u8fdb\u884c pkgPrefix \u66f4\u6539\u3002 <t> \u5fc5\u987b\u4e0e\u5b8c\u6574\u7684\n\
\ \u7684\u8f6f\u4ef6\u5305\u540d\u79f0\u5b8c\u5168\u4e00\u81f4\u3002\u53e6\u5916\uff0c<t> \u4e0d\u80fd\u4e3a\n\
\ org\u3001org.omg \u6216 org.omg \u7684\u4efb\u4f55\u5b50\u5305\u3002\n\
-skeletonName <xxx%yyy> \u6839\u636e\u6a21\u5f0f\u547d\u540d\u6846\u67b6\u3002\n\
\ \u9ed8\u8ba4\u503c\u4e3a\uff1a\n\
\ \u9002\u7528\u4e8e POA \u57fa\u7c7b\uff08-fserver \u6216 -fall\uff09\u7684 %POA\n\
\ \u9002\u7528\u4e8e oldImplBase \u57fa\u7c7b\n\
\ \uff08-oldImplBase \u548c [-fserver \u6216 -fall]\uff09\u7684 \uff05ImplBase\u3002\n\
-td <\u76ee\u5f55> \u5c06 <\u76ee\u5f55> \u800c\u975e\n\
\ \u5f53\u524d\u76ee\u5f55\u7528\u4f5c\u8f93\u51fa\u76ee\u5f55\u3002\n\
-tieName <xxx%yyy> \u6839\u636e\u6a21\u5f0f\u547d\u540d tie\u3002\u9ed8\u8ba4\u503c\u4e3a\uff1a\n\
\ \u9002\u7528\u4e8e POA tie\uff08-fserverTie \u6216 -fallTie\uff09\u7684 %POATie\n\
\ \u9002\u7528\u4e8e oldImplBase tie\n\
\ \uff08-oldImplBase \u548c [-fserverTie \u6216 -fallTie]\uff09\u7684 \uff05_Tie\u3002\n\
-v, -verbose \u8be6\u7ec6\u6a21\u5f0f\u3002\n\
-version \u663e\u793a\u7248\u672c\u53f7\u5e76\u9000\u51fa\u3002\n
usage=\u7F16\u8BD1\u5668\u7528\u6CD5:\n\n\ java com.sun.tools.corba.se.idl.toJavaPortable.Compile [\u9009\u9879] <idl \u6587\u4EF6>\n\n\u5176\u4E2D, <idl \u6587\u4EF6> \u662F\u5305\u542B IDL \u5B9A\u4E49\u7684\u6587\u4EF6\u7684\u540D\u79F0, \u800C\n[\u9009\u9879] \u662F\u4E0B\u5217\u9009\u9879\u7684\u4EFB\u610F\u7EC4\u5408\u3002\u9009\u9879\n\u662F\u53EF\u9009\u7684, \u5E76\u4E14\u663E\u793A\u987A\u5E8F\u5E76\u4E0D\u56FA\u5B9A; <idl \u6587\u4EF6> \u662F\u5FC5\u9700\u7684,\n\u5E76\u4E14\u5FC5\u987B\u663E\u793A\u5728\u6700\u540E\u3002\n\ \n\u9009\u9879:\n-d <\u7B26\u53F7> \u8FD9\u7B49\u540C\u4E8E IDL \u6587\u4EF6\u4E2D\u7684\n\ \u4E0B\u9762\u4E00\u884C: #define <\u7B26\u53F7>\n-emitAll \u53D1\u51FA\u6240\u6709\u7C7B\u578B, \u5305\u62EC\u5728 #included \u6587\u4EF6\u4E2D\u627E\u5230\u7684\u7C7B\u578B\u3002\n-f<side> \u5B9A\u4E49\u8981\u53D1\u51FA\u54EA\u4E9B\u7ED1\u5B9A\u3002<side> \u662F client,\n\ server, all, serverTIE, allTIE \u4E4B\u4E00\u3002serverTIE \u548C allTIE\n\ \u5BFC\u81F4\u53D1\u51FA\u59D4\u6D3E\u6A21\u578B\u9AA8\u67B6\u3002\u5982\u679C\u672A\u4F7F\u7528\n\ \u6B64\u6807\u8BB0, \u5C06\u5047\u5B9A\u4E3A -fclient\u3002\n-i <\u5305\u542B\u8DEF\u5F84> \u9ED8\u8BA4\u60C5\u51B5\u4E0B, \u5C06\u5728\u5F53\u524D\u76EE\u5F55\u4E2D\u626B\u63CF\n\ \u5305\u542B\u7684\u6587\u4EF6\u3002\u6B64\u9009\u9879\u5C06\u6DFB\u52A0\u53E6\u4E00\u4E2A\u76EE\u5F55\u3002\n-keep \u5982\u679C\u8981\u751F\u6210\u7684\u6587\u4EF6\u5DF2\u5B58\u5728, \u8BF7\u4E0D\u8981\n\ \u8986\u76D6\u5B83\u3002\u9ED8\u8BA4\u60C5\u51B5\u4E0B\u4F1A\u8986\u76D6\u5B83\u3002\n-noWarn \u9690\u85CF\u8B66\u544A\u3002\n-oldImplBase \u751F\u6210\u4E0E\u65E7\u7248 (1.4 \u7248\u4E4B\u524D) JDK ORB \u517C\u5BB9\u7684\u9AA8\u67B6\u3002\n-pkgPrefix <t> <\u524D\u7F00> \u5F53\u5728\u6587\u4EF6\u8303\u56F4\u5185\u9047\u5230\u7C7B\u578B\u6216\u6A21\u5757\u540D <t> \u65F6,\n\ \u5728\u4E3A <t> \u751F\u6210\u7684\u6240\u6709\u6587\u4EF6\u7684 Java \u7A0B\u5E8F\u5305\u540D\u524D\n\ \u6DFB\u52A0 <\u524D\u7F00>\u3002\n-pkgTranslate <t> <pkg> \u5F53\u9047\u5230\u7C7B\u578B\u6216\u6A21\u5757\u540D <t> \u65F6, \u5728\n\ \u751F\u6210\u7684 Java \u7A0B\u5E8F\u5305\u4E2D\u5C06\u5176\u66FF\u6362\u4E3A <pkg>\u3002\u8BF7\u6CE8\u610F, \n\ \u5C06\u9996\u5148\u8FDB\u884C pkgPrefix \u66F4\u6539\u3002<t> \u5FC5\u987B\u4E0E\n\ \u5B8C\u6574\u7A0B\u5E8F\u5305\u540D\u5B8C\u5168\u5339\u914D\u3002\u53E6\u5916, <t> \u4E0D\u80FD\u4E3A\n\ org, org.omg \u6216 org.omg \u7684\u4EFB\u4F55\u5B50\u7A0B\u5E8F\u5305\u3002\n-skeletonName <xxx%yyy> \u6839\u636E\u6A21\u5F0F\u547D\u540D\u9AA8\u67B6\u3002\n\ \u9ED8\u8BA4\u503C\u4E3A:\n\ %POA \u8868\u793A POA \u57FA\u7C7B (-fserver \u6216 -fall) \n\ _%ImplBase \u8868\u793A oldImplBase \u57FA\u7C7B\n\ (-oldImplBase \u548C (-fserver \u6216 -fall))\u3002\n-td <dir> \u4F7F\u7528 <dir> \u8868\u793A\u8F93\u51FA\u76EE\u5F55\u4EE5\u4EE3\u66FF\n\ \u5F53\u524D\u76EE\u5F55\u3002\n-tieName <xxx%yyy> \u6839\u636E\u6A21\u5F0F\u547D\u540D tie\u3002\u9ED8\u8BA4\u503C\u4E3A:\n\ %POATie \u8868\u793A POA tie (-fserverTie \u6216 -fallTie) \n\ %_Tie \u8868\u793A oldImplBase tie\n\ (-oldImplBase \u548C (-fserverTie \u6216 -fallTie))\u3002\n-v, -verbose \u8BE6\u7EC6\u6A21\u5F0F\u3002\n-version \u663E\u793A\u7248\u672C\u53F7\u5E76\u9000\u51FA\u3002\n

View File

@ -156,3 +156,9 @@ a8d643a4db47c7b58e0bcb49c77b5c3610de86a8 hs21-b03
1b3a350709e4325d759bb453ff3fb6a463270488 jdk7-b133
447e6faab4a8755d4860c2366630729dbaec111c jdk7-b134
3c76374706ea8a77e15aec8310e831e5734f8775 hs21-b04
b898f0fc3cedc972d884d31a751afd75969531cf jdk7-b135
b898f0fc3cedc972d884d31a751afd75969531cf hs21-b05
bd586e392d93b7ed7a1636dcc8da2b6a4203a102 jdk7-b136
bd586e392d93b7ed7a1636dcc8da2b6a4203a102 hs21-b06
2dbcb4a4d8dace5fe78ceb563b134f1fb296cd8f jdk7-b137
2dbcb4a4d8dace5fe78ceb563b134f1fb296cd8f hs21-b07

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 2011, 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

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 2011, 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

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 2011, 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

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 2011, 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

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 2011, 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 sun.jvm.hotspot.jdi;
import com.sun.jdi.*;
import sun.jvm.hotspot.oops.Instance;
import sun.jvm.hotspot.oops.Klass;
import sun.jvm.hotspot.oops.OopUtilities;
import sun.jvm.hotspot.oops.java_lang_Class;
public class ClassObjectReferenceImpl extends ObjectReferenceImpl
implements ClassObjectReference {
@ -39,7 +39,7 @@ public class ClassObjectReferenceImpl extends ObjectReferenceImpl
public ReferenceType reflectedType() {
if (reflectedType == null) {
Klass k = OopUtilities.classOopToKlass(ref());
Klass k = java_lang_Class.asKlass(ref());
reflectedType = vm.referenceType(k);
}
return reflectedType;

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2011, 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

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2011, 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

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2011, 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

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 2011, 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

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2001, 2011, 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

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 2011, 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
@ -331,8 +331,6 @@ public class ConstantPool extends Oop implements ClassConstants {
if (Assert.ASSERTS_ENABLED) {
Assert.that(getTagAt(i).isInvokeDynamic(), "Corrupted constant pool");
}
if (getTagAt(i).value() == JVM_CONSTANT_InvokeDynamicTrans)
return null;
int bsmSpec = extractLowShortFromInt(this.getIntAt(i));
TypeArray operands = getOperands();
if (operands == null) return null; // safety first
@ -368,7 +366,6 @@ public class ConstantPool extends Oop implements ClassConstants {
case JVM_CONSTANT_MethodHandle: return "JVM_CONSTANT_MethodHandle";
case JVM_CONSTANT_MethodType: return "JVM_CONSTANT_MethodType";
case JVM_CONSTANT_InvokeDynamic: return "JVM_CONSTANT_InvokeDynamic";
case JVM_CONSTANT_InvokeDynamicTrans: return "JVM_CONSTANT_InvokeDynamic/transitional";
case JVM_CONSTANT_Invalid: return "JVM_CONSTANT_Invalid";
case JVM_CONSTANT_UnresolvedClass: return "JVM_CONSTANT_UnresolvedClass";
case JVM_CONSTANT_UnresolvedClassInError: return "JVM_CONSTANT_UnresolvedClassInError";
@ -428,7 +425,6 @@ public class ConstantPool extends Oop implements ClassConstants {
case JVM_CONSTANT_MethodHandle:
case JVM_CONSTANT_MethodType:
case JVM_CONSTANT_InvokeDynamic:
case JVM_CONSTANT_InvokeDynamicTrans:
visitor.doInt(new IntField(new NamedFieldIdentifier(nameForTag(ctag)), indexOffset(index), true), true);
break;
}
@ -592,7 +588,6 @@ public class ConstantPool extends Oop implements ClassConstants {
break;
}
case JVM_CONSTANT_InvokeDynamicTrans:
case JVM_CONSTANT_InvokeDynamic: {
dos.writeByte(cpConstType);
int value = getIntAt(ci);

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2001, 2011, 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

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 2011, 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
@ -64,7 +64,7 @@ public class Instance extends Oop {
public void iterateFields(OopVisitor visitor, boolean doVMFields) {
super.iterateFields(visitor, doVMFields);
((InstanceKlass) getKlass()).iterateNonStaticFields(visitor);
((InstanceKlass) getKlass()).iterateNonStaticFields(visitor, this);
}
public void printValueOn(PrintStream tty) {

View File

@ -241,6 +241,10 @@ public class InstanceKlass extends Klass {
// Byteside of the header
private static long headerSize;
public long getObjectSize(Oop object) {
return getSizeHelper() * VM.getVM().getAddressSize();
}
public static long getHeaderSize() { return headerSize; }
// Accessors for declared fields
@ -459,7 +463,22 @@ public class InstanceKlass extends Klass {
visitor.doCInt(vtableLen, true);
visitor.doCInt(itableLen, true);
}
}
/*
* Visit the static fields of this InstanceKlass with the obj of
* the visitor set to the oop holding the fields, which is
* currently the java mirror.
*/
public void iterateStaticFields(OopVisitor visitor) {
visitor.setObj(getJavaMirror());
visitor.prologue();
iterateStaticFieldsInternal(visitor);
visitor.epilogue();
}
void iterateStaticFieldsInternal(OopVisitor visitor) {
TypeArray fields = getFields();
int length = (int) fields.getLength();
for (int index = 0; index < length; index += NEXT_OFFSET) {
@ -477,9 +496,9 @@ public class InstanceKlass extends Klass {
return getSuper();
}
public void iterateNonStaticFields(OopVisitor visitor) {
public void iterateNonStaticFields(OopVisitor visitor, Oop obj) {
if (getSuper() != null) {
((InstanceKlass) getSuper()).iterateNonStaticFields(visitor);
((InstanceKlass) getSuper()).iterateNonStaticFields(visitor, obj);
}
TypeArray fields = getFields();

View File

@ -0,0 +1,67 @@
/*
* Copyright (c) 2011, 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.
*
*/
package sun.jvm.hotspot.oops;
import java.io.*;
import java.util.*;
import sun.jvm.hotspot.debugger.*;
import sun.jvm.hotspot.memory.*;
import sun.jvm.hotspot.runtime.*;
import sun.jvm.hotspot.types.*;
import sun.jvm.hotspot.utilities.*;
// An InstanceKlass is the VM level representation of a Java class.
public class InstanceMirrorKlass extends InstanceKlass {
static {
VM.registerVMInitializedObserver(new Observer() {
public void update(Observable o, Object data) {
initialize(VM.getVM().getTypeDataBase());
}
});
}
private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
// Just make sure it's there for now
Type type = db.lookupType("instanceMirrorKlass");
}
InstanceMirrorKlass(OopHandle handle, ObjectHeap heap) {
super(handle, heap);
}
public long getObjectSize(Oop o) {
return java_lang_Class.getOopSize(o) * VM.getVM().getAddressSize();
}
public void iterateNonStaticFields(OopVisitor visitor, Oop obj) {
super.iterateNonStaticFields(visitor, obj);
// Fetch the real klass from the mirror object
Klass klass = java_lang_Class.asKlass(obj);
if (klass instanceof InstanceKlass) {
((InstanceKlass)klass).iterateStaticFields(visitor);
}
}
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 2011, 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

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 2011, 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

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 2011, 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
@ -362,7 +362,16 @@ public class ObjectHeap {
if (klass.equals(compiledICHolderKlassHandle)) return new CompiledICHolder(handle, this);
if (klass.equals(methodDataKlassHandle)) return new MethodData(handle, this);
}
if (klass.equals(instanceKlassKlassHandle)) return new InstanceKlass(handle, this);
if (klass.equals(instanceKlassKlassHandle)) {
InstanceKlass ik = new InstanceKlass(handle, this);
if (ik.getName().asString().equals("java/lang/Class")) {
// We would normally do this using the vtable style
// lookup but since it's not used for these currently
// it's simpler to just check for the name.
return new InstanceMirrorKlass(handle, this);
}
return ik;
}
if (klass.equals(objArrayKlassKlassHandle)) return new ObjArrayKlass(handle, this);
if (klass.equals(typeArrayKlassKlassHandle)) return new TypeArrayKlass(handle, this);

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 2011, 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
@ -103,12 +103,8 @@ public class Oop {
// Returns the byte size of this object
public long getObjectSize() {
Klass k = getKlass();
if (k instanceof InstanceKlass) {
return ((InstanceKlass)k).getSizeHelper()
* VM.getVM().getAddressSize();
}
// If it is not an instance, this method should be replaced.
return getHeaderSize();
// All other types should be overriding getObjectSize directly
return ((InstanceKlass)k).getObjectSize(this);
}
// Type test operations

View File

@ -74,9 +74,6 @@ public class OopUtilities implements /* imports */ JVMTIThreadState {
private static int THREAD_STATUS_TERMINATED;
*/
// java.lang.Class fields
private static OopField hcKlassField;
// java.util.concurrent.locks.AbstractOwnableSynchronizer fields
private static OopField absOwnSyncOwnerThreadField;
@ -268,27 +265,6 @@ public class OopUtilities implements /* imports */ JVMTIThreadState {
return null;
}
// initialize fields for java.lang.Class
private static void initClassFields() {
if (hcKlassField == null) {
// hc_klass is a HotSpot magic field and hence we can't
// find it from InstanceKlass for java.lang.Class.
TypeDataBase db = VM.getVM().getTypeDataBase();
int hcKlassOffset = (int) db.lookupType("java_lang_Class").getCIntegerField("klass_offset").getValue();
if (VM.getVM().isCompressedOopsEnabled()) {
hcKlassField = new NarrowOopField(new NamedFieldIdentifier("hc_klass"), hcKlassOffset, true);
} else {
hcKlassField = new OopField(new NamedFieldIdentifier("hc_klass"), hcKlassOffset, true);
}
}
}
/** get klassOop field at offset hc_klass_offset from a java.lang.Class object */
public static Klass classOopToKlass(Oop aClass) {
initClassFields();
return (Klass) hcKlassField.getValue(aClass);
}
// initialize fields for j.u.c.l AbstractOwnableSynchornizer class
private static void initAbsOwnSyncFields() {
if (absOwnSyncOwnerThreadField == null) {

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 2011, 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

View File

@ -0,0 +1,77 @@
/*
* Copyright (c) 2011, 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.
*
*/
package sun.jvm.hotspot.oops;
import java.util.*;
import sun.jvm.hotspot.debugger.*;
import sun.jvm.hotspot.memory.*;
import sun.jvm.hotspot.runtime.*;
import sun.jvm.hotspot.types.Type;
import sun.jvm.hotspot.types.TypeDataBase;
import sun.jvm.hotspot.utilities.*;
import sun.jvm.hotspot.jdi.JVMTIThreadState;
/** A utility class encapsulating useful oop operations */
// initialize fields for java.lang.Class
public class java_lang_Class {
// java.lang.Class fields
static OopField klassField;
static IntField oopSizeField;
static {
VM.registerVMInitializedObserver(new Observer() {
public void update(Observable o, Object data) {
initialize(VM.getVM().getTypeDataBase());
}
});
}
private static synchronized void initialize(TypeDataBase db) {
// klass and oop_size are HotSpot magic fields and hence we can't
// find them from InstanceKlass for java.lang.Class.
Type jlc = db.lookupType("java_lang_Class");
int klassOffset = (int) jlc.getCIntegerField("klass_offset").getValue();
if (VM.getVM().isCompressedOopsEnabled()) {
klassField = new NarrowOopField(new NamedFieldIdentifier("klass"), klassOffset, true);
} else {
klassField = new OopField(new NamedFieldIdentifier("klass"), klassOffset, true);
}
int oopSizeOffset = (int) jlc.getCIntegerField("oop_size_offset").getValue();
oopSizeField = new IntField(new NamedFieldIdentifier("oop_size"), oopSizeOffset, true);
}
/** get klassOop field at offset hc_klass_offset from a java.lang.Class object */
public static Klass asKlass(Oop aClass) {
return (Klass) java_lang_Class.klassField.getValue(aClass);
}
/** get oop_size field at offset oop_size_offset from a java.lang.Class object */
public static long getOopSize(Oop aClass) {
return java_lang_Class.oopSizeField.getValue(aClass);
}
}

View File

@ -42,7 +42,7 @@ public interface ClassConstants
public static final int JVM_CONSTANT_NameAndType = 12;
public static final int JVM_CONSTANT_MethodHandle = 15;
public static final int JVM_CONSTANT_MethodType = 16;
public static final int JVM_CONSTANT_InvokeDynamicTrans = 17; // only occurs in old class files
// static final int JVM_CONSTANT_(unused) = 17;
public static final int JVM_CONSTANT_InvokeDynamic = 18;
// JVM_CONSTANT_MethodHandle subtypes

View File

@ -839,20 +839,18 @@ public class VM {
}
private void readSystemProperties() {
final InstanceKlass systemKls = getSystemDictionary().getSystemKlass();
systemKls.iterate(new DefaultOopVisitor() {
ObjectReader objReader = new ObjectReader();
public void doOop(sun.jvm.hotspot.oops.OopField field, boolean isVMField) {
if (field.getID().getName().equals("props")) {
try {
sysProps = (Properties) objReader.readObject(field.getValue(systemKls.getJavaMirror()));
} catch (Exception e) {
if (Assert.ASSERTS_ENABLED) {
e.printStackTrace();
}
}
}
}
}, false);
final InstanceKlass systemKls = getSystemDictionary().getSystemKlass();
systemKls.iterateStaticFields(new DefaultOopVisitor() {
ObjectReader objReader = new ObjectReader();
public void doOop(sun.jvm.hotspot.oops.OopField field, boolean isVMField) {
if (field.getID().getName().equals("props")) {
try {
sysProps = (Properties) objReader.readObject(field.getValue(getObj()));
} catch (Exception e) {
e.printStackTrace();
}
}
}
});
}
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2011, 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
@ -64,16 +64,16 @@ public class FinalizerInfo extends Tool {
*/
InstanceKlass ik =
SystemDictionaryHelper.findInstanceKlass("java.lang.ref.Finalizer");
final OopField queueField[] = new OopField[1];
ik.iterateFields(new DefaultOopVisitor() {
final Oop[] queueref = new Oop[1];
ik.iterateStaticFields(new DefaultOopVisitor() {
public void doOop(OopField field, boolean isVMField) {
String name = field.getID().getName();
if (name.equals("queue")) {
queueField[0] = field;
}
String name = field.getID().getName();
if (name.equals("queue")) {
queueref[0] = field.getValue(getObj());
}
}
}, false);
Oop queue = queueField[0].getValue(ik);
});
Oop queue = queueref[0];
InstanceKlass k = (InstanceKlass) queue.getKlass();

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 2011, 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
@ -321,7 +321,6 @@ public class ClassWriter implements /* imports */ ClassConstants
break;
}
case JVM_CONSTANT_InvokeDynamicTrans:
case JVM_CONSTANT_InvokeDynamic: {
dos.writeByte(cpConstType);
int value = cpool.getIntAt(ci);

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 2011, 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

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 2011, 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
@ -598,7 +598,6 @@ public class HTMLGenerator implements /* imports */ ClassConstants {
buf.cell(Integer.toString(cpool.getIntAt(index)));
break;
case JVM_CONSTANT_InvokeDynamicTrans:
case JVM_CONSTANT_InvokeDynamic:
buf.cell("JVM_CONSTANT_InvokeDynamic");
buf.cell(genLowHighShort(cpool.getIntAt(index)) +

View File

@ -40,7 +40,7 @@ public class ConstantTag {
private static int JVM_CONSTANT_NameAndType = 12;
private static int JVM_CONSTANT_MethodHandle = 15; // JSR 292
private static int JVM_CONSTANT_MethodType = 16; // JSR 292
private static int JVM_CONSTANT_InvokeDynamicTrans = 17; // JSR 292, only occurs in old class files
// static int JVM_CONSTANT_(unused) = 17; // JSR 292 early drafts only
private static int JVM_CONSTANT_InvokeDynamic = 18; // JSR 292
private static int JVM_CONSTANT_Invalid = 0; // For bad value initialization
private static int JVM_CONSTANT_UnresolvedClass = 100; // Temporary tag until actual use
@ -83,7 +83,6 @@ public class ConstantTag {
public boolean isMethodHandle() { return tag == JVM_CONSTANT_MethodHandle; }
public boolean isMethodType() { return tag == JVM_CONSTANT_MethodType; }
public boolean isInvokeDynamic() { return tag == JVM_CONSTANT_InvokeDynamic; }
public boolean isInvokeDynamicTrans() { return tag == JVM_CONSTANT_InvokeDynamicTrans; }
public boolean isInvalid() { return tag == JVM_CONSTANT_Invalid; }

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2011, 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

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2011, 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

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2011, 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
@ -164,7 +164,7 @@ public class HeapGXLWriter extends AbstractHeapGraphWriter {
protected void writeClass(Instance instance) throws IOException {
writeObjectHeader(instance);
Klass reflectedType = OopUtilities.classOopToKlass(instance);
Klass reflectedType = java_lang_Class.asKlass(instance);
boolean isInstanceKlass = (reflectedType instanceof InstanceKlass);
// reflectedType is null for primitive types (int.class etc).
if (reflectedType != null) {

View File

@ -455,7 +455,7 @@ public class HeapHprofBinWriter extends AbstractHeapGraphWriter {
}
protected void writeClass(Instance instance) throws IOException {
Klass reflectedKlass = OopUtilities.classOopToKlass(instance);
Klass reflectedKlass = java_lang_Class.asKlass(instance);
// dump instance record only for primitive type Class objects.
// all other Class objects are covered by writeClassDumpRecords.
if (reflectedKlass == null) {

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 2011, 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
@ -117,10 +117,10 @@ public class ReversePtrsAnalysis {
public boolean doObj(Oop obj) {
if (obj instanceof InstanceKlass) {
final InstanceKlass ik = (InstanceKlass) obj;
ik.iterateFields(
ik.iterateStaticFields(
new DefaultOopVisitor() {
public void doOop(OopField field, boolean isVMField) {
Oop next = field.getValue(ik);
Oop next = field.getValue(getObj());
LivenessPathElement lp = new LivenessPathElement(null,
new NamedFieldIdentifier("Static field \"" +
field.getID().getName() +
@ -142,8 +142,7 @@ public class ReversePtrsAnalysis {
System.err.println();
}
}
},
false);
});
}
return false;
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2011, 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
@ -158,7 +158,7 @@ public class JSJavaFactoryImpl implements JSJavaFactory {
} else if (className.equals(javaLangThread())) {
res = new JSJavaThread(instance, this);
} else if (className.equals(javaLangClass())) {
Klass reflectedType = OopUtilities.classOopToKlass(instance);
Klass reflectedType = java_lang_Class.asKlass(instance);
if (reflectedType != null) {
JSJavaKlass jk = newJSJavaKlass(reflectedType);
// we don't support mirrors of VM internal Klasses

View File

@ -35,7 +35,7 @@ HOTSPOT_VM_COPYRIGHT=Copyright 2011
HS_MAJOR_VER=21
HS_MINOR_VER=0
HS_BUILD_NUMBER=05
HS_BUILD_NUMBER=08
JDK_MAJOR_VER=1
JDK_MINOR_VER=7

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1999, 2011, 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

View File

@ -102,7 +102,7 @@ all: $(EXEC)
$(EXEC) : $(OBJECTS)
@echo Making adlc
$(QUIETLY) $(LINK_NOPROF.CC) -o $(EXEC) $(OBJECTS)
$(QUIETLY) $(HOST.LINK_NOPROF.CC) -o $(EXEC) $(OBJECTS)
# Random dependencies:
$(OBJECTS): opcodes.hpp classes.hpp adlc.hpp adlcVMDeps.hpp adlparse.hpp archDesc.hpp arena.hpp dict2.hpp filebuff.hpp forms.hpp formsopt.hpp formssel.hpp
@ -204,14 +204,14 @@ PROCESS_AD_FILES = awk '{ \
$(OUTDIR)/%.o: %.cpp
@echo Compiling $<
$(QUIETLY) $(REMOVE_TARGET)
$(QUIETLY) $(COMPILE.CC) -o $@ $< $(COMPILE_DONE)
$(QUIETLY) $(HOST.COMPILE.CC) -o $@ $< $(COMPILE_DONE)
# Some object files are given a prefix, to disambiguate
# them from objects of the same name built for the VM.
$(OUTDIR)/adlc-%.o: %.cpp
@echo Compiling $<
$(QUIETLY) $(REMOVE_TARGET)
$(QUIETLY) $(COMPILE.CC) -o $@ $< $(COMPILE_DONE)
$(QUIETLY) $(HOST.COMPILE.CC) -o $@ $< $(COMPILE_DONE)
# #########################################################################

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
# ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
#

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1999, 2011, 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
@ -30,9 +30,13 @@
ifdef CROSS_COMPILE_ARCH
CPP = $(ALT_COMPILER_PATH)/g++
CC = $(ALT_COMPILER_PATH)/gcc
HOSTCPP = g++
HOSTCC = gcc
else
CPP = g++
CC = gcc
HOSTCPP = $(CPP)
HOSTCC = $(CC)
endif
AS = $(CC) -c

View File

@ -3,7 +3,7 @@
#
#
# Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2002, 2011, 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

View File

@ -3,7 +3,7 @@
#
#
# Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2002, 2011, 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

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
# ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
#

View File

@ -55,6 +55,14 @@ LINK_NOPROF.CC = $(CCC) $(LFLAGS) $(AOUT_FLAGS)
LINK_LIB.CC = $(CCC) $(LFLAGS) $(SHARED_FLAG)
PREPROCESS.CC = $(CC_COMPILE) -E
# cross compiling the jvm with c2 requires host compilers to build
# adlc tool
HOST.CC_COMPILE = $(HOSTCPP) $(CPPFLAGS) $(CFLAGS)
HOST.COMPILE.CC = $(HOST.CC_COMPILE) -c
HOST.LINK_NOPROF.CC = $(HOSTCPP) $(LFLAGS) $(AOUT_FLAGS)
# Effect of REMOVE_TARGET is to delete out-of-date files during "gnumake -k".
REMOVE_TARGET = rm -f $@

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1999, 2011, 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
@ -29,6 +29,9 @@ CPP = CC
CC = cc
AS = $(CC) -c
HOSTCPP = $(CPP)
HOSTCC = $(CC)
ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
ARCHFLAG/i486 = -m32
ARCHFLAG/amd64 = -m64

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1999, 2011, 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

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1999, 2011, 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

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1997, 2011, 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

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2000, 2011, 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

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2000, 2011, 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

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1998, 2011, 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

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1998, 2011, 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

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2010, 2011, 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

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2010, 2011, 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

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1997, 2011, 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

View File

@ -2058,6 +2058,13 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
BasicType basic_type = default_type != NULL ? default_type->element_type()->basic_type() : T_ILLEGAL;
if (basic_type == T_ARRAY) basic_type = T_OBJECT;
#ifdef _LP64
// higher 32bits must be null
__ sra(dst_pos, 0, dst_pos);
__ sra(src_pos, 0, src_pos);
__ sra(length, 0, length);
#endif
// set up the arraycopy stub information
ArrayCopyStub* stub = op->stub();
@ -2065,20 +2072,36 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
// the known type isn't loaded since the code sanity checks
// in debug mode and the type isn't required when we know the exact type
// also check that the type is an array type.
// We also, for now, always call the stub if the barrier set requires a
// write_ref_pre barrier (which the stub does, but none of the optimized
// cases currently does).
if (op->expected_type() == NULL ||
Universe::heap()->barrier_set()->has_write_ref_pre_barrier()) {
if (op->expected_type() == NULL) {
__ mov(src, O0);
__ mov(src_pos, O1);
__ mov(dst, O2);
__ mov(dst_pos, O3);
__ mov(length, O4);
__ call_VM_leaf(tmp, CAST_FROM_FN_PTR(address, Runtime1::arraycopy));
address copyfunc_addr = StubRoutines::generic_arraycopy();
__ br_zero(Assembler::less, false, Assembler::pn, O0, *stub->entry());
__ delayed()->nop();
if (copyfunc_addr == NULL) { // Use C version if stub was not generated
__ call_VM_leaf(tmp, CAST_FROM_FN_PTR(address, Runtime1::arraycopy));
} else {
#ifndef PRODUCT
if (PrintC1Statistics) {
address counter = (address)&Runtime1::_generic_arraycopystub_cnt;
__ inc_counter(counter, G1, G3);
}
#endif
__ call_VM_leaf(tmp, copyfunc_addr);
}
if (copyfunc_addr != NULL) {
__ xor3(O0, -1, tmp);
__ sub(length, tmp, length);
__ add(src_pos, tmp, src_pos);
__ br_zero(Assembler::less, false, Assembler::pn, O0, *stub->entry());
__ delayed()->add(dst_pos, tmp, dst_pos);
} else {
__ br_zero(Assembler::less, false, Assembler::pn, O0, *stub->entry());
__ delayed()->nop();
}
__ bind(*stub->continuation());
return;
}
@ -2135,20 +2158,137 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
__ delayed()->nop();
}
int shift = shift_amount(basic_type);
if (flags & LIR_OpArrayCopy::type_check) {
if (UseCompressedOops) {
// We don't need decode because we just need to compare
__ lduw(src, oopDesc::klass_offset_in_bytes(), tmp);
__ lduw(dst, oopDesc::klass_offset_in_bytes(), tmp2);
__ cmp(tmp, tmp2);
__ br(Assembler::notEqual, false, Assembler::pt, *stub->entry());
// We don't know the array types are compatible
if (basic_type != T_OBJECT) {
// Simple test for basic type arrays
if (UseCompressedOops) {
// We don't need decode because we just need to compare
__ lduw(src, oopDesc::klass_offset_in_bytes(), tmp);
__ lduw(dst, oopDesc::klass_offset_in_bytes(), tmp2);
__ cmp(tmp, tmp2);
__ br(Assembler::notEqual, false, Assembler::pt, *stub->entry());
} else {
__ ld_ptr(src, oopDesc::klass_offset_in_bytes(), tmp);
__ ld_ptr(dst, oopDesc::klass_offset_in_bytes(), tmp2);
__ cmp(tmp, tmp2);
__ brx(Assembler::notEqual, false, Assembler::pt, *stub->entry());
}
__ delayed()->nop();
} else {
__ ld_ptr(src, oopDesc::klass_offset_in_bytes(), tmp);
__ ld_ptr(dst, oopDesc::klass_offset_in_bytes(), tmp2);
__ cmp(tmp, tmp2);
__ brx(Assembler::notEqual, false, Assembler::pt, *stub->entry());
// For object arrays, if src is a sub class of dst then we can
// safely do the copy.
address copyfunc_addr = StubRoutines::checkcast_arraycopy();
Label cont, slow;
assert_different_registers(tmp, tmp2, G3, G1);
__ load_klass(src, G3);
__ load_klass(dst, G1);
__ check_klass_subtype_fast_path(G3, G1, tmp, tmp2, &cont, copyfunc_addr == NULL ? stub->entry() : &slow, NULL);
__ call(Runtime1::entry_for(Runtime1::slow_subtype_check_id), relocInfo::runtime_call_type);
__ delayed()->nop();
__ cmp(G3, 0);
if (copyfunc_addr != NULL) { // use stub if available
// src is not a sub class of dst so we have to do a
// per-element check.
__ br(Assembler::notEqual, false, Assembler::pt, cont);
__ delayed()->nop();
__ bind(slow);
int mask = LIR_OpArrayCopy::src_objarray|LIR_OpArrayCopy::dst_objarray;
if ((flags & mask) != mask) {
// Check that at least both of them object arrays.
assert(flags & mask, "one of the two should be known to be an object array");
if (!(flags & LIR_OpArrayCopy::src_objarray)) {
__ load_klass(src, tmp);
} else if (!(flags & LIR_OpArrayCopy::dst_objarray)) {
__ load_klass(dst, tmp);
}
int lh_offset = klassOopDesc::header_size() * HeapWordSize +
Klass::layout_helper_offset_in_bytes();
__ lduw(tmp, lh_offset, tmp2);
jint objArray_lh = Klass::array_layout_helper(T_OBJECT);
__ set(objArray_lh, tmp);
__ cmp(tmp, tmp2);
__ br(Assembler::notEqual, false, Assembler::pt, *stub->entry());
__ delayed()->nop();
}
Register src_ptr = O0;
Register dst_ptr = O1;
Register len = O2;
Register chk_off = O3;
Register super_k = O4;
__ add(src, arrayOopDesc::base_offset_in_bytes(basic_type), src_ptr);
if (shift == 0) {
__ add(src_ptr, src_pos, src_ptr);
} else {
__ sll(src_pos, shift, tmp);
__ add(src_ptr, tmp, src_ptr);
}
__ add(dst, arrayOopDesc::base_offset_in_bytes(basic_type), dst_ptr);
if (shift == 0) {
__ add(dst_ptr, dst_pos, dst_ptr);
} else {
__ sll(dst_pos, shift, tmp);
__ add(dst_ptr, tmp, dst_ptr);
}
__ mov(length, len);
__ load_klass(dst, tmp);
int ek_offset = (klassOopDesc::header_size() * HeapWordSize +
objArrayKlass::element_klass_offset_in_bytes());
__ ld_ptr(tmp, ek_offset, super_k);
int sco_offset = (klassOopDesc::header_size() * HeapWordSize +
Klass::super_check_offset_offset_in_bytes());
__ lduw(super_k, sco_offset, chk_off);
__ call_VM_leaf(tmp, copyfunc_addr);
#ifndef PRODUCT
if (PrintC1Statistics) {
Label failed;
__ br_notnull(O0, false, Assembler::pn, failed);
__ delayed()->nop();
__ inc_counter((address)&Runtime1::_arraycopy_checkcast_cnt, G1, G3);
__ bind(failed);
}
#endif
__ br_null(O0, false, Assembler::pt, *stub->continuation());
__ delayed()->xor3(O0, -1, tmp);
#ifndef PRODUCT
if (PrintC1Statistics) {
__ inc_counter((address)&Runtime1::_arraycopy_checkcast_attempt_cnt, G1, G3);
}
#endif
__ sub(length, tmp, length);
__ add(src_pos, tmp, src_pos);
__ br(Assembler::always, false, Assembler::pt, *stub->entry());
__ delayed()->add(dst_pos, tmp, dst_pos);
__ bind(cont);
} else {
__ br(Assembler::equal, false, Assembler::pn, *stub->entry());
__ delayed()->nop();
__ bind(cont);
}
}
__ delayed()->nop();
}
#ifdef ASSERT
@ -2207,14 +2347,18 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
}
#endif
int shift = shift_amount(basic_type);
#ifndef PRODUCT
if (PrintC1Statistics) {
address counter = Runtime1::arraycopy_count_address(basic_type);
__ inc_counter(counter, G1, G3);
}
#endif
Register src_ptr = O0;
Register dst_ptr = O1;
Register len = O2;
__ add(src, arrayOopDesc::base_offset_in_bytes(basic_type), src_ptr);
LP64_ONLY(__ sra(src_pos, 0, src_pos);) //higher 32bits must be null
if (shift == 0) {
__ add(src_ptr, src_pos, src_ptr);
} else {
@ -2223,7 +2367,6 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
}
__ add(dst, arrayOopDesc::base_offset_in_bytes(basic_type), dst_ptr);
LP64_ONLY(__ sra(dst_pos, 0, dst_pos);) //higher 32bits must be null
if (shift == 0) {
__ add(dst_ptr, dst_pos, dst_ptr);
} else {
@ -2231,18 +2374,14 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
__ add(dst_ptr, tmp, dst_ptr);
}
if (basic_type != T_OBJECT) {
if (shift == 0) {
__ mov(length, len);
} else {
__ sll(length, shift, len);
}
__ call_VM_leaf(tmp, CAST_FROM_FN_PTR(address, Runtime1::primitive_arraycopy));
} else {
// oop_arraycopy takes a length in number of elements, so don't scale it.
__ mov(length, len);
__ call_VM_leaf(tmp, CAST_FROM_FN_PTR(address, Runtime1::oop_arraycopy));
}
bool disjoint = (flags & LIR_OpArrayCopy::overlapping) == 0;
bool aligned = (flags & LIR_OpArrayCopy::unaligned) == 0;
const char *name;
address entry = StubRoutines::select_arraycopy_function(basic_type, aligned, disjoint, name, false);
// arraycopy stubs takes a length in number of elements, so don't scale it.
__ mov(length, len);
__ call_VM_leaf(tmp, entry);
__ bind(*stub->continuation());
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 2011, 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
@ -387,7 +387,7 @@ void C1_MacroAssembler::verify_stack_oop(int stack_offset) {
void C1_MacroAssembler::verify_not_null_oop(Register r) {
Label not_null;
br_zero(Assembler::notEqual, false, Assembler::pt, r, not_null);
br_notnull(r, false, Assembler::pt, not_null);
delayed()->nop();
stop("non-null oop required");
bind(not_null);

View File

@ -1188,8 +1188,8 @@ void CppInterpreterGenerator::generate_compute_interpreter_state(const Register
__ st_ptr(O2, XXX_STATE(_stack)); // PREPUSH
__ lduh(max_stack, O3); // Full size expression stack
guarantee(!EnableMethodHandles, "no support yet for java.lang.invoke.MethodHandle"); //6815692
//6815692//if (EnableMethodHandles)
guarantee(!EnableInvokeDynamic, "no support yet for java.lang.invoke.MethodHandle"); //6815692
//6815692//if (EnableInvokeDynamic)
//6815692// __ inc(O3, methodOopDesc::extra_stack_entries());
__ sll(O3, LogBytesPerWord, O3);
__ sub(O2, O3, O3);

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2004, 2011, 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

View File

@ -743,12 +743,12 @@ void InterpreterMacroAssembler::get_cache_index_at_bcp(Register cache, Register
if (index_size == sizeof(u2)) {
get_2_byte_integer_at_bcp(bcp_offset, cache, tmp, Unsigned);
} else if (index_size == sizeof(u4)) {
assert(EnableInvokeDynamic, "giant index used only for EnableInvokeDynamic");
assert(EnableInvokeDynamic, "giant index used only for JSR 292");
get_4_byte_integer_at_bcp(bcp_offset, cache, tmp);
assert(constantPoolCacheOopDesc::decode_secondary_index(~123) == 123, "else change next line");
xor3(tmp, -1, tmp); // convert to plain index
} else if (index_size == sizeof(u1)) {
assert(EnableMethodHandles, "tiny index used only for EnableMethodHandles");
assert(EnableInvokeDynamic, "tiny index used only for JSR 292");
ldub(Lbcp, bcp_offset, tmp);
} else {
ShouldNotReachHere();

View File

@ -262,7 +262,7 @@ address InterpreterGenerator::generate_abstract_entry(void) {
// Method handle invoker
// Dispatch a method of the form java.lang.invoke.MethodHandles::invoke(...)
address InterpreterGenerator::generate_method_handle_entry(void) {
if (!EnableMethodHandles) {
if (!EnableInvokeDynamic) {
return generate_abstract_entry();
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2011, 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

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2011, 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

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2011, 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

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1998, 2011, 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

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2011, 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
@ -1769,6 +1769,7 @@ static void create_inner_frame(MacroAssembler* masm, bool* already_created) {
// returns.
nmethod *SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
methodHandle method,
int compile_id,
int total_in_args,
int comp_args_on_stack, // in VMRegStackSlots
BasicType *in_sig_bt,
@ -2462,6 +2463,7 @@ nmethod *SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
__ flush();
nmethod *nm = nmethod::new_native_nmethod(method,
compile_id,
masm->code(),
vep_offset,
frame_complete,

View File

@ -1843,6 +1843,10 @@ const int Matcher::init_array_short_size = 8 * BytesPerLong;
// registers? True for Intel but false for most RISCs
const bool Matcher::clone_shift_expressions = false;
// Do we need to mask the count passed to shift instructions or does
// the cpu only look at the lower 5/6 bits anyway?
const bool Matcher::need_masked_shift_count = false;
bool Matcher::narrow_oop_use_complex_address() {
NOT_LP64(ShouldNotCallThis());
assert(UseCompressedOops, "only for compressed oops code");

View File

@ -334,8 +334,8 @@ void TemplateTable::ldc(bool wide) {
void TemplateTable::fast_aldc(bool wide) {
transition(vtos, atos);
if (!EnableMethodHandles) {
// We should not encounter this bytecode if !EnableMethodHandles.
if (!EnableInvokeDynamic) {
// We should not encounter this bytecode if !EnableInvokeDynamic.
// The verifier will stop it. However, if we get past the verifier,
// this will stop the thread in a reasonable way, without crashing the JVM.
__ call_VM(noreg, CAST_FROM_FN_PTR(address,

View File

@ -3510,7 +3510,6 @@ bool Assembler::reachable(AddressLiteral adr) {
// anywhere in the codeCache then we are always reachable.
// This would have to change if we ever save/restore shared code
// to be more pessimistic.
disp = (int64_t)adr._target - ((int64_t)CodeCache::low_bound() + sizeof(int));
if (!is_simm32(disp)) return false;
disp = (int64_t)adr._target - ((int64_t)CodeCache::high_bound() + sizeof(int));
@ -3534,6 +3533,14 @@ bool Assembler::reachable(AddressLiteral adr) {
return is_simm32(disp);
}
// Check if the polling page is not reachable from the code cache using rip-relative
// addressing.
bool Assembler::is_polling_page_far() {
intptr_t addr = (intptr_t)os::get_polling_page();
return !is_simm32(addr - (intptr_t)CodeCache::low_bound()) ||
!is_simm32(addr - (intptr_t)CodeCache::high_bound());
}
void Assembler::emit_data64(jlong data,
relocInfo::relocType rtype,
int format) {
@ -6886,6 +6893,11 @@ void MacroAssembler::sign_extend_short(Register reg) {
}
}
void MacroAssembler::testl(Register dst, AddressLiteral src) {
assert(reachable(src), "Address should be reachable");
testl(dst, as_Address(src));
}
//////////////////////////////////////////////////////////////////////////////////
#ifndef SERIALGC
@ -7121,17 +7133,6 @@ void MacroAssembler::subptr(Register dst, Register src) {
LP64_ONLY(subq(dst, src)) NOT_LP64(subl(dst, src));
}
void MacroAssembler::test32(Register src1, AddressLiteral src2) {
// src2 must be rval
if (reachable(src2)) {
testl(src1, as_Address(src2));
} else {
lea(rscratch1, src2);
testl(src1, Address(rscratch1, 0));
}
}
// C++ bool manipulation
void MacroAssembler::testbool(Register dst) {
if(sizeof(bool) == 1)
@ -7768,6 +7769,28 @@ void MacroAssembler::xorps(XMMRegister dst, AddressLiteral src) {
}
}
void MacroAssembler::cmov32(Condition cc, Register dst, Address src) {
if (VM_Version::supports_cmov()) {
cmovl(cc, dst, src);
} else {
Label L;
jccb(negate_condition(cc), L);
movl(dst, src);
bind(L);
}
}
void MacroAssembler::cmov32(Condition cc, Register dst, Register src) {
if (VM_Version::supports_cmov()) {
cmovl(cc, dst, src);
} else {
Label L;
jccb(negate_condition(cc), L);
movl(dst, src);
bind(L);
}
}
void MacroAssembler::verify_oop(Register reg, const char* s) {
if (!VerifyOops) return;
@ -7918,12 +7941,12 @@ void MacroAssembler::verify_oop_addr(Address addr, const char* s) {
#endif
push(rax); // save rax,
// addr may contain rsp so we will have to adjust it based on the push
// we just did
// we just did (and on 64 bit we do two pushes)
// NOTE: 64bit seemed to have had a bug in that it did movq(addr, rax); which
// stores rax into addr which is backwards of what was intended.
if (addr.uses(rsp)) {
lea(rax, addr);
pushptr(Address(rax, BytesPerWord));
pushptr(Address(rax, LP64_ONLY(2 *) BytesPerWord));
} else {
pushptr(addr);
}
@ -8373,6 +8396,17 @@ void MacroAssembler::load_heap_oop(Register dst, Address src) {
movptr(dst, src);
}
// Doesn't do verfication, generates fixed size code
void MacroAssembler::load_heap_oop_not_null(Register dst, Address src) {
#ifdef _LP64
if (UseCompressedOops) {
movl(dst, src);
decode_heap_oop_not_null(dst);
} else
#endif
movptr(dst, src);
}
void MacroAssembler::store_heap_oop(Address dst, Register src) {
#ifdef _LP64
if (UseCompressedOops) {
@ -9018,14 +9052,7 @@ void MacroAssembler::string_compare(Register str1, Register str2,
movl(result, cnt1);
subl(cnt1, cnt2);
push(cnt1);
if (VM_Version::supports_cmov()) {
cmovl(Assembler::lessEqual, cnt2, result);
} else {
Label GT_LABEL;
jccb(Assembler::greater, GT_LABEL);
movl(cnt2, result);
bind(GT_LABEL);
}
cmov32(Assembler::lessEqual, cnt2, result);
// Is the minimum length zero?
testl(cnt2, cnt2);

View File

@ -385,10 +385,18 @@ class OopAddress: public AddressLiteral {
};
class ExternalAddress: public AddressLiteral {
private:
static relocInfo::relocType reloc_for_target(address target) {
// Sometimes ExternalAddress is used for values which aren't
// exactly addresses, like the card table base.
// external_word_type can't be used for values in the first page
// so just skip the reloc in that case.
return external_word_Relocation::can_be_relocated(target) ? relocInfo::external_word_type : relocInfo::none;
}
public:
public:
ExternalAddress(address target) : AddressLiteral(target, relocInfo::external_word_type){}
ExternalAddress(address target) : AddressLiteral(target, reloc_for_target(target)) {}
};
@ -580,7 +588,6 @@ private:
void emit_data64(jlong data, relocInfo::relocType rtype, int format = 0);
void emit_data64(jlong data, RelocationHolder const& rspec, int format = 0);
bool reachable(AddressLiteral adr) NOT_LP64({ return true;});
// These are all easily abused and hence protected
@ -683,6 +690,8 @@ private:
static bool is_simm32(int32_t x) { return true; }
#endif // _LP64
static bool is_polling_page_far() NOT_LP64({ return false;});
// Generic instructions
// Does 32bit or 64bit as needed for the platform. In some sense these
// belong in macro assembler but there is no need for both varieties to exist
@ -1700,6 +1709,7 @@ class MacroAssembler: public Assembler {
void store_klass(Register dst, Register src);
void load_heap_oop(Register dst, Address src);
void load_heap_oop_not_null(Register dst, Address src);
void store_heap_oop(Address dst, Register src);
// Used for storing NULL. All other oop constants should be
@ -2094,7 +2104,10 @@ class MacroAssembler: public Assembler {
void leal32(Register dst, Address src) { leal(dst, src); }
void test32(Register src1, AddressLiteral src2);
// Import other testl() methods from the parent class or else
// they will be hidden by the following overriding declaration.
using Assembler::testl;
void testl(Register dst, AddressLiteral src);
void orptr(Register dst, Address src) { LP64_ONLY(orq(dst, src)) NOT_LP64(orl(dst, src)); }
void orptr(Register dst, Register src) { LP64_ONLY(orq(dst, src)) NOT_LP64(orl(dst, src)); }
@ -2240,10 +2253,13 @@ public:
// Data
void cmov(Condition cc, Register dst, Register src) { LP64_ONLY(cmovq(cc, dst, src)) NOT_LP64(cmovl(cc, dst, src)); }
void cmov32( Condition cc, Register dst, Address src);
void cmov32( Condition cc, Register dst, Register src);
void cmovptr(Condition cc, Register dst, Address src) { LP64_ONLY(cmovq(cc, dst, src)) NOT_LP64(cmovl(cc, dst, src)); }
void cmovptr(Condition cc, Register dst, Register src) { LP64_ONLY(cmovq(cc, dst, src)) NOT_LP64(cmovl(cc, dst, src)); }
void cmov( Condition cc, Register dst, Register src) { cmovptr(cc, dst, src); }
void cmovptr(Condition cc, Register dst, Address src) { LP64_ONLY(cmovq(cc, dst, src)) NOT_LP64(cmov32(cc, dst, src)); }
void cmovptr(Condition cc, Register dst, Register src) { LP64_ONLY(cmovq(cc, dst, src)) NOT_LP64(cmov32(cc, dst, src)); }
void movoop(Register dst, jobject obj);
void movoop(Address dst, jobject obj);

View File

@ -316,7 +316,9 @@ void PatchingStub::emit_code(LIR_Assembler* ce) {
Register tmp2 = rbx;
__ push(tmp);
__ push(tmp2);
__ load_heap_oop(tmp2, Address(_obj, java_lang_Class::klass_offset_in_bytes()));
// Load without verification to keep code size small. We need it because
// begin_initialized_entry_offset has to fit in a byte. Also, we know it's not null.
__ load_heap_oop_not_null(tmp2, Address(_obj, java_lang_Class::klass_offset_in_bytes()));
__ get_thread(tmp);
__ cmpptr(tmp, Address(tmp2, instanceKlass::init_thread_offset_in_bytes() + sizeof(klassOopDesc)));
__ pop(tmp2);

View File

@ -23,6 +23,7 @@
*/
#include "precompiled.hpp"
#include "asm/assembler.hpp"
#include "c1/c1_Compilation.hpp"
#include "c1/c1_LIRAssembler.hpp"
#include "c1/c1_MacroAssembler.hpp"
@ -569,24 +570,13 @@ void LIR_Assembler::emit_string_compare(LIR_Opr arg0, LIR_Opr arg1, LIR_Opr dst,
__ lea (rdi, Address(rdi, rcx, Address::times_2, arrayOopDesc::base_offset_in_bytes(T_CHAR)));
// compute minimum length (in rax) and difference of lengths (on top of stack)
if (VM_Version::supports_cmov()) {
__ movl (rbx, Address(rbx, java_lang_String::count_offset_in_bytes()));
__ movl (rax, Address(rax, java_lang_String::count_offset_in_bytes()));
__ mov (rcx, rbx);
__ subptr (rbx, rax); // subtract lengths
__ push (rbx); // result
__ cmov (Assembler::lessEqual, rax, rcx);
} else {
Label L;
__ movl (rbx, Address(rbx, java_lang_String::count_offset_in_bytes()));
__ movl (rcx, Address(rax, java_lang_String::count_offset_in_bytes()));
__ mov (rax, rbx);
__ subptr (rbx, rcx);
__ push (rbx);
__ jcc (Assembler::lessEqual, L);
__ mov (rax, rcx);
__ bind (L);
}
__ movl (rbx, Address(rbx, java_lang_String::count_offset_in_bytes()));
__ movl (rax, Address(rax, java_lang_String::count_offset_in_bytes()));
__ mov (rcx, rbx);
__ subptr(rbx, rax); // subtract lengths
__ push (rbx); // result
__ cmov (Assembler::lessEqual, rax, rcx);
// is minimum length 0?
Label noLoop, haveResult;
__ testptr (rax, rax);
@ -648,12 +638,13 @@ void LIR_Assembler::return_op(LIR_Opr result) {
AddressLiteral polling_page(os::get_polling_page() + (SafepointPollOffset % os::vm_page_size()),
relocInfo::poll_return_type);
// NOTE: the requires that the polling page be reachable else the reloc
// goes to the movq that loads the address and not the faulting instruction
// which breaks the signal handler code
__ test32(rax, polling_page);
if (Assembler::is_polling_page_far()) {
__ lea(rscratch1, polling_page);
__ relocate(relocInfo::poll_return_type);
__ testl(rax, Address(rscratch1, 0));
} else {
__ testl(rax, polling_page);
}
__ ret(0);
}
@ -661,20 +652,17 @@ void LIR_Assembler::return_op(LIR_Opr result) {
int LIR_Assembler::safepoint_poll(LIR_Opr tmp, CodeEmitInfo* info) {
AddressLiteral polling_page(os::get_polling_page() + (SafepointPollOffset % os::vm_page_size()),
relocInfo::poll_type);
if (info != NULL) {
add_debug_info_for_branch(info);
} else {
ShouldNotReachHere();
}
guarantee(info != NULL, "Shouldn't be NULL");
int offset = __ offset();
// NOTE: the requires that the polling page be reachable else the reloc
// goes to the movq that loads the address and not the faulting instruction
// which breaks the signal handler code
__ test32(rax, polling_page);
if (Assembler::is_polling_page_far()) {
__ lea(rscratch1, polling_page);
offset = __ offset();
add_debug_info_for_branch(info);
__ testl(rax, Address(rscratch1, 0));
} else {
add_debug_info_for_branch(info);
__ testl(rax, polling_page);
}
return offset;
}
@ -3114,7 +3102,7 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
BasicType basic_type = default_type != NULL ? default_type->element_type()->basic_type() : T_ILLEGAL;
if (basic_type == T_ARRAY) basic_type = T_OBJECT;
// if we don't know anything or it's an object array, just go through the generic arraycopy
// if we don't know anything, just go through the generic arraycopy
if (default_type == NULL) {
Label done;
// save outgoing arguments on stack in case call to System.arraycopy is needed
@ -3135,7 +3123,9 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
store_parameter(src, 4);
NOT_LP64(assert(src == rcx && src_pos == rdx, "mismatch in calling convention");)
address entry = CAST_FROM_FN_PTR(address, Runtime1::arraycopy);
address C_entry = CAST_FROM_FN_PTR(address, Runtime1::arraycopy);
address copyfunc_addr = StubRoutines::generic_arraycopy();
// pass arguments: may push as this is not a safepoint; SP must be fix at each safepoint
#ifdef _LP64
@ -3153,11 +3143,29 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
// Allocate abi space for args but be sure to keep stack aligned
__ subptr(rsp, 6*wordSize);
store_parameter(j_rarg4, 4);
__ call(RuntimeAddress(entry));
if (copyfunc_addr == NULL) { // Use C version if stub was not generated
__ call(RuntimeAddress(C_entry));
} else {
#ifndef PRODUCT
if (PrintC1Statistics) {
__ incrementl(ExternalAddress((address)&Runtime1::_generic_arraycopystub_cnt));
}
#endif
__ call(RuntimeAddress(copyfunc_addr));
}
__ addptr(rsp, 6*wordSize);
#else
__ mov(c_rarg4, j_rarg4);
__ call(RuntimeAddress(entry));
if (copyfunc_addr == NULL) { // Use C version if stub was not generated
__ call(RuntimeAddress(C_entry));
} else {
#ifndef PRODUCT
if (PrintC1Statistics) {
__ incrementl(ExternalAddress((address)&Runtime1::_generic_arraycopystub_cnt));
}
#endif
__ call(RuntimeAddress(copyfunc_addr));
}
#endif // _WIN64
#else
__ push(length);
@ -3165,13 +3173,28 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
__ push(dst);
__ push(src_pos);
__ push(src);
__ call_VM_leaf(entry, 5); // removes pushed parameter from the stack
if (copyfunc_addr == NULL) { // Use C version if stub was not generated
__ call_VM_leaf(C_entry, 5); // removes pushed parameter from the stack
} else {
#ifndef PRODUCT
if (PrintC1Statistics) {
__ incrementl(ExternalAddress((address)&Runtime1::_generic_arraycopystub_cnt));
}
#endif
__ call_VM_leaf(copyfunc_addr, 5); // removes pushed parameter from the stack
}
#endif // _LP64
__ cmpl(rax, 0);
__ jcc(Assembler::equal, *stub->continuation());
if (copyfunc_addr != NULL) {
__ mov(tmp, rax);
__ xorl(tmp, -1);
}
// Reload values from the stack so they are where the stub
// expects them.
__ movptr (dst, Address(rsp, 0*BytesPerWord));
@ -3179,6 +3202,12 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
__ movptr (length, Address(rsp, 2*BytesPerWord));
__ movptr (src_pos, Address(rsp, 3*BytesPerWord));
__ movptr (src, Address(rsp, 4*BytesPerWord));
if (copyfunc_addr != NULL) {
__ subl(length, tmp);
__ addl(src_pos, tmp);
__ addl(dst_pos, tmp);
}
__ jmp(*stub->entry());
__ bind(*stub->continuation());
@ -3238,10 +3267,6 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
__ testl(dst_pos, dst_pos);
__ jcc(Assembler::less, *stub->entry());
}
if (flags & LIR_OpArrayCopy::length_positive_check) {
__ testl(length, length);
__ jcc(Assembler::less, *stub->entry());
}
if (flags & LIR_OpArrayCopy::src_range_check) {
__ lea(tmp, Address(src_pos, length, Address::times_1, 0));
@ -3254,15 +3279,190 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
__ jcc(Assembler::above, *stub->entry());
}
if (flags & LIR_OpArrayCopy::length_positive_check) {
__ testl(length, length);
__ jcc(Assembler::less, *stub->entry());
__ jcc(Assembler::zero, *stub->continuation());
}
#ifdef _LP64
__ movl2ptr(src_pos, src_pos); //higher 32bits must be null
__ movl2ptr(dst_pos, dst_pos); //higher 32bits must be null
#endif
if (flags & LIR_OpArrayCopy::type_check) {
if (UseCompressedOops) {
__ movl(tmp, src_klass_addr);
__ cmpl(tmp, dst_klass_addr);
// We don't know the array types are compatible
if (basic_type != T_OBJECT) {
// Simple test for basic type arrays
if (UseCompressedOops) {
__ movl(tmp, src_klass_addr);
__ cmpl(tmp, dst_klass_addr);
} else {
__ movptr(tmp, src_klass_addr);
__ cmpptr(tmp, dst_klass_addr);
}
__ jcc(Assembler::notEqual, *stub->entry());
} else {
__ movptr(tmp, src_klass_addr);
__ cmpptr(tmp, dst_klass_addr);
// For object arrays, if src is a sub class of dst then we can
// safely do the copy.
Label cont, slow;
__ push(src);
__ push(dst);
__ load_klass(src, src);
__ load_klass(dst, dst);
__ check_klass_subtype_fast_path(src, dst, tmp, &cont, &slow, NULL);
__ push(src);
__ push(dst);
__ call(RuntimeAddress(Runtime1::entry_for(Runtime1::slow_subtype_check_id)));
__ pop(dst);
__ pop(src);
__ cmpl(src, 0);
__ jcc(Assembler::notEqual, cont);
__ bind(slow);
__ pop(dst);
__ pop(src);
address copyfunc_addr = StubRoutines::checkcast_arraycopy();
if (copyfunc_addr != NULL) { // use stub if available
// src is not a sub class of dst so we have to do a
// per-element check.
int mask = LIR_OpArrayCopy::src_objarray|LIR_OpArrayCopy::dst_objarray;
if ((flags & mask) != mask) {
// Check that at least both of them object arrays.
assert(flags & mask, "one of the two should be known to be an object array");
if (!(flags & LIR_OpArrayCopy::src_objarray)) {
__ load_klass(tmp, src);
} else if (!(flags & LIR_OpArrayCopy::dst_objarray)) {
__ load_klass(tmp, dst);
}
int lh_offset = klassOopDesc::header_size() * HeapWordSize +
Klass::layout_helper_offset_in_bytes();
Address klass_lh_addr(tmp, lh_offset);
jint objArray_lh = Klass::array_layout_helper(T_OBJECT);
__ cmpl(klass_lh_addr, objArray_lh);
__ jcc(Assembler::notEqual, *stub->entry());
}
#ifndef _LP64
// save caller save registers
store_parameter(rax, 2);
store_parameter(rcx, 1);
store_parameter(rdx, 0);
__ movptr(tmp, dst_klass_addr);
__ movptr(tmp, Address(tmp, objArrayKlass::element_klass_offset_in_bytes() + sizeof(oopDesc)));
__ push(tmp);
__ movl(tmp, Address(tmp, Klass::super_check_offset_offset_in_bytes() + sizeof(oopDesc)));
__ push(tmp);
__ push(length);
__ lea(tmp, Address(dst, dst_pos, scale, arrayOopDesc::base_offset_in_bytes(basic_type)));
__ push(tmp);
__ lea(tmp, Address(src, src_pos, scale, arrayOopDesc::base_offset_in_bytes(basic_type)));
__ push(tmp);
__ call_VM_leaf(copyfunc_addr, 5);
#else
__ movl2ptr(length, length); //higher 32bits must be null
// save caller save registers: copy them to callee save registers
__ mov(rbx, rdx);
__ mov(r13, r8);
__ mov(r14, r9);
#ifndef _WIN64
store_parameter(rsi, 1);
store_parameter(rcx, 0);
// on WIN64 other incoming parameters are in rdi and rsi saved
// across the call
#endif
__ lea(c_rarg0, Address(src, src_pos, scale, arrayOopDesc::base_offset_in_bytes(basic_type)));
assert_different_registers(c_rarg0, dst, dst_pos, length);
__ lea(c_rarg1, Address(dst, dst_pos, scale, arrayOopDesc::base_offset_in_bytes(basic_type)));
assert_different_registers(c_rarg1, dst, length);
__ mov(c_rarg2, length);
assert_different_registers(c_rarg2, dst);
#ifdef _WIN64
// Allocate abi space for args but be sure to keep stack aligned
__ subptr(rsp, 6*wordSize);
__ load_klass(c_rarg3, dst);
__ movptr(c_rarg3, Address(c_rarg3, objArrayKlass::element_klass_offset_in_bytes() + sizeof(oopDesc)));
store_parameter(c_rarg3, 4);
__ movl(c_rarg3, Address(c_rarg3, Klass::super_check_offset_offset_in_bytes() + sizeof(oopDesc)));
__ call(RuntimeAddress(copyfunc_addr));
__ addptr(rsp, 6*wordSize);
#else
__ load_klass(c_rarg4, dst);
__ movptr(c_rarg4, Address(c_rarg4, objArrayKlass::element_klass_offset_in_bytes() + sizeof(oopDesc)));
__ movl(c_rarg3, Address(c_rarg4, Klass::super_check_offset_offset_in_bytes() + sizeof(oopDesc)));
__ call(RuntimeAddress(copyfunc_addr));
#endif
#endif
#ifndef PRODUCT
if (PrintC1Statistics) {
Label failed;
__ testl(rax, rax);
__ jcc(Assembler::notZero, failed);
__ incrementl(ExternalAddress((address)&Runtime1::_arraycopy_checkcast_cnt));
__ bind(failed);
}
#endif
__ testl(rax, rax);
__ jcc(Assembler::zero, *stub->continuation());
#ifndef PRODUCT
if (PrintC1Statistics) {
__ incrementl(ExternalAddress((address)&Runtime1::_arraycopy_checkcast_attempt_cnt));
}
#endif
__ mov(tmp, rax);
__ xorl(tmp, -1);
#ifndef _LP64
// restore caller save registers
assert_different_registers(tmp, rdx, rcx, rax); // result of stub will be lost
__ movptr(rdx, Address(rsp, 0*BytesPerWord));
__ movptr(rcx, Address(rsp, 1*BytesPerWord));
__ movptr(rax, Address(rsp, 2*BytesPerWord));
#else
// restore caller save registers
__ mov(rdx, rbx);
__ mov(r8, r13);
__ mov(r9, r14);
#ifndef _WIN64
assert_different_registers(tmp, rdx, r8, r9, rcx, rsi); // result of stub will be lost
__ movptr(rcx, Address(rsp, 0*BytesPerWord));
__ movptr(rsi, Address(rsp, 1*BytesPerWord));
#else
assert_different_registers(tmp, rdx, r8, r9); // result of stub will be lost
#endif
#endif
__ subl(length, tmp);
__ addl(src_pos, tmp);
__ addl(dst_pos, tmp);
}
__ jmp(*stub->entry());
__ bind(cont);
__ pop(dst);
__ pop(src);
}
__ jcc(Assembler::notEqual, *stub->entry());
}
#ifdef ASSERT
@ -3303,16 +3503,16 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
}
#endif
if (shift_amount > 0 && basic_type != T_OBJECT) {
__ shlptr(length, shift_amount);
#ifndef PRODUCT
if (PrintC1Statistics) {
__ incrementl(ExternalAddress(Runtime1::arraycopy_count_address(basic_type)));
}
#endif
#ifdef _LP64
assert_different_registers(c_rarg0, dst, dst_pos, length);
__ movl2ptr(src_pos, src_pos); //higher 32bits must be null
__ lea(c_rarg0, Address(src, src_pos, scale, arrayOopDesc::base_offset_in_bytes(basic_type)));
assert_different_registers(c_rarg1, length);
__ movl2ptr(dst_pos, dst_pos); //higher 32bits must be null
__ lea(c_rarg1, Address(dst, dst_pos, scale, arrayOopDesc::base_offset_in_bytes(basic_type)));
__ mov(c_rarg2, length);
@ -3323,11 +3523,12 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
store_parameter(tmp, 1);
store_parameter(length, 2);
#endif // _LP64
if (basic_type == T_OBJECT) {
__ call_VM_leaf(CAST_FROM_FN_PTR(address, Runtime1::oop_arraycopy), 0);
} else {
__ call_VM_leaf(CAST_FROM_FN_PTR(address, Runtime1::primitive_arraycopy), 0);
}
bool disjoint = (flags & LIR_OpArrayCopy::overlapping) == 0;
bool aligned = (flags & LIR_OpArrayCopy::unaligned) == 0;
const char *name;
address entry = StubRoutines::select_arraycopy_function(basic_type, aligned, disjoint, name, false);
__ call_VM_leaf(entry, 0);
__ bind(*stub->continuation());
}

Some files were not shown because too many files have changed in this diff Show More