Merge
This commit is contained in:
commit
1ca38d0e9d
@ -16,3 +16,4 @@ cc47a76899ed33a2c513cb688348244c9b5a1288 jdk7-b38
|
||||
ab523b49de1fc73fefe6855ce1e0349bdbd7af29 jdk7-b39
|
||||
44be42de6693063fb191989bf0e188de2fa51e7c jdk7-b40
|
||||
541bdc5ad32fc33255944d0a044ad992f3d915e8 jdk7-b41
|
||||
94052b87287303527125026fe4b2698cf867ea83 jdk7-b42
|
||||
|
@ -16,3 +16,4 @@ d9bc824aa078573829bb66572af847e26e1bd12e jdk7-b38
|
||||
49ca90d77f34571b0757ebfcb8a7848ef2696b88 jdk7-b39
|
||||
81a0cbe3b28460ce836109934ece03db7afaf9cc jdk7-b40
|
||||
f9d938ede1960d18cb7cf23c645b026519c1a678 jdk7-b41
|
||||
ad8c8ca4ab0f4c86e74c061958f44a8f4a930f2c jdk7-b42
|
||||
|
@ -35,7 +35,7 @@ HOTSPOT_VM_COPYRIGHT=Copyright 2008
|
||||
|
||||
HS_MAJOR_VER=14
|
||||
HS_MINOR_VER=0
|
||||
HS_BUILD_NUMBER=09
|
||||
HS_BUILD_NUMBER=10
|
||||
|
||||
JDK_MAJOR_VER=1
|
||||
JDK_MINOR_VER=7
|
||||
|
@ -7,5 +7,13 @@
|
||||
#
|
||||
# adlc-updater <file> <source-dir> <target-dir>
|
||||
#
|
||||
[ -f $3/$1 ] && cmp -s $2/$1 $3/$1 || \
|
||||
( [ -f $3/$1 ]; echo Updating $3/$1 ; touch $2/made-change ; mv $2/$1 $3/$1 )
|
||||
fix_lines() {
|
||||
# repair bare #line directives in $1 to refer to $2
|
||||
awk < $1 > $1+ '
|
||||
/^#line 999999$/ {print "#line " (NR+1) " \"" F2 "\""; next}
|
||||
{print}
|
||||
' F2=$2
|
||||
mv $1+ $1
|
||||
}
|
||||
[ -f $3/$1 ] && (fix_lines $2/$1 $3/$1; cmp -s $2/$1 $3/$1) || \
|
||||
( [ -f $3/$1 ] && echo Updating $3/$1 ; touch $2/made-change ; mv $2/$1 $3/$1 )
|
||||
|
@ -54,10 +54,12 @@ VPATH += $(Src_Dirs_V:%=%:)
|
||||
Src_Dirs_I = ${Src_Dirs} $(GENERATED)
|
||||
INCLUDES += $(Src_Dirs_I:%=-I%)
|
||||
|
||||
# Force assertions on.
|
||||
SYSDEFS += -DASSERT
|
||||
# set flags for adlc compilation
|
||||
CPPFLAGS = $(SYSDEFS) $(INCLUDES)
|
||||
|
||||
# Force assertions on.
|
||||
CPPFLAGS += -DASSERT
|
||||
|
||||
# CFLAGS_WARN holds compiler options to suppress/enable warnings.
|
||||
# Suppress warnings (for now)
|
||||
CFLAGS_WARN = -w
|
||||
@ -125,7 +127,15 @@ $(GENERATEDFILES): refresh_adfiles
|
||||
# Note that product files are updated via "mv", which is atomic.
|
||||
TEMPDIR := $(OUTDIR)/mktmp$(shell echo $$$$)
|
||||
|
||||
ADLCFLAGS = -q -T
|
||||
# Pass -D flags into ADLC.
|
||||
ADLCFLAGS += $(SYSDEFS)
|
||||
|
||||
# Note "+="; it is a hook so flags.make can add more flags, like -g or -DFOO.
|
||||
ADLCFLAGS += -q -T
|
||||
|
||||
# Normally, debugging is done directly on the ad_<arch>*.cpp files.
|
||||
# But -g will put #line directives in those files pointing back to <arch>.ad.
|
||||
#ADLCFLAGS += -g
|
||||
|
||||
ifdef LP64
|
||||
ADLCFLAGS += -D_LP64
|
||||
@ -140,6 +150,8 @@ endif
|
||||
#
|
||||
ADLC_UPDATER_DIRECTORY = $(GAMMADIR)/make/$(OS)
|
||||
ADLC_UPDATER = adlc_updater
|
||||
$(ADLC_UPDATER): $(ADLC_UPDATER_DIRECTORY)/$(ADLC_UPDATER)
|
||||
$(QUIETLY) cp $< $@; chmod +x $@
|
||||
|
||||
# This action refreshes all generated adlc files simultaneously.
|
||||
# The way it works is this:
|
||||
@ -149,9 +161,8 @@ ADLC_UPDATER = adlc_updater
|
||||
# 4) call $(ADLC_UPDATER) on each generated adlc file. It will selectively update changed or missing files.
|
||||
# 5) If we actually updated any files, echo a notice.
|
||||
#
|
||||
refresh_adfiles: $(EXEC) $(SOURCE.AD)
|
||||
refresh_adfiles: $(EXEC) $(SOURCE.AD) $(ADLC_UPDATER)
|
||||
@rm -rf $(TEMPDIR); mkdir $(TEMPDIR)
|
||||
$(QUIETLY) [ -f $(ADLC_UPDATER) ] || ( cp $(ADLC_UPDATER_DIRECTORY)/$(ADLC_UPDATER) . ; chmod +x $(ADLC_UPDATER) )
|
||||
$(QUIETLY) $(EXEC) $(ADLCFLAGS) $(SOURCE.AD) \
|
||||
-c$(TEMPDIR)/ad_$(Platform_arch_model).cpp -h$(TEMPDIR)/ad_$(Platform_arch_model).hpp -a$(TEMPDIR)/dfa_$(Platform_arch_model).cpp -v$(TEMPDIR)/adGlobals_$(Platform_arch_model).hpp \
|
||||
|| { rm -rf $(TEMPDIR); exit 1; }
|
||||
@ -174,7 +185,15 @@ refresh_adfiles: $(EXEC) $(SOURCE.AD)
|
||||
# #########################################################################
|
||||
|
||||
$(SOURCE.AD): $(SOURCES.AD)
|
||||
$(QUIETLY) cat $(SOURCES.AD) > $(SOURCE.AD)
|
||||
$(QUIETLY) $(PROCESS_AD_FILES) $(SOURCES.AD) > $(SOURCE.AD)
|
||||
|
||||
#PROCESS_AD_FILES = cat
|
||||
# Pass through #line directives, in case user enables -g option above:
|
||||
PROCESS_AD_FILES = awk '{ \
|
||||
if (CUR_FN != FILENAME) { CUR_FN=FILENAME; NR_BASE=NR-1; need_lineno=1 } \
|
||||
if (need_lineno && $$0 !~ /\/\//) \
|
||||
{ print "\n\n\#line " (NR-NR_BASE) " \"" FILENAME "\""; need_lineno=0 }; \
|
||||
print }'
|
||||
|
||||
$(OUTDIR)/%.o: %.cpp
|
||||
@echo Compiling $<
|
||||
|
@ -7,5 +7,13 @@
|
||||
#
|
||||
# adlc-updater <file> <source-dir> <target-dir>
|
||||
#
|
||||
[ -f $3/$1 ] && cmp -s $2/$1 $3/$1 || \
|
||||
( [ -f $3/$1 ]; echo Updating $3/$1 ; touch $2/made-change ; mv $2/$1 $3/$1 )
|
||||
fix_lines() {
|
||||
# repair bare #line directives in $1 to refer to $2
|
||||
awk < $1 > $1+ '
|
||||
/^#line 999999$/ {print "#line " (NR+1) " \"" F2 "\""; next}
|
||||
{print}
|
||||
' F2=$2
|
||||
mv $1+ $1
|
||||
}
|
||||
[ -f $3/$1 ] && (fix_lines $2/$1 $3/$1; cmp -s $2/$1 $3/$1) || \
|
||||
( [ -f $3/$1 ] && echo Updating $3/$1 ; touch $2/made-change ; mv $2/$1 $3/$1 )
|
||||
|
@ -54,10 +54,12 @@ VPATH += $(Src_Dirs_V:%=%:)
|
||||
Src_Dirs_I = ${Src_Dirs} $(GENERATED)
|
||||
INCLUDES += $(Src_Dirs_I:%=-I%)
|
||||
|
||||
# Force assertions on.
|
||||
SYSDEFS += -DASSERT
|
||||
# set flags for adlc compilation
|
||||
CPPFLAGS = $(SYSDEFS) $(INCLUDES)
|
||||
|
||||
# Force assertions on.
|
||||
CPPFLAGS += -DASSERT
|
||||
|
||||
ifndef USE_GCC
|
||||
# We need libCstd.so for adlc
|
||||
CFLAGS += -library=Cstd -g
|
||||
@ -141,7 +143,15 @@ $(GENERATEDFILES): refresh_adfiles
|
||||
# Note that product files are updated via "mv", which is atomic.
|
||||
TEMPDIR := $(OUTDIR)/mktmp$(shell echo $$$$)
|
||||
|
||||
ADLCFLAGS = -q -T
|
||||
# Pass -D flags into ADLC.
|
||||
ADLCFLAGS += $(SYSDEFS)
|
||||
|
||||
# Note "+="; it is a hook so flags.make can add more flags, like -g or -DFOO.
|
||||
ADLCFLAGS += -q -T
|
||||
|
||||
# Normally, debugging is done directly on the ad_<arch>*.cpp files.
|
||||
# But -g will put #line directives in those files pointing back to <arch>.ad.
|
||||
#ADLCFLAGS += -g
|
||||
|
||||
ifdef LP64
|
||||
ADLCFLAGS += -D_LP64
|
||||
@ -156,6 +166,8 @@ endif
|
||||
#
|
||||
ADLC_UPDATER_DIRECTORY = $(GAMMADIR)/make/$(OS)
|
||||
ADLC_UPDATER = adlc_updater
|
||||
$(ADLC_UPDATER): $(ADLC_UPDATER_DIRECTORY)/$(ADLC_UPDATER)
|
||||
$(QUIETLY) cp $< $@; chmod +x $@
|
||||
|
||||
# This action refreshes all generated adlc files simultaneously.
|
||||
# The way it works is this:
|
||||
@ -165,9 +177,8 @@ ADLC_UPDATER = adlc_updater
|
||||
# 4) call $(ADLC_UPDATER) on each generated adlc file. It will selectively update changed or missing files.
|
||||
# 5) If we actually updated any files, echo a notice.
|
||||
#
|
||||
refresh_adfiles: $(EXEC) $(SOURCE.AD)
|
||||
refresh_adfiles: $(EXEC) $(SOURCE.AD) $(ADLC_UPDATER)
|
||||
@rm -rf $(TEMPDIR); mkdir $(TEMPDIR)
|
||||
$(QUIETLY) [ -f $(ADLC_UPDATER) ] || ( cp $(ADLC_UPDATER_DIRECTORY)/$(ADLC_UPDATER) . ; chmod +x $(ADLC_UPDATER) )
|
||||
$(QUIETLY) $(EXEC) $(ADLCFLAGS) $(SOURCE.AD) \
|
||||
-c$(TEMPDIR)/ad_$(Platform_arch_model).cpp -h$(TEMPDIR)/ad_$(Platform_arch_model).hpp -a$(TEMPDIR)/dfa_$(Platform_arch_model).cpp -v$(TEMPDIR)/adGlobals_$(Platform_arch_model).hpp \
|
||||
|| { rm -rf $(TEMPDIR); exit 1; }
|
||||
@ -190,7 +201,15 @@ refresh_adfiles: $(EXEC) $(SOURCE.AD)
|
||||
# #########################################################################
|
||||
|
||||
$(SOURCE.AD): $(SOURCES.AD)
|
||||
$(QUIETLY) cat $(SOURCES.AD) > $(SOURCE.AD)
|
||||
$(QUIETLY) $(PROCESS_AD_FILES) $(SOURCES.AD) > $(SOURCE.AD)
|
||||
|
||||
#PROCESS_AD_FILES = cat
|
||||
# Pass through #line directives, in case user enables -g option above:
|
||||
PROCESS_AD_FILES = awk '{ \
|
||||
if (CUR_FN != FILENAME) { CUR_FN=FILENAME; NR_BASE=NR-1; need_lineno=1 } \
|
||||
if (need_lineno && $$0 !~ /\/\//) \
|
||||
{ print "\n\n\#line " (NR-NR_BASE) " \"" FILENAME "\""; need_lineno=0 }; \
|
||||
print }'
|
||||
|
||||
$(OUTDIR)/%.o: %.cpp
|
||||
@echo Compiling $<
|
||||
|
@ -2500,7 +2500,7 @@ bool os::guard_memory(char* addr, size_t size) {
|
||||
}
|
||||
|
||||
bool os::unguard_memory(char* addr, size_t size) {
|
||||
return linux_mprotect(addr, size, PROT_READ|PROT_WRITE|PROT_EXEC);
|
||||
return linux_mprotect(addr, size, PROT_READ|PROT_WRITE);
|
||||
}
|
||||
|
||||
// Large page support
|
||||
|
@ -1638,16 +1638,24 @@ inline hrtime_t oldgetTimeNanos() {
|
||||
// getTimeNanos is guaranteed to not move backward on Solaris
|
||||
inline hrtime_t getTimeNanos() {
|
||||
if (VM_Version::supports_cx8()) {
|
||||
bool retry = false;
|
||||
hrtime_t newtime = gethrtime();
|
||||
hrtime_t oldmaxtime = max_hrtime;
|
||||
hrtime_t retmaxtime = oldmaxtime;
|
||||
while ((newtime > retmaxtime) && (retry == false || retmaxtime != oldmaxtime)) {
|
||||
oldmaxtime = retmaxtime;
|
||||
retmaxtime = Atomic::cmpxchg(newtime, (volatile jlong *)&max_hrtime, oldmaxtime);
|
||||
retry = true;
|
||||
}
|
||||
return (newtime > retmaxtime) ? newtime : retmaxtime;
|
||||
const hrtime_t now = gethrtime();
|
||||
const hrtime_t prev = max_hrtime;
|
||||
if (now <= prev) return prev; // same or retrograde time;
|
||||
const hrtime_t obsv = Atomic::cmpxchg(now, (volatile jlong*)&max_hrtime, prev);
|
||||
assert(obsv >= prev, "invariant"); // Monotonicity
|
||||
// If the CAS succeeded then we're done and return "now".
|
||||
// If the CAS failed and the observed value "obs" is >= now then
|
||||
// we should return "obs". If the CAS failed and now > obs > prv then
|
||||
// some other thread raced this thread and installed a new value, in which case
|
||||
// we could either (a) retry the entire operation, (b) retry trying to install now
|
||||
// or (c) just return obs. We use (c). No loop is required although in some cases
|
||||
// we might discard a higher "now" value in deference to a slightly lower but freshly
|
||||
// installed obs value. That's entirely benign -- it admits no new orderings compared
|
||||
// to (a) or (b) -- and greatly reduces coherence traffic.
|
||||
// We might also condition (c) on the magnitude of the delta between obs and now.
|
||||
// Avoiding excessive CAS operations to hot RW locations is critical.
|
||||
// See http://blogs.sun.com/dave/entry/cas_and_cache_trivia_invalidate
|
||||
return (prev == obsv) ? now : obsv ;
|
||||
} else {
|
||||
return oldgetTimeNanos();
|
||||
}
|
||||
@ -3026,6 +3034,8 @@ static bool solaris_mprotect(char* addr, size_t bytes, int prot) {
|
||||
|
||||
// Protect memory (Used to pass readonly pages through
|
||||
// JNI GetArray<type>Elements with empty arrays.)
|
||||
// Also, used for serialization page and for compressed oops null pointer
|
||||
// checking.
|
||||
bool os::protect_memory(char* addr, size_t bytes, ProtType prot,
|
||||
bool is_committed) {
|
||||
unsigned int p = 0;
|
||||
@ -3049,7 +3059,7 @@ bool os::guard_memory(char* addr, size_t bytes) {
|
||||
}
|
||||
|
||||
bool os::unguard_memory(char* addr, size_t bytes) {
|
||||
return solaris_mprotect(addr, bytes, PROT_READ|PROT_WRITE|PROT_EXEC);
|
||||
return solaris_mprotect(addr, bytes, PROT_READ|PROT_WRITE);
|
||||
}
|
||||
|
||||
// Large page support
|
||||
|
@ -2020,10 +2020,11 @@ LONG WINAPI topLevelExceptionFilter(struct _EXCEPTION_POINTERS* exceptionInfo) {
|
||||
if (UnguardOnExecutionViolation > 0 && addr != last_addr &&
|
||||
(UnguardOnExecutionViolation > 1 || os::address_is_in_vm(addr))) {
|
||||
|
||||
// Unguard and retry
|
||||
// Set memory to RWX and retry
|
||||
address page_start =
|
||||
(address) align_size_down((intptr_t) addr, (intptr_t) page_size);
|
||||
bool res = os::unguard_memory((char*) page_start, page_size);
|
||||
bool res = os::protect_memory((char*) page_start, page_size,
|
||||
os::MEM_PROT_RWX);
|
||||
|
||||
if (PrintMiscellaneous && Verbose) {
|
||||
char buf[256];
|
||||
@ -2755,12 +2756,12 @@ bool os::protect_memory(char* addr, size_t bytes, ProtType prot,
|
||||
|
||||
bool os::guard_memory(char* addr, size_t bytes) {
|
||||
DWORD old_status;
|
||||
return VirtualProtect(addr, bytes, PAGE_EXECUTE_READWRITE | PAGE_GUARD, &old_status) != 0;
|
||||
return VirtualProtect(addr, bytes, PAGE_READWRITE | PAGE_GUARD, &old_status) != 0;
|
||||
}
|
||||
|
||||
bool os::unguard_memory(char* addr, size_t bytes) {
|
||||
DWORD old_status;
|
||||
return VirtualProtect(addr, bytes, PAGE_EXECUTE_READWRITE, &old_status) != 0;
|
||||
return VirtualProtect(addr, bytes, PAGE_READWRITE, &old_status) != 0;
|
||||
}
|
||||
|
||||
void os::realign_memory(char *addr, size_t bytes, size_t alignment_hint) { }
|
||||
|
@ -422,10 +422,11 @@ JVM_handle_linux_signal(int sig,
|
||||
if (addr != last_addr &&
|
||||
(UnguardOnExecutionViolation > 1 || os::address_is_in_vm(addr))) {
|
||||
|
||||
// Unguard and retry
|
||||
// Set memory to RWX and retry
|
||||
address page_start =
|
||||
(address) align_size_down((intptr_t) addr, (intptr_t) page_size);
|
||||
bool res = os::unguard_memory((char*) page_start, page_size);
|
||||
bool res = os::protect_memory((char*) page_start, page_size,
|
||||
os::MEM_PROT_RWX);
|
||||
|
||||
if (PrintMiscellaneous && Verbose) {
|
||||
char buf[256];
|
||||
|
@ -203,10 +203,10 @@ frame os::get_sender_for_C_frame(frame* fr) {
|
||||
return frame(fr->sender_sp(), fr->link(), fr->sender_pc());
|
||||
}
|
||||
|
||||
extern "C" intptr_t *_get_previous_fp(); // in .il file.
|
||||
extern "C" intptr_t *_get_current_fp(); // in .il file
|
||||
|
||||
frame os::current_frame() {
|
||||
intptr_t* fp = _get_previous_fp();
|
||||
intptr_t* fp = _get_current_fp(); // it's inlined so want current fp
|
||||
frame myframe((intptr_t*)os::current_stack_pointer(),
|
||||
(intptr_t*)fp,
|
||||
CAST_FROM_FN_PTR(address, os::current_frame));
|
||||
@ -576,10 +576,11 @@ int JVM_handle_solaris_signal(int sig, siginfo_t* info, void* ucVoid, int abort_
|
||||
if (addr != last_addr &&
|
||||
(UnguardOnExecutionViolation > 1 || os::address_is_in_vm(addr))) {
|
||||
|
||||
// Unguard and retry
|
||||
// Make memory rwx and retry
|
||||
address page_start =
|
||||
(address) align_size_down((intptr_t) addr, (intptr_t) page_size);
|
||||
bool res = os::unguard_memory((char*) page_start, page_size);
|
||||
bool res = os::protect_memory((char*) page_start, page_size,
|
||||
os::MEM_PROT_RWX);
|
||||
|
||||
if (PrintMiscellaneous && Verbose) {
|
||||
char buf[256];
|
||||
|
@ -37,10 +37,10 @@
|
||||
movl %gs:0, %eax
|
||||
.end
|
||||
|
||||
// Get callers fp
|
||||
.inline _get_previous_fp,0
|
||||
// Get current fp
|
||||
.inline _get_current_fp,0
|
||||
.volatile
|
||||
movl %ebp, %eax
|
||||
movl %eax, %eax
|
||||
.end
|
||||
|
||||
// Support for jint Atomic::add(jint inc, volatile jint* dest)
|
||||
|
@ -30,10 +30,10 @@
|
||||
movq %fs:0, %rax
|
||||
.end
|
||||
|
||||
// Get the frame pointer from previous frame.
|
||||
.inline _get_previous_fp,0
|
||||
// Get the frame pointer from current frame.
|
||||
.inline _get_current_fp,0
|
||||
.volatile
|
||||
movq %rbp, %rax
|
||||
movq %rax, %rax
|
||||
.end
|
||||
|
||||
// Support for jint Atomic::add(jint add_value, volatile jint* dest)
|
||||
|
@ -108,6 +108,7 @@ void ADLParser::parse() {
|
||||
else if (!strcmp(ident, "pipeline")) pipe_parse();
|
||||
else if (!strcmp(ident, "definitions")) definitions_parse();
|
||||
else if (!strcmp(ident, "peephole")) peep_parse();
|
||||
else if (!strcmp(ident, "#line")) preproc_line();
|
||||
else if (!strcmp(ident, "#define")) preproc_define();
|
||||
else if (!strcmp(ident, "#undef")) preproc_undef();
|
||||
else {
|
||||
@ -786,9 +787,11 @@ void ADLParser::reg_parse(void) {
|
||||
parse_err(SYNERR, "missing identifier inside register block.\n");
|
||||
return;
|
||||
}
|
||||
if (strcmp(token,"reg_def")==0) { reg_def_parse(); }
|
||||
if (strcmp(token,"reg_class")==0) { reg_class_parse(); }
|
||||
if (strcmp(token,"alloc_class")==0) { alloc_class_parse(); }
|
||||
if (strcmp(token,"reg_def")==0) { reg_def_parse(); }
|
||||
else if (strcmp(token,"reg_class")==0) { reg_class_parse(); }
|
||||
else if (strcmp(token,"alloc_class")==0) { alloc_class_parse(); }
|
||||
else if (strcmp(token,"#define")==0) { preproc_define(); }
|
||||
else { parse_err(SYNERR, "bad token %s inside register block.\n", token); break; }
|
||||
skipws();
|
||||
}
|
||||
}
|
||||
@ -903,11 +906,7 @@ void ADLParser::enc_class_parse_block(EncClass* encoding, char* ec_name) {
|
||||
skipws_no_preproc(); // Skip leading whitespace
|
||||
// Prepend location descriptor, for debugging; cf. ADLParser::find_cpp_block
|
||||
if (_AD._adlocation_debug) {
|
||||
const char* file = _AD._ADL_file._name;
|
||||
int line = linenum();
|
||||
char* location = (char *)malloc(strlen(file) + 100);
|
||||
sprintf(location, "#line %d \"%s\"\n", line, file);
|
||||
encoding->add_code(location);
|
||||
encoding->add_code(get_line_string());
|
||||
}
|
||||
|
||||
// Collect the parts of the encode description
|
||||
@ -948,6 +947,10 @@ void ADLParser::enc_class_parse_block(EncClass* encoding, char* ec_name) {
|
||||
|
||||
skipws();
|
||||
|
||||
if (_AD._adlocation_debug) {
|
||||
encoding->add_code(end_line_marker());
|
||||
}
|
||||
|
||||
// Debug Stuff
|
||||
if (_AD._adl_debug > 1) fprintf(stderr,"EncodingClass Form: %s\n", ec_name);
|
||||
}
|
||||
@ -2349,7 +2352,11 @@ void ADLParser::reg_class_parse(void) {
|
||||
return;
|
||||
}
|
||||
RegDef *regDef = _AD._register->getRegDef(rname);
|
||||
reg_class->addReg(regDef); // add regDef to regClass
|
||||
if (!regDef) {
|
||||
parse_err(SEMERR, "unknown identifier %s inside reg_class list.\n", rname);
|
||||
} else {
|
||||
reg_class->addReg(regDef); // add regDef to regClass
|
||||
}
|
||||
|
||||
// Check for ',' and position to next token.
|
||||
skipws();
|
||||
@ -2746,7 +2753,8 @@ Predicate *ADLParser::pred_parse(void) {
|
||||
char *rule = NULL; // String representation of predicate
|
||||
|
||||
skipws(); // Skip leading whitespace
|
||||
if ( (rule = get_paren_expr("pred expression")) == NULL ) {
|
||||
int line = linenum();
|
||||
if ( (rule = get_paren_expr("pred expression", true)) == NULL ) {
|
||||
parse_err(SYNERR, "incorrect or missing expression for 'predicate'\n");
|
||||
return NULL;
|
||||
}
|
||||
@ -3407,7 +3415,12 @@ FormatRule* ADLParser::format_parse(void) {
|
||||
// Check if there is a string to pass through to output
|
||||
char *start = _ptr; // Record start of the next string
|
||||
while ((_curchar != '$') && (_curchar != '"') && (_curchar != '%') && (_curchar != '\n')) {
|
||||
if (_curchar == '\\') next_char(); // superquote
|
||||
if (_curchar == '\\') {
|
||||
next_char(); // superquote
|
||||
if ((_curchar == '$') || (_curchar == '%'))
|
||||
// hack to avoid % escapes and warnings about undefined \ escapes
|
||||
*(_ptr-1) = _curchar;
|
||||
}
|
||||
if (_curchar == '\n') parse_err(SYNERR, "newline in string"); // unimplemented!
|
||||
next_char();
|
||||
}
|
||||
@ -3942,8 +3955,7 @@ char* ADLParser::find_cpp_block(const char* description) {
|
||||
next_char(); // Skip block delimiter
|
||||
skipws_no_preproc(); // Skip leading whitespace
|
||||
cppBlock = _ptr; // Point to start of expression
|
||||
const char* file = _AD._ADL_file._name;
|
||||
int line = linenum();
|
||||
int line = linenum();
|
||||
next = _ptr + 1;
|
||||
while(((_curchar != '%') || (*next != '}')) && (_curchar != '\0')) {
|
||||
next_char_or_line();
|
||||
@ -3958,15 +3970,16 @@ char* ADLParser::find_cpp_block(const char* description) {
|
||||
_curchar = *_ptr; // Maintain invariant
|
||||
|
||||
// Prepend location descriptor, for debugging.
|
||||
char* location = (char *)malloc(strlen(file) + 100);
|
||||
*location = '\0';
|
||||
if (_AD._adlocation_debug)
|
||||
sprintf(location, "#line %d \"%s\"\n", line, file);
|
||||
char* result = (char *)malloc(strlen(location) + strlen(cppBlock) + 1);
|
||||
strcpy(result, location);
|
||||
strcat(result, cppBlock);
|
||||
cppBlock = result;
|
||||
free(location);
|
||||
if (_AD._adlocation_debug) {
|
||||
char* location = get_line_string(line);
|
||||
char* end_loc = end_line_marker();
|
||||
char* result = (char *)malloc(strlen(location) + strlen(cppBlock) + strlen(end_loc) + 1);
|
||||
strcpy(result, location);
|
||||
strcat(result, cppBlock);
|
||||
strcat(result, end_loc);
|
||||
cppBlock = result;
|
||||
free(location);
|
||||
}
|
||||
}
|
||||
|
||||
return cppBlock;
|
||||
@ -4036,13 +4049,26 @@ char* ADLParser::get_expr(const char *desc, const char *stop_chars) {
|
||||
|
||||
// Helper function around get_expr
|
||||
// Sets _curchar to '(' so that get_paren_expr will search for a matching ')'
|
||||
char *ADLParser::get_paren_expr(const char *description) {
|
||||
char *ADLParser::get_paren_expr(const char *description, bool include_location) {
|
||||
int line = linenum();
|
||||
if (_curchar != '(') // Escape if not valid starting position
|
||||
return NULL;
|
||||
next_char(); // Skip the required initial paren.
|
||||
char *token2 = get_expr(description, ")");
|
||||
if (_curchar == ')')
|
||||
next_char(); // Skip required final paren.
|
||||
int junk = 0;
|
||||
if (include_location && _AD._adlocation_debug && !is_int_token(token2, junk)) {
|
||||
// Prepend location descriptor, for debugging.
|
||||
char* location = get_line_string(line);
|
||||
char* end_loc = end_line_marker();
|
||||
char* result = (char *)malloc(strlen(location) + strlen(token2) + strlen(end_loc) + 1);
|
||||
strcpy(result, location);
|
||||
strcat(result, token2);
|
||||
strcat(result, end_loc);
|
||||
token2 = result;
|
||||
free(location);
|
||||
}
|
||||
return token2;
|
||||
}
|
||||
|
||||
@ -4082,10 +4108,16 @@ char *ADLParser::get_ident_common(bool do_preproc) {
|
||||
if (do_preproc && start != NULL) {
|
||||
const char* def = _AD.get_preproc_def(start);
|
||||
if (def != NULL && strcmp(def, start)) {
|
||||
const char* def2 = _AD.get_preproc_def(def);
|
||||
if (def2 != NULL && strcmp(def2, def)) {
|
||||
parse_err(SYNERR, "unimplemented: using %s defined as %s => %s",
|
||||
start, def, def2);
|
||||
const char* def1 = def;
|
||||
const char* def2 = _AD.get_preproc_def(def1);
|
||||
// implement up to 2 levels of #define
|
||||
if (def2 != NULL && strcmp(def2, def1)) {
|
||||
def = def2;
|
||||
const char* def3 = _AD.get_preproc_def(def2);
|
||||
if (def3 != NULL && strcmp(def3, def2) && strcmp(def3, def1)) {
|
||||
parse_err(SYNERR, "unimplemented: using %s defined as %s => %s => %s",
|
||||
start, def1, def2, def3);
|
||||
}
|
||||
}
|
||||
start = strdup(def);
|
||||
}
|
||||
@ -4431,6 +4463,35 @@ void ADLParser::get_effectlist(FormDict &effects, FormDict &operands) {
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------preproc_line----------------------------------
|
||||
// A "#line" keyword has been seen, so parse the rest of the line.
|
||||
void ADLParser::preproc_line(void) {
|
||||
int line = get_int();
|
||||
skipws_no_preproc();
|
||||
const char* file = NULL;
|
||||
if (_curchar == '"') {
|
||||
next_char(); // Move past the initial '"'
|
||||
file = _ptr;
|
||||
while (true) {
|
||||
if (_curchar == '\n') {
|
||||
parse_err(SYNERR, "missing '\"' at end of #line directive");
|
||||
return;
|
||||
}
|
||||
if (_curchar == '"') {
|
||||
*_ptr = '\0'; // Terminate the string
|
||||
next_char();
|
||||
skipws_no_preproc();
|
||||
break;
|
||||
}
|
||||
next_char();
|
||||
}
|
||||
}
|
||||
ensure_end_of_line();
|
||||
if (file != NULL)
|
||||
_AD._ADL_file._name = file;
|
||||
_buf.set_linenum(line);
|
||||
}
|
||||
|
||||
//------------------------------preproc_define---------------------------------
|
||||
// A "#define" keyword has been seen, so parse the rest of the line.
|
||||
void ADLParser::preproc_define(void) {
|
||||
@ -4494,6 +4555,7 @@ void ADLParser::parse_err(int flag, const char *fmt, ...) {
|
||||
// A preprocessor directive has been encountered. Be sure it has fallen at
|
||||
// the begining of a line, or else report an error.
|
||||
void ADLParser::ensure_start_of_line(void) {
|
||||
if (_curchar == '\n') { next_line(); return; }
|
||||
assert( _ptr >= _curline && _ptr < _curline+strlen(_curline),
|
||||
"Must be able to find which line we are in" );
|
||||
|
||||
@ -4662,6 +4724,7 @@ char ADLParser::cur_char() {
|
||||
|
||||
//---------------------------next_char-----------------------------------------
|
||||
void ADLParser::next_char() {
|
||||
if (_curchar == '\n') parse_err(WARN, "must call next_line!");
|
||||
_curchar = *++_ptr;
|
||||
// if ( _curchar == '\n' ) {
|
||||
// next_line();
|
||||
@ -4682,6 +4745,18 @@ void ADLParser::next_char_or_line() {
|
||||
//---------------------------next_line-----------------------------------------
|
||||
void ADLParser::next_line() {
|
||||
_curline = _buf.get_line();
|
||||
_curchar = ' ';
|
||||
}
|
||||
|
||||
//------------------------get_line_string--------------------------------------
|
||||
// Prepended location descriptor, for debugging.
|
||||
// Must return a malloced string (that can be freed if desired).
|
||||
char* ADLParser::get_line_string(int linenum) {
|
||||
const char* file = _AD._ADL_file._name;
|
||||
int line = linenum ? linenum : this->linenum();
|
||||
char* location = (char *)malloc(strlen(file) + 100);
|
||||
sprintf(location, "\n#line %d \"%s\"\n", line, file);
|
||||
return location;
|
||||
}
|
||||
|
||||
//-------------------------is_literal_constant---------------------------------
|
||||
@ -4722,6 +4797,66 @@ bool ADLParser::is_int_token(const char* token, int& intval) {
|
||||
return true;
|
||||
}
|
||||
|
||||
static const char* skip_expr_ws(const char* str) {
|
||||
const char * cp = str;
|
||||
while (cp[0]) {
|
||||
if (cp[0] <= ' ') {
|
||||
++cp;
|
||||
} else if (cp[0] == '#') {
|
||||
++cp;
|
||||
while (cp[0] == ' ') ++cp;
|
||||
assert(0 == strncmp(cp, "line", 4), "must be a #line directive");
|
||||
const char* eol = strchr(cp, '\n');
|
||||
assert(eol != NULL, "must find end of line");
|
||||
if (eol == NULL) eol = cp + strlen(cp);
|
||||
cp = eol;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return cp;
|
||||
}
|
||||
|
||||
//-----------------------equivalent_expressions--------------------------------
|
||||
bool ADLParser::equivalent_expressions(const char* str1, const char* str2) {
|
||||
if (str1 == str2)
|
||||
return true;
|
||||
else if (str1 == NULL || str2 == NULL)
|
||||
return false;
|
||||
const char* cp1 = str1;
|
||||
const char* cp2 = str2;
|
||||
char in_quote = '\0';
|
||||
while (cp1[0] && cp2[0]) {
|
||||
if (!in_quote) {
|
||||
// skip spaces and/or cpp directives
|
||||
const char* cp1a = skip_expr_ws(cp1);
|
||||
const char* cp2a = skip_expr_ws(cp2);
|
||||
if (cp1a > cp1 && cp2a > cp2) {
|
||||
cp1 = cp1a; cp2 = cp2a;
|
||||
continue;
|
||||
}
|
||||
if (cp1a > cp1 || cp2a > cp2) break; // fail
|
||||
}
|
||||
// match one non-space char
|
||||
if (cp1[0] != cp2[0]) break; // fail
|
||||
char ch = cp1[0];
|
||||
cp1++; cp2++;
|
||||
// watch for quotes
|
||||
if (in_quote && ch == '\\') {
|
||||
if (cp1[0] != cp2[0]) break; // fail
|
||||
if (!cp1[0]) break;
|
||||
cp1++; cp2++;
|
||||
}
|
||||
if (in_quote && ch == in_quote) {
|
||||
in_quote = '\0';
|
||||
} else if (!in_quote && (ch == '"' || ch == '\'')) {
|
||||
in_quote = ch;
|
||||
}
|
||||
}
|
||||
return (!cp1[0] && !cp2[0]);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------trim------------------------------------------
|
||||
void ADLParser::trim(char* &token) {
|
||||
while (*token <= ' ') token++;
|
||||
|
@ -93,6 +93,7 @@ protected:
|
||||
void pipe_parse(void); // Parse pipeline section
|
||||
void definitions_parse(void); // Parse definitions section
|
||||
void peep_parse(void); // Parse peephole rule definitions
|
||||
void preproc_line(void); // Parse a #line statement
|
||||
void preproc_define(void); // Parse a #define statement
|
||||
void preproc_undef(void); // Parse an #undef statement
|
||||
|
||||
@ -226,7 +227,7 @@ protected:
|
||||
void get_effectlist(FormDict &effects, FormDict &operands); // Parse effect-operand pairs
|
||||
// Return the contents of a parenthesized expression.
|
||||
// Requires initial '(' and consumes final ')', which is replaced by '\0'.
|
||||
char *get_paren_expr(const char *description);
|
||||
char *get_paren_expr(const char *description, bool include_location = false);
|
||||
// Return expression up to next stop-char, which terminator replaces.
|
||||
// Does not require initial '('. Does not consume final stop-char.
|
||||
// Final stop-char is left in _curchar, but is also is replaced by '\0'.
|
||||
@ -234,6 +235,11 @@ protected:
|
||||
char *find_cpp_block(const char *description); // Parse a C++ code block
|
||||
// Issue parser error message & go to EOL
|
||||
void parse_err(int flag, const char *fmt, ...);
|
||||
// Create a location marker for this file and line.
|
||||
char *get_line_string(int linenum = 0);
|
||||
// Return a location marker which tells the C preprocessor to
|
||||
// forget the previous location marker. (Requires awk postprocessing.)
|
||||
char *end_line_marker() { return (char*)"\n#line 999999\n"; }
|
||||
|
||||
// Return pointer to current character
|
||||
inline char cur_char(void);
|
||||
@ -268,5 +274,6 @@ public:
|
||||
static bool is_literal_constant(const char *hex_string);
|
||||
static bool is_hex_digit(char digit);
|
||||
static bool is_int_token(const char* token, int& intval);
|
||||
static bool equivalent_expressions(const char* str1, const char* str2);
|
||||
static void trim(char* &token); // trim leading & trailing spaces
|
||||
};
|
||||
|
@ -140,7 +140,7 @@ bool MatchList::search(const char *opc, const char *res, const char *lch,
|
||||
if ((rch == _rchild) || (rch && _rchild && !strcmp(rch, _rchild))) {
|
||||
char * predStr = get_pred();
|
||||
char * prStr = pr?pr->_pred:NULL;
|
||||
if ((prStr == predStr) || (prStr && predStr && !strcmp(prStr, predStr))) {
|
||||
if (ADLParser::equivalent_expressions(prStr, predStr)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -458,7 +458,7 @@ void ArchDesc::buildDFA(FILE* fp) {
|
||||
|
||||
|
||||
class dfa_shared_preds {
|
||||
enum { count = 2 };
|
||||
enum { count = 4 };
|
||||
|
||||
static bool _found[count];
|
||||
static const char* _type [count];
|
||||
@ -479,12 +479,15 @@ class dfa_shared_preds {
|
||||
char c = *prev;
|
||||
switch( c ) {
|
||||
case ' ':
|
||||
case '\n':
|
||||
return dfa_shared_preds::valid_loc(pred, prev);
|
||||
case '!':
|
||||
case '(':
|
||||
case '<':
|
||||
case '=':
|
||||
return true;
|
||||
case '"': // such as: #line 10 "myfile.ad"\n mypredicate
|
||||
return true;
|
||||
case '|':
|
||||
if( prev != pred && *(prev-1) == '|' ) return true;
|
||||
case '&':
|
||||
@ -564,10 +567,14 @@ public:
|
||||
}
|
||||
};
|
||||
// shared predicates, _var and _pred entry should be the same length
|
||||
bool dfa_shared_preds::_found[dfa_shared_preds::count] = { false, false };
|
||||
const char* dfa_shared_preds::_type[dfa_shared_preds::count] = { "int", "bool" };
|
||||
const char* dfa_shared_preds::_var [dfa_shared_preds::count] = { "_n_get_int__", "Compile__current____select_24_bit_instr__" };
|
||||
const char* dfa_shared_preds::_pred[dfa_shared_preds::count] = { "n->get_int()", "Compile::current()->select_24_bit_instr()" };
|
||||
bool dfa_shared_preds::_found[dfa_shared_preds::count]
|
||||
= { false, false, false, false };
|
||||
const char* dfa_shared_preds::_type[dfa_shared_preds::count]
|
||||
= { "int", "jlong", "intptr_t", "bool" };
|
||||
const char* dfa_shared_preds::_var [dfa_shared_preds::count]
|
||||
= { "_n_get_int__", "_n_get_long__", "_n_get_intptr_t__", "Compile__current____select_24_bit_instr__" };
|
||||
const char* dfa_shared_preds::_pred[dfa_shared_preds::count]
|
||||
= { "n->get_int()", "n->get_long()", "n->get_intptr_t()", "Compile::current()->select_24_bit_instr()" };
|
||||
|
||||
|
||||
void ArchDesc::gen_dfa_state_body(FILE* fp, Dict &minimize, ProductionState &status, Dict &operands_chained_from, int i) {
|
||||
|
@ -68,6 +68,7 @@ class FileBuff {
|
||||
// and increments bufeol and filepos to point at the end of that line.
|
||||
char *get_line(void);
|
||||
int linenum() const { return _linenum; }
|
||||
void set_linenum(int line) { _linenum = line; }
|
||||
|
||||
// This converts a pointer into the buffer to a file offset. It only works
|
||||
// when the pointer is valid (i.e. just obtained from getline()).
|
||||
|
@ -1102,10 +1102,7 @@ bool equivalent_predicates( const InstructForm *instr1, const InstructForm *inst
|
||||
}
|
||||
if( pred1 != NULL && pred2 != NULL ) {
|
||||
// compare the predicates
|
||||
const char *str1 = pred1->_pred;
|
||||
const char *str2 = pred2->_pred;
|
||||
if( (str1 == NULL && str2 == NULL)
|
||||
|| (str1 != NULL && str2 != NULL && strcmp(str1,str2) == 0) ) {
|
||||
if (ADLParser::equivalent_expressions(pred1->_pred, pred2->_pred)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -1210,8 +1210,8 @@ LIR_Opr LIRGenerator::load_constant(LIR_Const* c) {
|
||||
break;
|
||||
case T_LONG:
|
||||
case T_DOUBLE:
|
||||
if (c->as_jint_hi_bits() != other->as_jint_lo_bits()) continue;
|
||||
if (c->as_jint_lo_bits() != other->as_jint_hi_bits()) continue;
|
||||
if (c->as_jint_hi_bits() != other->as_jint_hi_bits()) continue;
|
||||
if (c->as_jint_lo_bits() != other->as_jint_lo_bits()) continue;
|
||||
break;
|
||||
case T_OBJECT:
|
||||
if (c->as_jobject() != other->as_jobject()) continue;
|
||||
|
@ -327,8 +327,6 @@ class BlockMerger: public BlockClosure {
|
||||
BlockBegin* fsux = if_->fsux();
|
||||
if (swapped) {
|
||||
cond = Instruction::mirror(cond);
|
||||
tsux = if_->fsux();
|
||||
fsux = if_->tsux();
|
||||
}
|
||||
|
||||
BlockBegin* tblock = tval->compare(cond, con, tsux, fsux);
|
||||
|
@ -842,6 +842,13 @@ JRT_ENTRY(void, Runtime1::patch_code(JavaThread* thread, Runtime1::StubID stub_i
|
||||
if (TracePatching) {
|
||||
tty->print_cr("Deoptimizing for patching volatile field reference");
|
||||
}
|
||||
// It's possible the nmethod was invalidated in the last
|
||||
// safepoint, but if it's still alive then make it not_entrant.
|
||||
nmethod* nm = CodeCache::find_nmethod(caller_frame.pc());
|
||||
if (nm != NULL) {
|
||||
nm->make_not_entrant();
|
||||
}
|
||||
|
||||
VM_DeoptimizeFrame deopt(thread, caller_frame.id());
|
||||
VMThread::execute(&deopt);
|
||||
|
||||
|
@ -581,7 +581,8 @@ objArrayHandle ClassFileParser::parse_interfaces(constantPoolHandle cp,
|
||||
interf = KlassHandle(THREAD, k);
|
||||
vmtimer->resume();
|
||||
|
||||
cp->klass_at_put(interface_index, interf()); // eagerly resolve
|
||||
if (LinkWellKnownClasses) // my super type is well known to me
|
||||
cp->klass_at_put(interface_index, interf()); // eagerly resolve
|
||||
}
|
||||
|
||||
if (!Klass::cast(interf())->is_interface()) {
|
||||
@ -2699,7 +2700,8 @@ instanceKlassHandle ClassFileParser::parseClassFile(symbolHandle name,
|
||||
CHECK_(nullHandle));
|
||||
KlassHandle kh (THREAD, k);
|
||||
super_klass = instanceKlassHandle(THREAD, kh());
|
||||
cp->klass_at_put(super_class_index, super_klass()); // eagerly resolve
|
||||
if (LinkWellKnownClasses) // my super class is well known to me
|
||||
cp->klass_at_put(super_class_index, super_klass()); // eagerly resolve
|
||||
}
|
||||
if (super_klass.not_null()) {
|
||||
if (super_klass->is_interface()) {
|
||||
@ -3128,7 +3130,8 @@ instanceKlassHandle ClassFileParser::parseClassFile(symbolHandle name,
|
||||
this_klass->set_method_ordering(method_ordering());
|
||||
this_klass->set_initial_method_idnum(methods->length());
|
||||
this_klass->set_name(cp->klass_name_at(this_class_index));
|
||||
cp->klass_at_put(this_class_index, this_klass()); // eagerly resolve
|
||||
if (LinkWellKnownClasses) // I am well known to myself
|
||||
cp->klass_at_put(this_class_index, this_klass()); // eagerly resolve
|
||||
this_klass->set_protection_domain(protection_domain());
|
||||
this_klass->set_fields_annotations(fields_annotations());
|
||||
this_klass->set_methods_annotations(methods_annotations());
|
||||
|
@ -2954,7 +2954,7 @@ public:
|
||||
// The object has been either evacuated or is dead. Fill it with a
|
||||
// dummy object.
|
||||
MemRegion mr((HeapWord*)obj, obj->size());
|
||||
SharedHeap::fill_region_with_object(mr);
|
||||
CollectedHeap::fill_with_object(mr);
|
||||
_cm->clearRangeBothMaps(mr);
|
||||
}
|
||||
}
|
||||
@ -3225,7 +3225,7 @@ void G1CollectedHeap::par_allocate_remaining_space(HeapRegion* r) {
|
||||
// Otherwise, try to claim it.
|
||||
block = r->par_allocate(free_words);
|
||||
} while (block == NULL);
|
||||
SharedHeap::fill_region_with_object(MemRegion(block, free_words));
|
||||
fill_with_object(block, free_words);
|
||||
}
|
||||
|
||||
#define use_local_bitmaps 1
|
||||
@ -3619,9 +3619,8 @@ public:
|
||||
guarantee(alloc_buffer(purpose)->contains(obj + word_sz - 1),
|
||||
"should contain whole object");
|
||||
alloc_buffer(purpose)->undo_allocation(obj, word_sz);
|
||||
}
|
||||
else {
|
||||
SharedHeap::fill_region_with_object(MemRegion(obj, word_sz));
|
||||
} else {
|
||||
CollectedHeap::fill_with_object(obj, word_sz);
|
||||
add_to_undo_waste(word_sz);
|
||||
}
|
||||
}
|
||||
|
@ -181,7 +181,7 @@ public:
|
||||
|
||||
void scrub(CardTableModRefBS* ctbs, BitMap* card_bm) {
|
||||
HeapWord* hr_bot = hr()->bottom();
|
||||
int hr_first_card_index = ctbs->index_for(hr_bot);
|
||||
size_t hr_first_card_index = ctbs->index_for(hr_bot);
|
||||
bm()->set_intersection_at_offset(*card_bm, hr_first_card_index);
|
||||
#if PRT_COUNT_OCCUPIED
|
||||
recount_occupied();
|
||||
|
@ -102,7 +102,7 @@ HeapRegionSeq::alloc_obj_from_region_index(int ind, size_t word_size) {
|
||||
HeapWord* tmp = hr->allocate(sz);
|
||||
assert(tmp != NULL, "Humongous allocation failure");
|
||||
MemRegion mr = MemRegion(tmp, sz);
|
||||
SharedHeap::fill_region_with_object(mr);
|
||||
CollectedHeap::fill_with_object(mr);
|
||||
hr->declare_filled_region_to_BOT(mr);
|
||||
if (i == first) {
|
||||
first_hr->set_startsHumongous();
|
||||
|
@ -51,14 +51,14 @@ void ParGCAllocBuffer::retire(bool end_of_gc, bool retain) {
|
||||
if (_retained) {
|
||||
// If the buffer had been retained shorten the previous filler object.
|
||||
assert(_retained_filler.end() <= _top, "INVARIANT");
|
||||
SharedHeap::fill_region_with_object(_retained_filler);
|
||||
CollectedHeap::fill_with_object(_retained_filler);
|
||||
// Wasted space book-keeping, otherwise (normally) done in invalidate()
|
||||
_wasted += _retained_filler.word_size();
|
||||
_retained = false;
|
||||
}
|
||||
assert(!end_of_gc || !_retained, "At this point, end_of_gc ==> !_retained.");
|
||||
if (_top < _hard_end) {
|
||||
SharedHeap::fill_region_with_object(MemRegion(_top, _hard_end));
|
||||
CollectedHeap::fill_with_object(_top, _hard_end);
|
||||
if (!retain) {
|
||||
invalidate();
|
||||
} else {
|
||||
@ -155,7 +155,7 @@ ParGCAllocBufferWithBOT::ParGCAllocBufferWithBOT(size_t word_sz,
|
||||
// modifying the _next_threshold state in the BOT.
|
||||
void ParGCAllocBufferWithBOT::fill_region_with_block(MemRegion mr,
|
||||
bool contig) {
|
||||
SharedHeap::fill_region_with_object(mr);
|
||||
CollectedHeap::fill_with_object(mr);
|
||||
if (contig) {
|
||||
_bt.alloc_block(mr.start(), mr.end());
|
||||
} else {
|
||||
@ -171,7 +171,7 @@ HeapWord* ParGCAllocBufferWithBOT::allocate_slow(size_t word_sz) {
|
||||
"or else _true_end should be equal to _hard_end");
|
||||
assert(_retained, "or else _true_end should be equal to _hard_end");
|
||||
assert(_retained_filler.end() <= _top, "INVARIANT");
|
||||
SharedHeap::fill_region_with_object(_retained_filler);
|
||||
CollectedHeap::fill_with_object(_retained_filler);
|
||||
if (_top < _hard_end) {
|
||||
fill_region_with_block(MemRegion(_top, _hard_end), true);
|
||||
}
|
||||
@ -316,11 +316,9 @@ void ParGCAllocBufferWithBOT::retire(bool end_of_gc, bool retain) {
|
||||
while (_top <= chunk_boundary) {
|
||||
assert(pointer_delta(_hard_end, chunk_boundary) >= AlignmentReserve,
|
||||
"Consequence of last card handling above.");
|
||||
MemRegion chunk_portion(chunk_boundary, _hard_end);
|
||||
_bt.BlockOffsetArray::alloc_block(chunk_portion.start(),
|
||||
chunk_portion.end());
|
||||
SharedHeap::fill_region_with_object(chunk_portion);
|
||||
_hard_end = chunk_portion.start();
|
||||
_bt.BlockOffsetArray::alloc_block(chunk_boundary, _hard_end);
|
||||
CollectedHeap::fill_with_object(chunk_boundary, _hard_end);
|
||||
_hard_end = chunk_boundary;
|
||||
chunk_boundary -= ChunkSizeInWords;
|
||||
}
|
||||
_end = _hard_end - AlignmentReserve;
|
||||
|
@ -201,7 +201,7 @@ void ParScanThreadState::undo_alloc_in_to_space(HeapWord* obj,
|
||||
"Should contain whole object.");
|
||||
to_space_alloc_buffer()->undo_allocation(obj, word_sz);
|
||||
} else {
|
||||
SharedHeap::fill_region_with_object(MemRegion(obj, word_sz));
|
||||
CollectedHeap::fill_with_object(obj, word_sz);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -389,7 +389,7 @@ bool PSMarkSweep::absorb_live_data_from_eden(PSAdaptiveSizePolicy* size_policy,
|
||||
// full GC.
|
||||
const size_t alignment = old_gen->virtual_space()->alignment();
|
||||
const size_t eden_used = eden_space->used_in_bytes();
|
||||
const size_t promoted = (size_t)(size_policy->avg_promoted()->padded_average());
|
||||
const size_t promoted = (size_t)size_policy->avg_promoted()->padded_average();
|
||||
const size_t absorb_size = align_size_up(eden_used + promoted, alignment);
|
||||
const size_t eden_capacity = eden_space->capacity_in_bytes();
|
||||
|
||||
@ -416,16 +416,14 @@ bool PSMarkSweep::absorb_live_data_from_eden(PSAdaptiveSizePolicy* size_policy,
|
||||
|
||||
// Fill the unused part of the old gen.
|
||||
MutableSpace* const old_space = old_gen->object_space();
|
||||
MemRegion old_gen_unused(old_space->top(), old_space->end());
|
||||
HeapWord* const unused_start = old_space->top();
|
||||
size_t const unused_words = pointer_delta(old_space->end(), unused_start);
|
||||
|
||||
// If the unused part of the old gen cannot be filled, skip
|
||||
// absorbing eden.
|
||||
if (old_gen_unused.word_size() < SharedHeap::min_fill_size()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!old_gen_unused.is_empty()) {
|
||||
SharedHeap::fill_region_with_object(old_gen_unused);
|
||||
if (unused_words > 0) {
|
||||
if (unused_words < CollectedHeap::min_fill_size()) {
|
||||
return false; // If the old gen cannot be filled, must give up.
|
||||
}
|
||||
CollectedHeap::fill_with_objects(unused_start, unused_words);
|
||||
}
|
||||
|
||||
// Take the live data from eden and set both top and end in the old gen to
|
||||
@ -441,9 +439,8 @@ bool PSMarkSweep::absorb_live_data_from_eden(PSAdaptiveSizePolicy* size_policy,
|
||||
|
||||
// Update the object start array for the filler object and the data from eden.
|
||||
ObjectStartArray* const start_array = old_gen->start_array();
|
||||
HeapWord* const start = old_gen_unused.start();
|
||||
for (HeapWord* addr = start; addr < new_top; addr += oop(addr)->size()) {
|
||||
start_array->allocate_block(addr);
|
||||
for (HeapWord* p = unused_start; p < new_top; p += oop(p)->size()) {
|
||||
start_array->allocate_block(p);
|
||||
}
|
||||
|
||||
// Could update the promoted average here, but it is not typically updated at
|
||||
|
@ -275,22 +275,9 @@ bool PSMarkSweepDecorator::insert_deadspace(size_t& allowed_deadspace_words,
|
||||
HeapWord* q, size_t deadlength) {
|
||||
if (allowed_deadspace_words >= deadlength) {
|
||||
allowed_deadspace_words -= deadlength;
|
||||
oop(q)->set_mark(markOopDesc::prototype()->set_marked());
|
||||
const size_t aligned_min_int_array_size =
|
||||
align_object_size(typeArrayOopDesc::header_size(T_INT));
|
||||
if (deadlength >= aligned_min_int_array_size) {
|
||||
oop(q)->set_klass(Universe::intArrayKlassObj());
|
||||
assert(((deadlength - aligned_min_int_array_size) * (HeapWordSize/sizeof(jint))) < (size_t)max_jint,
|
||||
"deadspace too big for Arrayoop");
|
||||
typeArrayOop(q)->set_length((int)((deadlength - aligned_min_int_array_size)
|
||||
* (HeapWordSize/sizeof(jint))));
|
||||
} else {
|
||||
assert((int) deadlength == instanceOopDesc::header_size(),
|
||||
"size for smallest fake dead object doesn't match");
|
||||
oop(q)->set_klass(SystemDictionary::object_klass());
|
||||
}
|
||||
assert((int) deadlength == oop(q)->size(),
|
||||
"make sure size for fake dead object match");
|
||||
CollectedHeap::fill_with_object(q, deadlength);
|
||||
oop(q)->set_mark(oop(q)->mark()->set_marked());
|
||||
assert((int) deadlength == oop(q)->size(), "bad filler object size");
|
||||
// Recall that we required "q == compaction_top".
|
||||
return true;
|
||||
} else {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -36,6 +36,123 @@ class PreGCValues;
|
||||
class MoveAndUpdateClosure;
|
||||
class RefProcTaskExecutor;
|
||||
|
||||
// The SplitInfo class holds the information needed to 'split' a source region
|
||||
// so that the live data can be copied to two destination *spaces*. Normally,
|
||||
// all the live data in a region is copied to a single destination space (e.g.,
|
||||
// everything live in a region in eden is copied entirely into the old gen).
|
||||
// However, when the heap is nearly full, all the live data in eden may not fit
|
||||
// into the old gen. Copying only some of the regions from eden to old gen
|
||||
// requires finding a region that does not contain a partial object (i.e., no
|
||||
// live object crosses the region boundary) somewhere near the last object that
|
||||
// does fit into the old gen. Since it's not always possible to find such a
|
||||
// region, splitting is necessary for predictable behavior.
|
||||
//
|
||||
// A region is always split at the end of the partial object. This avoids
|
||||
// additional tests when calculating the new location of a pointer, which is a
|
||||
// very hot code path. The partial object and everything to its left will be
|
||||
// copied to another space (call it dest_space_1). The live data to the right
|
||||
// of the partial object will be copied either within the space itself, or to a
|
||||
// different destination space (distinct from dest_space_1).
|
||||
//
|
||||
// Split points are identified during the summary phase, when region
|
||||
// destinations are computed: data about the split, including the
|
||||
// partial_object_size, is recorded in a SplitInfo record and the
|
||||
// partial_object_size field in the summary data is set to zero. The zeroing is
|
||||
// possible (and necessary) since the partial object will move to a different
|
||||
// destination space than anything to its right, thus the partial object should
|
||||
// not affect the locations of any objects to its right.
|
||||
//
|
||||
// The recorded data is used during the compaction phase, but only rarely: when
|
||||
// the partial object on the split region will be copied across a destination
|
||||
// region boundary. This test is made once each time a region is filled, and is
|
||||
// a simple address comparison, so the overhead is negligible (see
|
||||
// PSParallelCompact::first_src_addr()).
|
||||
//
|
||||
// Notes:
|
||||
//
|
||||
// Only regions with partial objects are split; a region without a partial
|
||||
// object does not need any extra bookkeeping.
|
||||
//
|
||||
// At most one region is split per space, so the amount of data required is
|
||||
// constant.
|
||||
//
|
||||
// A region is split only when the destination space would overflow. Once that
|
||||
// happens, the destination space is abandoned and no other data (even from
|
||||
// other source spaces) is targeted to that destination space. Abandoning the
|
||||
// destination space may leave a somewhat large unused area at the end, if a
|
||||
// large object caused the overflow.
|
||||
//
|
||||
// Future work:
|
||||
//
|
||||
// More bookkeeping would be required to continue to use the destination space.
|
||||
// The most general solution would allow data from regions in two different
|
||||
// source spaces to be "joined" in a single destination region. At the very
|
||||
// least, additional code would be required in next_src_region() to detect the
|
||||
// join and skip to an out-of-order source region. If the join region was also
|
||||
// the last destination region to which a split region was copied (the most
|
||||
// likely case), then additional work would be needed to get fill_region() to
|
||||
// stop iteration and switch to a new source region at the right point. Basic
|
||||
// idea would be to use a fake value for the top of the source space. It is
|
||||
// doable, if a bit tricky.
|
||||
//
|
||||
// A simpler (but less general) solution would fill the remainder of the
|
||||
// destination region with a dummy object and continue filling the next
|
||||
// destination region.
|
||||
|
||||
class SplitInfo
|
||||
{
|
||||
public:
|
||||
// Return true if this split info is valid (i.e., if a split has been
|
||||
// recorded). The very first region cannot have a partial object and thus is
|
||||
// never split, so 0 is the 'invalid' value.
|
||||
bool is_valid() const { return _src_region_idx > 0; }
|
||||
|
||||
// Return true if this split holds data for the specified source region.
|
||||
inline bool is_split(size_t source_region) const;
|
||||
|
||||
// The index of the split region, the size of the partial object on that
|
||||
// region and the destination of the partial object.
|
||||
size_t src_region_idx() const { return _src_region_idx; }
|
||||
size_t partial_obj_size() const { return _partial_obj_size; }
|
||||
HeapWord* destination() const { return _destination; }
|
||||
|
||||
// The destination count of the partial object referenced by this split
|
||||
// (either 1 or 2). This must be added to the destination count of the
|
||||
// remainder of the source region.
|
||||
unsigned int destination_count() const { return _destination_count; }
|
||||
|
||||
// If a word within the partial object will be written to the first word of a
|
||||
// destination region, this is the address of the destination region;
|
||||
// otherwise this is NULL.
|
||||
HeapWord* dest_region_addr() const { return _dest_region_addr; }
|
||||
|
||||
// If a word within the partial object will be written to the first word of a
|
||||
// destination region, this is the address of that word within the partial
|
||||
// object; otherwise this is NULL.
|
||||
HeapWord* first_src_addr() const { return _first_src_addr; }
|
||||
|
||||
// Record the data necessary to split the region src_region_idx.
|
||||
void record(size_t src_region_idx, size_t partial_obj_size,
|
||||
HeapWord* destination);
|
||||
|
||||
void clear();
|
||||
|
||||
DEBUG_ONLY(void verify_clear();)
|
||||
|
||||
private:
|
||||
size_t _src_region_idx;
|
||||
size_t _partial_obj_size;
|
||||
HeapWord* _destination;
|
||||
unsigned int _destination_count;
|
||||
HeapWord* _dest_region_addr;
|
||||
HeapWord* _first_src_addr;
|
||||
};
|
||||
|
||||
inline bool SplitInfo::is_split(size_t region_idx) const
|
||||
{
|
||||
return _src_region_idx == region_idx && is_valid();
|
||||
}
|
||||
|
||||
class SpaceInfo
|
||||
{
|
||||
public:
|
||||
@ -58,18 +175,23 @@ class SpaceInfo
|
||||
// is no start array.
|
||||
ObjectStartArray* start_array() const { return _start_array; }
|
||||
|
||||
SplitInfo& split_info() { return _split_info; }
|
||||
|
||||
void set_space(MutableSpace* s) { _space = s; }
|
||||
void set_new_top(HeapWord* addr) { _new_top = addr; }
|
||||
void set_min_dense_prefix(HeapWord* addr) { _min_dense_prefix = addr; }
|
||||
void set_dense_prefix(HeapWord* addr) { _dense_prefix = addr; }
|
||||
void set_start_array(ObjectStartArray* s) { _start_array = s; }
|
||||
|
||||
void publish_new_top() const { _space->set_top(_new_top); }
|
||||
|
||||
private:
|
||||
MutableSpace* _space;
|
||||
HeapWord* _new_top;
|
||||
HeapWord* _min_dense_prefix;
|
||||
HeapWord* _dense_prefix;
|
||||
ObjectStartArray* _start_array;
|
||||
SplitInfo _split_info;
|
||||
};
|
||||
|
||||
class ParallelCompactData
|
||||
@ -230,9 +352,14 @@ public:
|
||||
// must be region-aligned; end need not be.
|
||||
void summarize_dense_prefix(HeapWord* beg, HeapWord* end);
|
||||
|
||||
bool summarize(HeapWord* target_beg, HeapWord* target_end,
|
||||
HeapWord* summarize_split_space(size_t src_region, SplitInfo& split_info,
|
||||
HeapWord* destination, HeapWord* target_end,
|
||||
HeapWord** target_next);
|
||||
bool summarize(SplitInfo& split_info,
|
||||
HeapWord* source_beg, HeapWord* source_end,
|
||||
HeapWord** target_next, HeapWord** source_next = 0);
|
||||
HeapWord** source_next,
|
||||
HeapWord* target_beg, HeapWord* target_end,
|
||||
HeapWord** target_next);
|
||||
|
||||
void clear();
|
||||
void clear_range(size_t beg_region, size_t end_region);
|
||||
@ -838,13 +965,31 @@ class PSParallelCompact : AllStatic {
|
||||
// non-empty.
|
||||
static void fill_dense_prefix_end(SpaceId id);
|
||||
|
||||
// Clear the summary data source_region field for the specified addresses.
|
||||
static void clear_source_region(HeapWord* beg_addr, HeapWord* end_addr);
|
||||
|
||||
#ifndef PRODUCT
|
||||
// Routines to provoke splitting a young gen space (ParallelOldGCSplitALot).
|
||||
|
||||
// Fill the region [start, start + words) with live object(s). Only usable
|
||||
// for the old and permanent generations.
|
||||
static void fill_with_live_objects(SpaceId id, HeapWord* const start,
|
||||
size_t words);
|
||||
// Include the new objects in the summary data.
|
||||
static void summarize_new_objects(SpaceId id, HeapWord* start);
|
||||
|
||||
// Add live objects to a survivor space since it's rare that both survivors
|
||||
// are non-empty.
|
||||
static void provoke_split_fill_survivor(SpaceId id);
|
||||
|
||||
// Add live objects and/or choose the dense prefix to provoke splitting.
|
||||
static void provoke_split(bool & maximum_compaction);
|
||||
#endif
|
||||
|
||||
static void summarize_spaces_quick();
|
||||
static void summarize_space(SpaceId id, bool maximum_compaction);
|
||||
static void summary_phase(ParCompactionManager* cm, bool maximum_compaction);
|
||||
|
||||
// The space that is compacted after space_id.
|
||||
static SpaceId next_compaction_space_id(SpaceId space_id);
|
||||
|
||||
// Adjust addresses in roots. Does not adjust addresses in heap.
|
||||
static void adjust_roots();
|
||||
|
||||
@ -999,6 +1144,7 @@ class PSParallelCompact : AllStatic {
|
||||
// Return the address of the word to be copied to dest_addr, which must be
|
||||
// aligned to a region boundary.
|
||||
static HeapWord* first_src_addr(HeapWord* const dest_addr,
|
||||
SpaceId src_space_id,
|
||||
size_t src_region_idx);
|
||||
|
||||
// Determine the next source region, set closure.source() to the start of the
|
||||
@ -1012,8 +1158,10 @@ class PSParallelCompact : AllStatic {
|
||||
HeapWord* end_addr);
|
||||
|
||||
// Decrement the destination count for each non-empty source region in the
|
||||
// range [beg_region, region(region_align_up(end_addr))).
|
||||
// range [beg_region, region(region_align_up(end_addr))). If the destination
|
||||
// count for a region goes to 0 and it needs to be filled, enqueue it.
|
||||
static void decrement_destination_counts(ParCompactionManager* cm,
|
||||
SpaceId src_space_id,
|
||||
size_t beg_region,
|
||||
HeapWord* end_addr);
|
||||
|
||||
@ -1081,9 +1229,15 @@ class PSParallelCompact : AllStatic {
|
||||
const SpaceId id,
|
||||
const bool maximum_compaction,
|
||||
HeapWord* const addr);
|
||||
static void summary_phase_msg(SpaceId dst_space_id,
|
||||
HeapWord* dst_beg, HeapWord* dst_end,
|
||||
SpaceId src_space_id,
|
||||
HeapWord* src_beg, HeapWord* src_end);
|
||||
#endif // #ifndef PRODUCT
|
||||
|
||||
#ifdef ASSERT
|
||||
// Sanity check the new location of a word in the heap.
|
||||
static inline void check_new_location(HeapWord* old_addr, HeapWord* new_addr);
|
||||
// Verify that all the regions have been emptied.
|
||||
static void verify_complete(SpaceId space_id);
|
||||
#endif // #ifdef ASSERT
|
||||
@ -1251,6 +1405,15 @@ inline void PSParallelCompact::adjust_pointer(T* p,
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef ASSERT
|
||||
inline void
|
||||
PSParallelCompact::check_new_location(HeapWord* old_addr, HeapWord* new_addr)
|
||||
{
|
||||
assert(old_addr >= new_addr || space_id(old_addr) != space_id(new_addr),
|
||||
"must move left or to a different space");
|
||||
}
|
||||
#endif // ASSERT
|
||||
|
||||
class MoveAndUpdateClosure: public ParMarkBitMapClosure {
|
||||
public:
|
||||
inline MoveAndUpdateClosure(ParMarkBitMap* bitmap, ParCompactionManager* cm,
|
||||
@ -1324,31 +1487,28 @@ inline void UpdateOnlyClosure::do_addr(HeapWord* addr)
|
||||
oop(addr)->update_contents(compaction_manager());
|
||||
}
|
||||
|
||||
class FillClosure: public ParMarkBitMapClosure {
|
||||
public:
|
||||
class FillClosure: public ParMarkBitMapClosure
|
||||
{
|
||||
public:
|
||||
FillClosure(ParCompactionManager* cm, PSParallelCompact::SpaceId space_id) :
|
||||
ParMarkBitMapClosure(PSParallelCompact::mark_bitmap(), cm),
|
||||
_space_id(space_id),
|
||||
_start_array(PSParallelCompact::start_array(space_id)) {
|
||||
assert(_space_id == PSParallelCompact::perm_space_id ||
|
||||
_space_id == PSParallelCompact::old_space_id,
|
||||
_start_array(PSParallelCompact::start_array(space_id))
|
||||
{
|
||||
assert(space_id == PSParallelCompact::perm_space_id ||
|
||||
space_id == PSParallelCompact::old_space_id,
|
||||
"cannot use FillClosure in the young gen");
|
||||
assert(bitmap() != NULL, "need a bitmap");
|
||||
assert(_start_array != NULL, "need a start array");
|
||||
}
|
||||
|
||||
void fill_region(HeapWord* addr, size_t size) {
|
||||
MemRegion region(addr, size);
|
||||
SharedHeap::fill_region_with_object(region);
|
||||
_start_array->allocate_block(addr);
|
||||
}
|
||||
|
||||
virtual IterationStatus do_addr(HeapWord* addr, size_t size) {
|
||||
fill_region(addr, size);
|
||||
CollectedHeap::fill_with_objects(addr, size);
|
||||
HeapWord* const end = addr + size;
|
||||
do {
|
||||
_start_array->allocate_block(addr);
|
||||
addr += oop(addr)->size();
|
||||
} while (addr < end);
|
||||
return ParMarkBitMap::incomplete;
|
||||
}
|
||||
|
||||
private:
|
||||
const PSParallelCompact::SpaceId _space_id;
|
||||
ObjectStartArray* const _start_array;
|
||||
ObjectStartArray* const _start_array;
|
||||
};
|
||||
|
@ -499,26 +499,15 @@ oop PSPromotionManager::copy_to_survivor_space(oop o, bool depth_first) {
|
||||
// We lost, someone else "owns" this object
|
||||
guarantee(o->is_forwarded(), "Object must be forwarded if the cas failed.");
|
||||
|
||||
// Unallocate the space used. NOTE! We may have directly allocated
|
||||
// the object. If so, we cannot deallocate it, so we have to test!
|
||||
// Try to deallocate the space. If it was directly allocated we cannot
|
||||
// deallocate it, so we have to test. If the deallocation fails,
|
||||
// overwrite with a filler object.
|
||||
if (new_obj_is_tenured) {
|
||||
if (!_old_lab.unallocate_object(new_obj)) {
|
||||
// The promotion lab failed to unallocate the object.
|
||||
// We need to overwrite the object with a filler that
|
||||
// contains no interior pointers.
|
||||
MemRegion mr((HeapWord*)new_obj, new_obj_size);
|
||||
// Clean this up and move to oopFactory (see bug 4718422)
|
||||
SharedHeap::fill_region_with_object(mr);
|
||||
}
|
||||
} else {
|
||||
if (!_young_lab.unallocate_object(new_obj)) {
|
||||
// The promotion lab failed to unallocate the object.
|
||||
// We need to overwrite the object with a filler that
|
||||
// contains no interior pointers.
|
||||
MemRegion mr((HeapWord*)new_obj, new_obj_size);
|
||||
// Clean this up and move to oopFactory (see bug 4718422)
|
||||
SharedHeap::fill_region_with_object(mr);
|
||||
CollectedHeap::fill_with_object((HeapWord*) new_obj, new_obj_size);
|
||||
}
|
||||
} else if (!_young_lab.unallocate_object(new_obj)) {
|
||||
CollectedHeap::fill_with_object((HeapWord*) new_obj, new_obj_size);
|
||||
}
|
||||
|
||||
// don't update this before the unallocation!
|
||||
|
@ -76,8 +76,8 @@ void MutableNUMASpace::ensure_parsability() {
|
||||
MutableSpace *s = ls->space();
|
||||
if (s->top() < top()) { // For all spaces preceeding the one containing top()
|
||||
if (s->free_in_words() > 0) {
|
||||
SharedHeap::fill_region_with_object(MemRegion(s->top(), s->end()));
|
||||
size_t area_touched_words = pointer_delta(s->end(), s->top());
|
||||
CollectedHeap::fill_with_object(s->top(), area_touched_words);
|
||||
#ifndef ASSERT
|
||||
if (!ZapUnusedHeapArea) {
|
||||
area_touched_words = MIN2((size_t)align_object_size(typeArrayOopDesc::header_size(T_INT)),
|
||||
@ -686,11 +686,11 @@ void MutableNUMASpace::set_top(HeapWord* value) {
|
||||
// a minimal object; assuming that's not the last chunk in which case we don't care.
|
||||
if (i < lgrp_spaces()->length() - 1) {
|
||||
size_t remainder = pointer_delta(s->end(), value);
|
||||
const size_t minimal_object_size = oopDesc::header_size();
|
||||
if (remainder < minimal_object_size && remainder > 0) {
|
||||
// Add a filler object of a minimal size, it will cross the chunk boundary.
|
||||
SharedHeap::fill_region_with_object(MemRegion(value, minimal_object_size));
|
||||
value += minimal_object_size;
|
||||
const size_t min_fill_size = CollectedHeap::min_fill_size();
|
||||
if (remainder < min_fill_size && remainder > 0) {
|
||||
// Add a minimum size filler object; it will cross the chunk boundary.
|
||||
CollectedHeap::fill_with_object(value, min_fill_size);
|
||||
value += min_fill_size;
|
||||
assert(!s->contains(value), "Should be in the next chunk");
|
||||
// Restart the loop from the same chunk, since the value has moved
|
||||
// to the next one.
|
||||
|
@ -30,12 +30,21 @@
|
||||
int CollectedHeap::_fire_out_of_memory_count = 0;
|
||||
#endif
|
||||
|
||||
size_t CollectedHeap::_filler_array_max_size = 0;
|
||||
|
||||
// Memory state functions.
|
||||
|
||||
CollectedHeap::CollectedHeap() :
|
||||
_reserved(), _barrier_set(NULL), _is_gc_active(false),
|
||||
_total_collections(0), _total_full_collections(0),
|
||||
_gc_cause(GCCause::_no_gc), _gc_lastcause(GCCause::_no_gc) {
|
||||
CollectedHeap::CollectedHeap()
|
||||
{
|
||||
const size_t max_len = size_t(arrayOopDesc::max_array_length(T_INT));
|
||||
const size_t elements_per_word = HeapWordSize / sizeof(jint);
|
||||
_filler_array_max_size = align_object_size(filler_array_hdr_size() +
|
||||
max_len * elements_per_word);
|
||||
|
||||
_barrier_set = NULL;
|
||||
_is_gc_active = false;
|
||||
_total_collections = _total_full_collections = 0;
|
||||
_gc_cause = _gc_lastcause = GCCause::_no_gc;
|
||||
NOT_PRODUCT(_promotion_failure_alot_count = 0;)
|
||||
NOT_PRODUCT(_promotion_failure_alot_gc_number = 0;)
|
||||
|
||||
@ -128,6 +137,94 @@ HeapWord* CollectedHeap::allocate_from_tlab_slow(Thread* thread, size_t size) {
|
||||
return obj;
|
||||
}
|
||||
|
||||
size_t CollectedHeap::filler_array_hdr_size() {
|
||||
return size_t(arrayOopDesc::header_size(T_INT));
|
||||
}
|
||||
|
||||
size_t CollectedHeap::filler_array_min_size() {
|
||||
return align_object_size(filler_array_hdr_size());
|
||||
}
|
||||
|
||||
size_t CollectedHeap::filler_array_max_size() {
|
||||
return _filler_array_max_size;
|
||||
}
|
||||
|
||||
#ifdef ASSERT
|
||||
void CollectedHeap::fill_args_check(HeapWord* start, size_t words)
|
||||
{
|
||||
assert(words >= min_fill_size(), "too small to fill");
|
||||
assert(words % MinObjAlignment == 0, "unaligned size");
|
||||
assert(Universe::heap()->is_in_reserved(start), "not in heap");
|
||||
assert(Universe::heap()->is_in_reserved(start + words - 1), "not in heap");
|
||||
}
|
||||
|
||||
void CollectedHeap::zap_filler_array(HeapWord* start, size_t words)
|
||||
{
|
||||
if (ZapFillerObjects) {
|
||||
Copy::fill_to_words(start + filler_array_hdr_size(),
|
||||
words - filler_array_hdr_size(), 0XDEAFBABE);
|
||||
}
|
||||
}
|
||||
#endif // ASSERT
|
||||
|
||||
void
|
||||
CollectedHeap::fill_with_array(HeapWord* start, size_t words)
|
||||
{
|
||||
assert(words >= filler_array_min_size(), "too small for an array");
|
||||
assert(words <= filler_array_max_size(), "too big for a single object");
|
||||
|
||||
const size_t payload_size = words - filler_array_hdr_size();
|
||||
const size_t len = payload_size * HeapWordSize / sizeof(jint);
|
||||
|
||||
// Set the length first for concurrent GC.
|
||||
((arrayOop)start)->set_length((int)len);
|
||||
post_allocation_setup_common(Universe::intArrayKlassObj(), start, words);
|
||||
DEBUG_ONLY(zap_filler_array(start, words);)
|
||||
}
|
||||
|
||||
void
|
||||
CollectedHeap::fill_with_object_impl(HeapWord* start, size_t words)
|
||||
{
|
||||
assert(words <= filler_array_max_size(), "too big for a single object");
|
||||
|
||||
if (words >= filler_array_min_size()) {
|
||||
fill_with_array(start, words);
|
||||
} else if (words > 0) {
|
||||
assert(words == min_fill_size(), "unaligned size");
|
||||
post_allocation_setup_common(SystemDictionary::object_klass(), start,
|
||||
words);
|
||||
}
|
||||
}
|
||||
|
||||
void CollectedHeap::fill_with_object(HeapWord* start, size_t words)
|
||||
{
|
||||
DEBUG_ONLY(fill_args_check(start, words);)
|
||||
HandleMark hm; // Free handles before leaving.
|
||||
fill_with_object_impl(start, words);
|
||||
}
|
||||
|
||||
void CollectedHeap::fill_with_objects(HeapWord* start, size_t words)
|
||||
{
|
||||
DEBUG_ONLY(fill_args_check(start, words);)
|
||||
HandleMark hm; // Free handles before leaving.
|
||||
|
||||
#ifdef LP64
|
||||
// A single array can fill ~8G, so multiple objects are needed only in 64-bit.
|
||||
// First fill with arrays, ensuring that any remaining space is big enough to
|
||||
// fill. The remainder is filled with a single object.
|
||||
const size_t min = min_fill_size();
|
||||
const size_t max = filler_array_max_size();
|
||||
while (words > max) {
|
||||
const size_t cur = words - max >= min ? max : max - min;
|
||||
fill_with_array(start, cur);
|
||||
start += cur;
|
||||
words -= cur;
|
||||
}
|
||||
#endif
|
||||
|
||||
fill_with_object_impl(start, words);
|
||||
}
|
||||
|
||||
oop CollectedHeap::new_store_barrier(oop new_obj) {
|
||||
// %%% This needs refactoring. (It was imported from the server compiler.)
|
||||
guarantee(can_elide_tlab_store_barriers(), "store barrier elision not supported");
|
||||
|
@ -47,6 +47,9 @@ class CollectedHeap : public CHeapObj {
|
||||
static int _fire_out_of_memory_count;
|
||||
#endif
|
||||
|
||||
// Used for filler objects (static, but initialized in ctor).
|
||||
static size_t _filler_array_max_size;
|
||||
|
||||
protected:
|
||||
MemRegion _reserved;
|
||||
BarrierSet* _barrier_set;
|
||||
@ -119,6 +122,21 @@ class CollectedHeap : public CHeapObj {
|
||||
// Clears an allocated object.
|
||||
inline static void init_obj(HeapWord* obj, size_t size);
|
||||
|
||||
// Filler object utilities.
|
||||
static inline size_t filler_array_hdr_size();
|
||||
static inline size_t filler_array_min_size();
|
||||
static inline size_t filler_array_max_size();
|
||||
|
||||
DEBUG_ONLY(static void fill_args_check(HeapWord* start, size_t words);)
|
||||
DEBUG_ONLY(static void zap_filler_array(HeapWord* start, size_t words);)
|
||||
|
||||
// Fill with a single array; caller must ensure filler_array_min_size() <=
|
||||
// words <= filler_array_max_size().
|
||||
static inline void fill_with_array(HeapWord* start, size_t words);
|
||||
|
||||
// Fill with a single object (either an int array or a java.lang.Object).
|
||||
static inline void fill_with_object_impl(HeapWord* start, size_t words);
|
||||
|
||||
// Verification functions
|
||||
virtual void check_for_bad_heap_word_value(HeapWord* addr, size_t size)
|
||||
PRODUCT_RETURN;
|
||||
@ -294,6 +312,27 @@ class CollectedHeap : public CHeapObj {
|
||||
// The boundary between a "large" and "small" array of primitives, in words.
|
||||
virtual size_t large_typearray_limit() = 0;
|
||||
|
||||
// Utilities for turning raw memory into filler objects.
|
||||
//
|
||||
// min_fill_size() is the smallest region that can be filled.
|
||||
// fill_with_objects() can fill arbitrary-sized regions of the heap using
|
||||
// multiple objects. fill_with_object() is for regions known to be smaller
|
||||
// than the largest array of integers; it uses a single object to fill the
|
||||
// region and has slightly less overhead.
|
||||
static size_t min_fill_size() {
|
||||
return size_t(align_object_size(oopDesc::header_size()));
|
||||
}
|
||||
|
||||
static void fill_with_objects(HeapWord* start, size_t words);
|
||||
|
||||
static void fill_with_object(HeapWord* start, size_t words);
|
||||
static void fill_with_object(MemRegion region) {
|
||||
fill_with_object(region.start(), region.word_size());
|
||||
}
|
||||
static void fill_with_object(HeapWord* start, HeapWord* end) {
|
||||
fill_with_object(start, pointer_delta(end, start));
|
||||
}
|
||||
|
||||
// Some heaps may offer a contiguous region for shared non-blocking
|
||||
// allocation, via inlined code (by exporting the address of the top and
|
||||
// end fields defining the extent of the contiguous allocation region.)
|
||||
|
@ -34,7 +34,6 @@ void CollectedHeap::post_allocation_setup_common(KlassHandle klass,
|
||||
void CollectedHeap::post_allocation_setup_no_klass_install(KlassHandle klass,
|
||||
HeapWord* objPtr,
|
||||
size_t size) {
|
||||
|
||||
oop obj = (oop)objPtr;
|
||||
|
||||
assert(obj != NULL, "NULL object pointer");
|
||||
@ -44,9 +43,6 @@ void CollectedHeap::post_allocation_setup_no_klass_install(KlassHandle klass,
|
||||
// May be bootstrapping
|
||||
obj->set_mark(markOopDesc::prototype());
|
||||
}
|
||||
|
||||
// support low memory notifications (no-op if not enabled)
|
||||
LowMemoryDetector::detect_low_memory_for_collected_pools();
|
||||
}
|
||||
|
||||
void CollectedHeap::post_allocation_install_obj_klass(KlassHandle klass,
|
||||
@ -65,6 +61,9 @@ void CollectedHeap::post_allocation_install_obj_klass(KlassHandle klass,
|
||||
|
||||
// Support for jvmti and dtrace
|
||||
inline void post_allocation_notify(KlassHandle klass, oop obj) {
|
||||
// support low memory notifications (no-op if not enabled)
|
||||
LowMemoryDetector::detect_low_memory_for_collected_pools();
|
||||
|
||||
// support for JVMTI VMObjectAlloc event (no-op if not enabled)
|
||||
JvmtiExport::vm_object_alloc_event_collector(obj);
|
||||
|
||||
|
@ -28,21 +28,22 @@ collectedHeap.cpp collectedHeap.hpp
|
||||
collectedHeap.cpp collectedHeap.inline.hpp
|
||||
collectedHeap.cpp init.hpp
|
||||
collectedHeap.cpp oop.inline.hpp
|
||||
collectedHeap.cpp systemDictionary.hpp
|
||||
collectedHeap.cpp thread_<os_family>.inline.hpp
|
||||
|
||||
collectedHeap.hpp allocation.hpp
|
||||
collectedHeap.hpp barrierSet.hpp
|
||||
collectedHeap.hpp gcCause.hpp
|
||||
collectedHeap.hpp handles.hpp
|
||||
collectedHeap.hpp perfData.hpp
|
||||
collectedHeap.hpp perfData.hpp
|
||||
collectedHeap.hpp safepoint.hpp
|
||||
|
||||
collectedHeap.inline.hpp arrayOop.hpp
|
||||
collectedHeap.inline.hpp collectedHeap.hpp
|
||||
collectedHeap.inline.hpp copy.hpp
|
||||
collectedHeap.inline.hpp jvmtiExport.hpp
|
||||
collectedHeap.inline.hpp lowMemoryDetector.hpp
|
||||
collectedHeap.inline.hpp sharedRuntime.hpp
|
||||
collectedHeap.inline.hpp lowMemoryDetector.hpp
|
||||
collectedHeap.inline.hpp sharedRuntime.hpp
|
||||
collectedHeap.inline.hpp thread.hpp
|
||||
collectedHeap.inline.hpp threadLocalAllocBuffer.inline.hpp
|
||||
collectedHeap.inline.hpp universe.hpp
|
||||
|
@ -283,7 +283,7 @@ void CardTableModRefBS::resize_covered_region(MemRegion new_region) {
|
||||
} else {
|
||||
entry = byte_after(old_region.last());
|
||||
}
|
||||
assert(index_for(new_region.last()) < (int) _guard_index,
|
||||
assert(index_for(new_region.last()) < _guard_index,
|
||||
"The guard card will be overwritten");
|
||||
// This line commented out cleans the newly expanded region and
|
||||
// not the aligned up expanded region.
|
||||
|
@ -428,7 +428,7 @@ public:
|
||||
}
|
||||
|
||||
// Mapping from address to card marking array index.
|
||||
int index_for(void* p) {
|
||||
size_t index_for(void* p) {
|
||||
assert(_whole_heap.contains(p),
|
||||
"out of bounds access to card marking array");
|
||||
return byte_for(p) - _byte_map;
|
||||
|
@ -26,20 +26,24 @@
|
||||
#include "incls/_permGen.cpp.incl"
|
||||
|
||||
HeapWord* PermGen::mem_allocate_in_gen(size_t size, Generation* gen) {
|
||||
MutexLocker ml(Heap_lock);
|
||||
GCCause::Cause next_cause = GCCause::_permanent_generation_full;
|
||||
GCCause::Cause prev_cause = GCCause::_no_gc;
|
||||
unsigned int gc_count_before, full_gc_count_before;
|
||||
HeapWord* obj;
|
||||
|
||||
for (;;) {
|
||||
HeapWord* obj = gen->allocate(size, false);
|
||||
if (obj != NULL) {
|
||||
return obj;
|
||||
}
|
||||
if (gen->capacity() < _capacity_expansion_limit ||
|
||||
prev_cause != GCCause::_no_gc) {
|
||||
obj = gen->expand_and_allocate(size, false);
|
||||
}
|
||||
if (obj == NULL && prev_cause != GCCause::_last_ditch_collection) {
|
||||
{
|
||||
MutexLocker ml(Heap_lock);
|
||||
if ((obj = gen->allocate(size, false)) != NULL) {
|
||||
return obj;
|
||||
}
|
||||
if (gen->capacity() < _capacity_expansion_limit ||
|
||||
prev_cause != GCCause::_no_gc) {
|
||||
obj = gen->expand_and_allocate(size, false);
|
||||
}
|
||||
if (obj != NULL || prev_cause == GCCause::_last_ditch_collection) {
|
||||
return obj;
|
||||
}
|
||||
if (GC_locker::is_active_and_needs_gc()) {
|
||||
// If this thread is not in a jni critical section, we stall
|
||||
// the requestor until the critical section has cleared and
|
||||
@ -61,31 +65,27 @@ HeapWord* PermGen::mem_allocate_in_gen(size_t size, Generation* gen) {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
// Read the GC count while holding the Heap_lock
|
||||
unsigned int gc_count_before = SharedHeap::heap()->total_collections();
|
||||
unsigned int full_gc_count_before = SharedHeap::heap()->total_full_collections();
|
||||
{
|
||||
MutexUnlocker mu(Heap_lock); // give up heap lock, execute gets it back
|
||||
VM_GenCollectForPermanentAllocation op(size, gc_count_before, full_gc_count_before,
|
||||
next_cause);
|
||||
VMThread::execute(&op);
|
||||
if (!op.prologue_succeeded() || op.gc_locked()) {
|
||||
assert(op.result() == NULL, "must be NULL if gc_locked() is true");
|
||||
continue; // retry and/or stall as necessary
|
||||
}
|
||||
obj = op.result();
|
||||
assert(obj == NULL || SharedHeap::heap()->is_in_reserved(obj),
|
||||
"result not in heap");
|
||||
if (obj != NULL) {
|
||||
return obj;
|
||||
}
|
||||
}
|
||||
prev_cause = next_cause;
|
||||
next_cause = GCCause::_last_ditch_collection;
|
||||
} else {
|
||||
gc_count_before = SharedHeap::heap()->total_collections();
|
||||
full_gc_count_before = SharedHeap::heap()->total_full_collections();
|
||||
}
|
||||
|
||||
// Give up heap lock above, VMThread::execute below gets it back
|
||||
VM_GenCollectForPermanentAllocation op(size, gc_count_before, full_gc_count_before,
|
||||
next_cause);
|
||||
VMThread::execute(&op);
|
||||
if (!op.prologue_succeeded() || op.gc_locked()) {
|
||||
assert(op.result() == NULL, "must be NULL if gc_locked() is true");
|
||||
continue; // retry and/or stall as necessary
|
||||
}
|
||||
obj = op.result();
|
||||
assert(obj == NULL || SharedHeap::heap()->is_in_reserved(obj),
|
||||
"result not in heap");
|
||||
if (obj != NULL) {
|
||||
return obj;
|
||||
}
|
||||
prev_cause = next_cause;
|
||||
next_cause = GCCause::_last_ditch_collection;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -248,46 +248,6 @@ void SharedHeap::ref_processing_init() {
|
||||
perm_gen()->ref_processor_init();
|
||||
}
|
||||
|
||||
void SharedHeap::fill_region_with_object(MemRegion mr) {
|
||||
// Disable the posting of JVMTI VMObjectAlloc events as we
|
||||
// don't want the filling of tlabs with filler arrays to be
|
||||
// reported to the profiler.
|
||||
NoJvmtiVMObjectAllocMark njm;
|
||||
|
||||
// Disable low memory detector because there is no real allocation.
|
||||
LowMemoryDetectorDisabler lmd_dis;
|
||||
|
||||
// It turns out that post_allocation_setup_array takes a handle, so the
|
||||
// call below contains an implicit conversion. Best to free that handle
|
||||
// as soon as possible.
|
||||
HandleMark hm;
|
||||
|
||||
size_t word_size = mr.word_size();
|
||||
size_t aligned_array_header_size =
|
||||
align_object_size(typeArrayOopDesc::header_size(T_INT));
|
||||
|
||||
if (word_size >= aligned_array_header_size) {
|
||||
const size_t array_length =
|
||||
pointer_delta(mr.end(), mr.start()) -
|
||||
typeArrayOopDesc::header_size(T_INT);
|
||||
const size_t array_length_words =
|
||||
array_length * (HeapWordSize/sizeof(jint));
|
||||
post_allocation_setup_array(Universe::intArrayKlassObj(),
|
||||
mr.start(),
|
||||
mr.word_size(),
|
||||
(int)array_length_words);
|
||||
#ifdef ASSERT
|
||||
HeapWord* elt_words = (mr.start() + typeArrayOopDesc::header_size(T_INT));
|
||||
Copy::fill_to_words(elt_words, array_length, 0xDEAFBABE);
|
||||
#endif
|
||||
} else {
|
||||
assert(word_size == (size_t)oopDesc::header_size(), "Unaligned?");
|
||||
post_allocation_setup_obj(SystemDictionary::object_klass(),
|
||||
mr.start(),
|
||||
mr.word_size());
|
||||
}
|
||||
}
|
||||
|
||||
// Some utilities.
|
||||
void SharedHeap::print_size_transition(outputStream* out,
|
||||
size_t bytes_before,
|
||||
|
@ -108,14 +108,6 @@ public:
|
||||
|
||||
void set_perm(PermGen* perm_gen) { _perm_gen = perm_gen; }
|
||||
|
||||
// A helper function that fills a region of the heap with
|
||||
// with a single object.
|
||||
static void fill_region_with_object(MemRegion mr);
|
||||
|
||||
// Minimum garbage fill object size
|
||||
static size_t min_fill_size() { return (size_t)align_object_size(oopDesc::header_size()); }
|
||||
static size_t min_fill_size_in_bytes() { return min_fill_size() * HeapWordSize; }
|
||||
|
||||
// This function returns the "GenRemSet" object that allows us to scan
|
||||
// generations; at least the perm gen, possibly more in a fully
|
||||
// generational heap.
|
||||
|
@ -409,19 +409,9 @@ bool CompactibleSpace::insert_deadspace(size_t& allowed_deadspace_words,
|
||||
HeapWord* q, size_t deadlength) {
|
||||
if (allowed_deadspace_words >= deadlength) {
|
||||
allowed_deadspace_words -= deadlength;
|
||||
oop(q)->set_mark(markOopDesc::prototype()->set_marked());
|
||||
const size_t min_int_array_size = typeArrayOopDesc::header_size(T_INT);
|
||||
if (deadlength >= min_int_array_size) {
|
||||
oop(q)->set_klass(Universe::intArrayKlassObj());
|
||||
typeArrayOop(q)->set_length((int)((deadlength - min_int_array_size)
|
||||
* (HeapWordSize/sizeof(jint))));
|
||||
} else {
|
||||
assert((int) deadlength == instanceOopDesc::header_size(),
|
||||
"size for smallest fake dead object doesn't match");
|
||||
oop(q)->set_klass(SystemDictionary::object_klass());
|
||||
}
|
||||
assert((int) deadlength == oop(q)->size(),
|
||||
"make sure size for fake dead object match");
|
||||
CollectedHeap::fill_with_object(q, deadlength);
|
||||
oop(q)->set_mark(oop(q)->mark()->set_marked());
|
||||
assert((int) deadlength == oop(q)->size(), "bad filler object size");
|
||||
// Recall that we required "q == compaction_top".
|
||||
return true;
|
||||
} else {
|
||||
|
@ -387,7 +387,7 @@ void TenuredGeneration::par_promote_alloc_undo(int thread_num,
|
||||
"should contain whole object");
|
||||
buf->undo_allocation(obj, word_sz);
|
||||
} else {
|
||||
SharedHeap::fill_region_with_object(MemRegion(obj, word_sz));
|
||||
CollectedHeap::fill_with_object(obj, word_sz);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -100,8 +100,7 @@ void ThreadLocalAllocBuffer::accumulate_statistics() {
|
||||
void ThreadLocalAllocBuffer::make_parsable(bool retire) {
|
||||
if (end() != NULL) {
|
||||
invariants();
|
||||
MemRegion mr(top(), hard_end());
|
||||
SharedHeap::fill_region_with_object(mr);
|
||||
CollectedHeap::fill_with_object(top(), hard_end());
|
||||
|
||||
if (retire || ZeroTLAB) { // "Reset" the TLAB
|
||||
set_start(NULL);
|
||||
|
@ -49,16 +49,16 @@ klassOop Universe::_constantPoolKlassObj = NULL;
|
||||
klassOop Universe::_constantPoolCacheKlassObj = NULL;
|
||||
klassOop Universe::_compiledICHolderKlassObj = NULL;
|
||||
klassOop Universe::_systemObjArrayKlassObj = NULL;
|
||||
oop Universe::_int_mirror = NULL;
|
||||
oop Universe::_float_mirror = NULL;
|
||||
oop Universe::_double_mirror = NULL;
|
||||
oop Universe::_byte_mirror = NULL;
|
||||
oop Universe::_bool_mirror = NULL;
|
||||
oop Universe::_char_mirror = NULL;
|
||||
oop Universe::_long_mirror = NULL;
|
||||
oop Universe::_short_mirror = NULL;
|
||||
oop Universe::_void_mirror = NULL;
|
||||
oop Universe::_mirrors[T_VOID+1] = { NULL /*, NULL...*/ };
|
||||
oop Universe::_int_mirror = NULL;
|
||||
oop Universe::_float_mirror = NULL;
|
||||
oop Universe::_double_mirror = NULL;
|
||||
oop Universe::_byte_mirror = NULL;
|
||||
oop Universe::_bool_mirror = NULL;
|
||||
oop Universe::_char_mirror = NULL;
|
||||
oop Universe::_long_mirror = NULL;
|
||||
oop Universe::_short_mirror = NULL;
|
||||
oop Universe::_void_mirror = NULL;
|
||||
oop Universe::_mirrors[T_VOID+1] = { NULL /*, NULL...*/ };
|
||||
oop Universe::_main_thread_group = NULL;
|
||||
oop Universe::_system_thread_group = NULL;
|
||||
typeArrayOop Universe::_the_empty_byte_array = NULL;
|
||||
@ -257,16 +257,16 @@ void Universe::genesis(TRAPS) {
|
||||
_typeArrayKlassObjs[T_INT] = _intArrayKlassObj;
|
||||
_typeArrayKlassObjs[T_LONG] = _longArrayKlassObj;
|
||||
|
||||
_methodKlassObj = methodKlass::create_klass(CHECK);
|
||||
_constMethodKlassObj = constMethodKlass::create_klass(CHECK);
|
||||
_methodDataKlassObj = methodDataKlass::create_klass(CHECK);
|
||||
_methodKlassObj = methodKlass::create_klass(CHECK);
|
||||
_constMethodKlassObj = constMethodKlass::create_klass(CHECK);
|
||||
_methodDataKlassObj = methodDataKlass::create_klass(CHECK);
|
||||
_constantPoolKlassObj = constantPoolKlass::create_klass(CHECK);
|
||||
_constantPoolCacheKlassObj = constantPoolCacheKlass::create_klass(CHECK);
|
||||
|
||||
_compiledICHolderKlassObj = compiledICHolderKlass::create_klass(CHECK);
|
||||
_systemObjArrayKlassObj = objArrayKlassKlass::cast(objArrayKlassKlassObj())->allocate_system_objArray_klass(CHECK);
|
||||
|
||||
_the_empty_byte_array = oopFactory::new_permanent_byteArray(0, CHECK);
|
||||
_the_empty_byte_array = oopFactory::new_permanent_byteArray(0, CHECK);
|
||||
_the_empty_short_array = oopFactory::new_permanent_shortArray(0, CHECK);
|
||||
_the_empty_int_array = oopFactory::new_permanent_intArray(0, CHECK);
|
||||
_the_empty_system_obj_array = oopFactory::new_system_objArray(0, CHECK);
|
||||
@ -274,7 +274,6 @@ void Universe::genesis(TRAPS) {
|
||||
_the_array_interfaces_array = oopFactory::new_system_objArray(2, CHECK);
|
||||
_vm_exception = oopFactory::new_symbol("vm exception holder", CHECK);
|
||||
} else {
|
||||
|
||||
FileMapInfo *mapinfo = FileMapInfo::current_info();
|
||||
char* buffer = mapinfo->region_base(CompactingPermGenGen::md);
|
||||
void** vtbl_list = (void**)buffer;
|
||||
|
@ -92,6 +92,7 @@ class LatestMethodOopCache : public CommonMethodOopCache {
|
||||
|
||||
|
||||
class Universe: AllStatic {
|
||||
// Ugh. Universe is much too friendly.
|
||||
friend class MarkSweep;
|
||||
friend class oopDesc;
|
||||
friend class ClassLoader;
|
||||
|
@ -96,19 +96,20 @@ class arrayOopDesc : public oopDesc {
|
||||
: typesize_in_bytes/HeapWordSize);
|
||||
}
|
||||
|
||||
// This method returns the maximum length that can passed into
|
||||
// typeArrayOop::object_size(scale, length, header_size) without causing an
|
||||
// overflow. We substract an extra 2*wordSize to guard against double word
|
||||
// alignments. It gets the scale from the type2aelembytes array.
|
||||
// Return the maximum length of an array of BasicType. The length can passed
|
||||
// to typeArrayOop::object_size(scale, length, header_size) without causing an
|
||||
// overflow.
|
||||
static int32_t max_array_length(BasicType type) {
|
||||
assert(type >= 0 && type < T_CONFLICT, "wrong type");
|
||||
assert(type2aelembytes(type) != 0, "wrong type");
|
||||
// We use max_jint, since object_size is internally represented by an 'int'
|
||||
// This gives us an upper bound of max_jint words for the size of the oop.
|
||||
int32_t max_words = (max_jint - header_size(type) - 2);
|
||||
int elembytes = type2aelembytes(type);
|
||||
jlong len = ((jlong)max_words * HeapWordSize) / elembytes;
|
||||
return (len > max_jint) ? max_jint : (int32_t)len;
|
||||
}
|
||||
const int bytes_per_element = type2aelembytes(type);
|
||||
if (bytes_per_element < HeapWordSize) {
|
||||
return max_jint;
|
||||
}
|
||||
|
||||
const int32_t max_words = align_size_down(max_jint, MinObjAlignment);
|
||||
const int32_t max_element_words = max_words - header_size(type);
|
||||
const int32_t words_per_element = bytes_per_element >> LogHeapWordSize;
|
||||
return max_element_words / words_per_element;
|
||||
}
|
||||
};
|
||||
|
@ -36,13 +36,14 @@ bool typeArrayKlass::compute_is_subtype_of(klassOop k) {
|
||||
return element_type() == tak->element_type();
|
||||
}
|
||||
|
||||
klassOop typeArrayKlass::create_klass(BasicType type, int scale, TRAPS) {
|
||||
klassOop typeArrayKlass::create_klass(BasicType type, int scale,
|
||||
const char* name_str, TRAPS) {
|
||||
typeArrayKlass o;
|
||||
|
||||
symbolHandle sym(symbolOop(NULL));
|
||||
// bootstrapping: don't create sym if symbolKlass not created yet
|
||||
if (Universe::symbolKlassObj() != NULL) {
|
||||
sym = oopFactory::new_symbol_handle(external_name(type), CHECK_NULL);
|
||||
if (Universe::symbolKlassObj() != NULL && name_str != NULL) {
|
||||
sym = oopFactory::new_symbol_handle(name_str, CHECK_NULL);
|
||||
}
|
||||
KlassHandle klassklass (THREAD, Universe::typeArrayKlassKlassObj());
|
||||
|
||||
|
@ -39,7 +39,11 @@ class typeArrayKlass : public arrayKlass {
|
||||
|
||||
// klass allocation
|
||||
DEFINE_ALLOCATE_PERMANENT(typeArrayKlass);
|
||||
static klassOop create_klass(BasicType type, int scale, TRAPS);
|
||||
static klassOop create_klass(BasicType type, int scale, const char* name_str,
|
||||
TRAPS);
|
||||
static inline klassOop create_klass(BasicType type, int scale, TRAPS) {
|
||||
return create_klass(type, scale, external_name(type), CHECK_NULL);
|
||||
}
|
||||
|
||||
int oop_size(oop obj) const;
|
||||
int klass_oop_size() const { return object_size(); }
|
||||
|
@ -2192,6 +2192,9 @@ static void final_graph_reshaping_impl( Node *n, Final_Reshape_Counts &fpu ) {
|
||||
|
||||
case Op_DecodeN:
|
||||
assert(!n->in(1)->is_EncodeP(), "should be optimized out");
|
||||
// DecodeN could be pinned on Sparc where it can't be fold into
|
||||
// an address expression, see the code for Op_CastPP above.
|
||||
assert(n->in(0) == NULL || !Matcher::clone_shift_expressions, "no control except on sparc");
|
||||
break;
|
||||
|
||||
case Op_EncodeP: {
|
||||
|
@ -1724,6 +1724,13 @@ void PhaseMacroExpand::expand_lock_node(LockNode *lock) {
|
||||
if (klass_node == NULL) {
|
||||
Node* k_adr = basic_plus_adr(obj, oopDesc::klass_offset_in_bytes());
|
||||
klass_node = transform_later( LoadKlassNode::make(_igvn, mem, k_adr, _igvn.type(k_adr)->is_ptr()) );
|
||||
#ifdef _LP64
|
||||
if (UseCompressedOops && klass_node->is_DecodeN()) {
|
||||
assert(klass_node->in(1)->Opcode() == Op_LoadNKlass, "sanity");
|
||||
klass_node->in(1)->init_req(0, ctrl);
|
||||
} else
|
||||
#endif
|
||||
klass_node->init_req(0, ctrl);
|
||||
}
|
||||
Node *proto_node = make_load(ctrl, mem, klass_node, Klass::prototype_header_offset_in_bytes() + sizeof(oopDesc), TypeX_X, TypeX_X->basic_type());
|
||||
|
||||
|
@ -2173,7 +2173,8 @@ static char* get_bad_address() {
|
||||
size_t size = os::vm_allocation_granularity();
|
||||
bad_address = os::reserve_memory(size);
|
||||
if (bad_address != NULL) {
|
||||
os::protect_memory(bad_address, size, os::MEM_PROT_READ);
|
||||
os::protect_memory(bad_address, size, os::MEM_PROT_READ,
|
||||
/*is_committed*/false);
|
||||
}
|
||||
}
|
||||
return bad_address;
|
||||
|
@ -444,9 +444,9 @@ char* SysClassPath::add_jars_to_path(char* path, const char* directory) {
|
||||
}
|
||||
|
||||
// Parses a memory size specification string.
|
||||
static bool atomll(const char *s, jlong* result) {
|
||||
jlong n = 0;
|
||||
int args_read = sscanf(s, os::jlong_format_specifier(), &n);
|
||||
static bool atomull(const char *s, julong* result) {
|
||||
julong n = 0;
|
||||
int args_read = sscanf(s, os::julong_format_specifier(), &n);
|
||||
if (args_read != 1) {
|
||||
return false;
|
||||
}
|
||||
@ -460,15 +460,20 @@ static bool atomll(const char *s, jlong* result) {
|
||||
switch (*s) {
|
||||
case 'T': case 't':
|
||||
*result = n * G * K;
|
||||
// Check for overflow.
|
||||
if (*result/((julong)G * K) != n) return false;
|
||||
return true;
|
||||
case 'G': case 'g':
|
||||
*result = n * G;
|
||||
if (*result/G != n) return false;
|
||||
return true;
|
||||
case 'M': case 'm':
|
||||
*result = n * M;
|
||||
if (*result/M != n) return false;
|
||||
return true;
|
||||
case 'K': case 'k':
|
||||
*result = n * K;
|
||||
if (*result/K != n) return false;
|
||||
return true;
|
||||
case '\0':
|
||||
*result = n;
|
||||
@ -478,10 +483,10 @@ static bool atomll(const char *s, jlong* result) {
|
||||
}
|
||||
}
|
||||
|
||||
Arguments::ArgsRange Arguments::check_memory_size(jlong size, jlong min_size) {
|
||||
Arguments::ArgsRange Arguments::check_memory_size(julong size, julong min_size) {
|
||||
if (size < min_size) return arg_too_small;
|
||||
// Check that size will fit in a size_t (only relevant on 32-bit)
|
||||
if ((julong) size > max_uintx) return arg_too_big;
|
||||
if (size > max_uintx) return arg_too_big;
|
||||
return arg_in_range;
|
||||
}
|
||||
|
||||
@ -522,10 +527,10 @@ static bool set_fp_numeric_flag(char* name, char* value, FlagValueOrigin origin)
|
||||
|
||||
|
||||
static bool set_numeric_flag(char* name, char* value, FlagValueOrigin origin) {
|
||||
jlong v;
|
||||
julong v;
|
||||
intx intx_v;
|
||||
bool is_neg = false;
|
||||
// Check the sign first since atomll() parses only unsigned values.
|
||||
// Check the sign first since atomull() parses only unsigned values.
|
||||
if (*value == '-') {
|
||||
if (!CommandLineFlags::intxAt(name, &intx_v)) {
|
||||
return false;
|
||||
@ -533,7 +538,7 @@ static bool set_numeric_flag(char* name, char* value, FlagValueOrigin origin) {
|
||||
value++;
|
||||
is_neg = true;
|
||||
}
|
||||
if (!atomll(value, &v)) {
|
||||
if (!atomull(value, &v)) {
|
||||
return false;
|
||||
}
|
||||
intx_v = (intx) v;
|
||||
@ -1517,6 +1522,16 @@ bool Arguments::check_vm_args_consistency() {
|
||||
MarkSweepAlwaysCompactCount = 1; // Move objects every gc.
|
||||
}
|
||||
|
||||
if (UseParallelOldGC && ParallelOldGCSplitALot) {
|
||||
// Settings to encourage splitting.
|
||||
if (!FLAG_IS_CMDLINE(NewRatio)) {
|
||||
FLAG_SET_CMDLINE(intx, NewRatio, 2);
|
||||
}
|
||||
if (!FLAG_IS_CMDLINE(ScavengeBeforeFullGC)) {
|
||||
FLAG_SET_CMDLINE(bool, ScavengeBeforeFullGC, false);
|
||||
}
|
||||
}
|
||||
|
||||
status = status && verify_percentage(GCHeapFreeLimit, "GCHeapFreeLimit");
|
||||
status = status && verify_percentage(GCTimeLimit, "GCTimeLimit");
|
||||
if (GCTimeLimit == 100) {
|
||||
@ -1667,9 +1682,9 @@ static bool match_option(const JavaVMOption* option, const char** names, const c
|
||||
}
|
||||
|
||||
Arguments::ArgsRange Arguments::parse_memory_size(const char* s,
|
||||
jlong* long_arg,
|
||||
jlong min_size) {
|
||||
if (!atomll(s, long_arg)) return arg_unreadable;
|
||||
julong* long_arg,
|
||||
julong min_size) {
|
||||
if (!atomull(s, long_arg)) return arg_unreadable;
|
||||
return check_memory_size(*long_arg, min_size);
|
||||
}
|
||||
|
||||
@ -1847,7 +1862,7 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args,
|
||||
FLAG_SET_CMDLINE(bool, BackgroundCompilation, false);
|
||||
// -Xmn for compatibility with other JVM vendors
|
||||
} else if (match_option(option, "-Xmn", &tail)) {
|
||||
jlong long_initial_eden_size = 0;
|
||||
julong long_initial_eden_size = 0;
|
||||
ArgsRange errcode = parse_memory_size(tail, &long_initial_eden_size, 1);
|
||||
if (errcode != arg_in_range) {
|
||||
jio_fprintf(defaultStream::error_stream(),
|
||||
@ -1859,7 +1874,7 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args,
|
||||
FLAG_SET_CMDLINE(uintx, NewSize, (size_t) long_initial_eden_size);
|
||||
// -Xms
|
||||
} else if (match_option(option, "-Xms", &tail)) {
|
||||
jlong long_initial_heap_size = 0;
|
||||
julong long_initial_heap_size = 0;
|
||||
ArgsRange errcode = parse_memory_size(tail, &long_initial_heap_size, 1);
|
||||
if (errcode != arg_in_range) {
|
||||
jio_fprintf(defaultStream::error_stream(),
|
||||
@ -1872,7 +1887,7 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args,
|
||||
set_min_heap_size(initial_heap_size());
|
||||
// -Xmx
|
||||
} else if (match_option(option, "-Xmx", &tail)) {
|
||||
jlong long_max_heap_size = 0;
|
||||
julong long_max_heap_size = 0;
|
||||
ArgsRange errcode = parse_memory_size(tail, &long_max_heap_size, 1);
|
||||
if (errcode != arg_in_range) {
|
||||
jio_fprintf(defaultStream::error_stream(),
|
||||
@ -1905,7 +1920,7 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args,
|
||||
}
|
||||
// -Xss
|
||||
} else if (match_option(option, "-Xss", &tail)) {
|
||||
jlong long_ThreadStackSize = 0;
|
||||
julong long_ThreadStackSize = 0;
|
||||
ArgsRange errcode = parse_memory_size(tail, &long_ThreadStackSize, 1000);
|
||||
if (errcode != arg_in_range) {
|
||||
jio_fprintf(defaultStream::error_stream(),
|
||||
@ -1921,9 +1936,9 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args,
|
||||
// HotSpot does not have separate native and Java stacks, ignore silently for compatibility
|
||||
// -Xmaxjitcodesize
|
||||
} else if (match_option(option, "-Xmaxjitcodesize", &tail)) {
|
||||
jlong long_ReservedCodeCacheSize = 0;
|
||||
julong long_ReservedCodeCacheSize = 0;
|
||||
ArgsRange errcode = parse_memory_size(tail, &long_ReservedCodeCacheSize,
|
||||
InitialCodeCacheSize);
|
||||
(size_t)InitialCodeCacheSize);
|
||||
if (errcode != arg_in_range) {
|
||||
jio_fprintf(defaultStream::error_stream(),
|
||||
"Invalid maximum code cache size: %s\n",
|
||||
@ -2228,7 +2243,7 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args,
|
||||
} else if (match_option(option, "-XX:TLEFragmentationRatio=", &tail)) {
|
||||
// No longer used.
|
||||
} else if (match_option(option, "-XX:TLESize=", &tail)) {
|
||||
jlong long_tlab_size = 0;
|
||||
julong long_tlab_size = 0;
|
||||
ArgsRange errcode = parse_memory_size(tail, &long_tlab_size, 1);
|
||||
if (errcode != arg_in_range) {
|
||||
jio_fprintf(defaultStream::error_stream(),
|
||||
@ -2283,7 +2298,7 @@ SOLARIS_ONLY(
|
||||
"-XX:ParCMSPromoteBlocksToClaim in the future\n");
|
||||
} else
|
||||
if (match_option(option, "-XX:ParallelGCOldGenAllocBufferSize=", &tail)) {
|
||||
jlong old_plab_size = 0;
|
||||
julong old_plab_size = 0;
|
||||
ArgsRange errcode = parse_memory_size(tail, &old_plab_size, 1);
|
||||
if (errcode != arg_in_range) {
|
||||
jio_fprintf(defaultStream::error_stream(),
|
||||
@ -2291,13 +2306,13 @@ SOLARIS_ONLY(
|
||||
describe_range_error(errcode);
|
||||
return JNI_EINVAL;
|
||||
}
|
||||
FLAG_SET_CMDLINE(uintx, OldPLABSize, (julong)old_plab_size);
|
||||
FLAG_SET_CMDLINE(uintx, OldPLABSize, old_plab_size);
|
||||
jio_fprintf(defaultStream::error_stream(),
|
||||
"Please use -XX:OldPLABSize in place of "
|
||||
"-XX:ParallelGCOldGenAllocBufferSize in the future\n");
|
||||
} else
|
||||
if (match_option(option, "-XX:ParallelGCToSpaceAllocBufferSize=", &tail)) {
|
||||
jlong young_plab_size = 0;
|
||||
julong young_plab_size = 0;
|
||||
ArgsRange errcode = parse_memory_size(tail, &young_plab_size, 1);
|
||||
if (errcode != arg_in_range) {
|
||||
jio_fprintf(defaultStream::error_stream(),
|
||||
@ -2305,7 +2320,7 @@ SOLARIS_ONLY(
|
||||
describe_range_error(errcode);
|
||||
return JNI_EINVAL;
|
||||
}
|
||||
FLAG_SET_CMDLINE(uintx, YoungPLABSize, (julong)young_plab_size);
|
||||
FLAG_SET_CMDLINE(uintx, YoungPLABSize, young_plab_size);
|
||||
jio_fprintf(defaultStream::error_stream(),
|
||||
"Please use -XX:YoungPLABSize in place of "
|
||||
"-XX:ParallelGCToSpaceAllocBufferSize in the future\n");
|
||||
|
@ -339,9 +339,9 @@ class Arguments : AllStatic {
|
||||
}
|
||||
static bool verify_percentage(uintx value, const char* name);
|
||||
static void describe_range_error(ArgsRange errcode);
|
||||
static ArgsRange check_memory_size(jlong size, jlong min_size);
|
||||
static ArgsRange parse_memory_size(const char* s, jlong* long_arg,
|
||||
jlong min_size);
|
||||
static ArgsRange check_memory_size(julong size, julong min_size);
|
||||
static ArgsRange parse_memory_size(const char* s, julong* long_arg,
|
||||
julong min_size);
|
||||
|
||||
// methods to build strings from individual args
|
||||
static void build_jvm_args(const char* arg);
|
||||
|
@ -625,6 +625,9 @@ class CommandLineFlags {
|
||||
develop(bool, CheckZapUnusedHeapArea, false, \
|
||||
"Check zapping of unused heap space") \
|
||||
\
|
||||
develop(bool, ZapFillerObjects, trueInDebug, \
|
||||
"Zap filler objects with 0xDEAFBABE") \
|
||||
\
|
||||
develop(bool, PrintVMMessages, true, \
|
||||
"Print vm messages on console") \
|
||||
\
|
||||
@ -818,7 +821,7 @@ class CommandLineFlags {
|
||||
product(bool, ClassUnloading, true, \
|
||||
"Do unloading of classes") \
|
||||
\
|
||||
diagnostic(bool, LinkWellKnownClasses, true, \
|
||||
diagnostic(bool, LinkWellKnownClasses, false, \
|
||||
"Resolve a well known class as soon as its name is seen") \
|
||||
\
|
||||
develop(bool, DisableStartThread, false, \
|
||||
@ -1200,11 +1203,12 @@ class CommandLineFlags {
|
||||
product(uintx, ParallelCMSThreads, 0, \
|
||||
"Max number of threads CMS will use for concurrent work") \
|
||||
\
|
||||
develop(bool, ParallelOldMTUnsafeMarkBitMap, false, \
|
||||
"Use the Parallel Old MT unsafe in marking the bitmap") \
|
||||
develop(bool, ParallelOldGCSplitALot, false, \
|
||||
"Provoke splitting (copying data from a young gen space to" \
|
||||
"multiple destination spaces)") \
|
||||
\
|
||||
develop(bool, ParallelOldMTUnsafeUpdateLiveData, false, \
|
||||
"Use the Parallel Old MT unsafe in update of live size") \
|
||||
develop(uintx, ParallelOldGCSplitInterval, 3, \
|
||||
"How often to provoke splitting a young gen space") \
|
||||
\
|
||||
develop(bool, TraceRegionTasksQueuing, false, \
|
||||
"Trace the queuing of the region tasks") \
|
||||
|
@ -504,7 +504,7 @@ class SignatureChekker : public SignatureIterator {
|
||||
intptr_t v = _value[p];
|
||||
if (v != 0 ) {
|
||||
size_t t = (size_t)v;
|
||||
bad = (t < (size_t)os::vm_page_size() ) || !(*(oop*)v)->is_oop_or_null(true);
|
||||
bad = (t < (size_t)os::vm_page_size() ) || !Handle::raw_resolve((oop *)v)->is_oop_or_null(true);
|
||||
if (CheckJNICalls && bad) {
|
||||
ReportJNIFatalError((JavaThread*)_thread, "Bad JNI oop argument");
|
||||
}
|
||||
|
@ -932,8 +932,9 @@ void os::serialize_thread_states() {
|
||||
// the mutator thread if such case is encountered. See bug 6546278 for details.
|
||||
Thread::muxAcquire(&SerializePageLock, "serialize_thread_states");
|
||||
os::protect_memory((char *)os::get_memory_serialize_page(),
|
||||
os::vm_page_size(), MEM_PROT_READ, /*is_committed*/true );
|
||||
os::unguard_memory((char *)os::get_memory_serialize_page(), os::vm_page_size());
|
||||
os::vm_page_size(), MEM_PROT_READ);
|
||||
os::protect_memory((char *)os::get_memory_serialize_page(),
|
||||
os::vm_page_size(), MEM_PROT_RW);
|
||||
Thread::muxRelease(&SerializePageLock);
|
||||
}
|
||||
|
||||
|
@ -208,7 +208,7 @@ class os: AllStatic {
|
||||
|
||||
enum ProtType { MEM_PROT_NONE, MEM_PROT_READ, MEM_PROT_RW, MEM_PROT_RWX };
|
||||
static bool protect_memory(char* addr, size_t bytes, ProtType prot,
|
||||
bool is_committed = false);
|
||||
bool is_committed = true);
|
||||
|
||||
static bool guard_memory(char* addr, size_t bytes);
|
||||
static bool unguard_memory(char* addr, size_t bytes);
|
||||
|
@ -3363,13 +3363,13 @@ void ObjectMonitor::ExitEpilog (Thread * Self, ObjectWaiter * Wakee) {
|
||||
// If the wakee is cold then transiently setting it's affinity
|
||||
// to the current CPU is a good idea.
|
||||
// See http://j2se.east/~dice/PERSIST/050624-PullAffinity.txt
|
||||
DTRACE_MONITOR_PROBE(contended__exit, this, object(), Self);
|
||||
Trigger->unpark() ;
|
||||
|
||||
// Maintain stats and report events to JVMTI
|
||||
if (ObjectSynchronizer::_sync_Parks != NULL) {
|
||||
ObjectSynchronizer::_sync_Parks->inc() ;
|
||||
}
|
||||
DTRACE_MONITOR_PROBE(contended__exit, this, object(), Self);
|
||||
}
|
||||
|
||||
|
||||
|
@ -694,10 +694,10 @@ JVM_ENTRY(jlong, jmm_SetPoolThreshold(JNIEnv* env, jobject obj, jmmThresholdType
|
||||
-1);
|
||||
}
|
||||
|
||||
if (threshold > max_intx) {
|
||||
THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(),
|
||||
"Invalid threshold value > max value of size_t",
|
||||
-1);
|
||||
if ((size_t)threshold > max_uintx) {
|
||||
stringStream st;
|
||||
st.print("Invalid valid threshold value. Threshold value (" UINT64_FORMAT ") > max value of size_t (" SIZE_FORMAT ")", (size_t)threshold, max_uintx);
|
||||
THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(), st.as_string(), -1);
|
||||
}
|
||||
|
||||
MemoryPool* pool = get_memory_pool_from_jobject(obj, CHECK_(0L));
|
||||
|
@ -332,6 +332,8 @@ void VMError::report(outputStream* st) {
|
||||
|
||||
// VM version
|
||||
st->print_cr("#");
|
||||
JDK_Version::current().to_string(buf, sizeof(buf));
|
||||
st->print_cr("# JRE version: %s", buf);
|
||||
st->print_cr("# Java VM: %s (%s %s %s %s)",
|
||||
Abstract_VM_Version::vm_name(),
|
||||
Abstract_VM_Version::vm_release(),
|
||||
|
43
hotspot/test/compiler/6757316/Test6757316.java
Normal file
43
hotspot/test/compiler/6757316/Test6757316.java
Normal file
@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
|
||||
* CA 95054 USA or visit www.sun.com if you need additional information or
|
||||
* have any questions.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @bug 6757316
|
||||
* @summary load_constant() produces a wrong long constant, with high a low words swapped
|
||||
* @run main/othervm -Xcomp Test6757316
|
||||
*/
|
||||
|
||||
public class Test6757316 {
|
||||
public static void main(String[] args) {
|
||||
long[] arr = {
|
||||
0x11111111aaaaaaaaL,
|
||||
0xaaaaaaaa11111111L,
|
||||
0x11111111aaaaaaaaL,
|
||||
0xaaaaaaaa11111111L
|
||||
};
|
||||
if (arr[0] == arr[1]) {
|
||||
throw new InternalError();
|
||||
}
|
||||
}
|
||||
}
|
40
hotspot/test/compiler/6758234/Test6758234.java
Normal file
40
hotspot/test/compiler/6758234/Test6758234.java
Normal file
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
|
||||
* CA 95054 USA or visit www.sun.com if you need additional information or
|
||||
* have any questions.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @bug 6758234
|
||||
* @summary if (k cond (a ? : b: c)) returns reversed answer if k is constant and b and c are longs
|
||||
* @run main/othervm -Xcomp -XX:CompileOnly=Test6758234.main Test6758234
|
||||
*/
|
||||
|
||||
public class Test6758234 {
|
||||
static int x = 0;
|
||||
static int y = 1;
|
||||
|
||||
public static void main(String[] args) {
|
||||
if (1 != ((x < y) ? 1L : 0)) {
|
||||
throw new InternalError();
|
||||
}
|
||||
}
|
||||
}
|
@ -16,3 +16,4 @@ cc5f810b5af8a3a83b0df5a29d9e24d7a0ff8086 jdk7-b38
|
||||
4e51997582effa006dde5c6d8b8820b2045b9c7f jdk7-b39
|
||||
2201dad60231a3c3e0346e3a0250d69ca3b71fd4 jdk7-b40
|
||||
44941f893cea95ecdd5987b12e548069bd803849 jdk7-b41
|
||||
3ef0bdfa7609f79d4f2ea621f30cf593a2e432ce jdk7-b42
|
||||
|
@ -113,8 +113,7 @@ FILES_src = \
|
||||
sun/nio/cs/FastCharsetProvider.java \
|
||||
sun/nio/cs/HistoricallyNamedCharset.java \
|
||||
sun/nio/cs/ISO_8859_1.java \
|
||||
sun/nio/cs/ISO_8859_15.java \
|
||||
sun/nio/cs/MS1252.java \
|
||||
sun/nio/cs/SingleByte.java \
|
||||
sun/nio/cs/SingleByteDecoder.java \
|
||||
sun/nio/cs/SingleByteEncoder.java \
|
||||
sun/nio/cs/StreamEncoder.java \
|
||||
@ -268,6 +267,34 @@ FILES_gen_ex = \
|
||||
java/nio/charset/IllegalCharsetNameException.java \
|
||||
java/nio/charset/UnsupportedCharsetException.java
|
||||
|
||||
FILES_gen_sbcs = \
|
||||
sun/nio/cs/ISO_8859_2.java \
|
||||
sun/nio/cs/ISO_8859_4.java \
|
||||
sun/nio/cs/ISO_8859_5.java \
|
||||
sun/nio/cs/ISO_8859_7.java \
|
||||
sun/nio/cs/ISO_8859_9.java \
|
||||
sun/nio/cs/ISO_8859_13.java \
|
||||
sun/nio/cs/ISO_8859_15.java \
|
||||
sun/nio/cs/IBM437.java \
|
||||
sun/nio/cs/IBM737.java \
|
||||
sun/nio/cs/IBM775.java \
|
||||
sun/nio/cs/IBM850.java \
|
||||
sun/nio/cs/IBM852.java \
|
||||
sun/nio/cs/IBM855.java \
|
||||
sun/nio/cs/IBM857.java \
|
||||
sun/nio/cs/IBM858.java \
|
||||
sun/nio/cs/IBM862.java \
|
||||
sun/nio/cs/IBM866.java \
|
||||
sun/nio/cs/IBM874.java \
|
||||
sun/nio/cs/KOI8_R.java \
|
||||
sun/nio/cs/KOI8_U.java \
|
||||
sun/nio/cs/MS1250.java \
|
||||
sun/nio/cs/MS1251.java \
|
||||
sun/nio/cs/MS1252.java \
|
||||
sun/nio/cs/MS1253.java \
|
||||
sun/nio/cs/MS1254.java \
|
||||
sun/nio/cs/MS1257.java
|
||||
|
||||
FILES_gen_csp = sun/nio/cs/StandardCharsets.java
|
||||
|
||||
FILES_gen_sor = sun/nio/ch/SocketOptionRegistry.java
|
||||
@ -275,4 +302,4 @@ FILES_gen_sor = sun/nio/ch/SocketOptionRegistry.java
|
||||
FILES_gen = $(FILES_gen_coder) $(FILES_gen_buffer) $(FILES_gen_ex) \
|
||||
$(FILES_gen_csp) $(FILES_gen_sor)
|
||||
|
||||
FILES_java = $(FILES_src) $(FILES_gen)
|
||||
FILES_java = $(FILES_src) $(FILES_gen) $(FILES_gen_sbcs)
|
||||
|
@ -182,7 +182,9 @@ CS_GEN=$(NIO_GEN)/charset
|
||||
SCH_GEN=$(SNIO_GEN)/ch
|
||||
SCS_GEN=$(SNIO_GEN)/cs
|
||||
|
||||
sources: $(SPP_JARFILE) $(FILES_genout)
|
||||
FILES_gensbcs_out = $(FILES_gen_sbcs:%.java=$(GENSRCDIR)/%.java)
|
||||
|
||||
sources: $(SPP_JARFILE) $(FILES_genout) $(FILES_gensbcs_out)
|
||||
|
||||
#
|
||||
# Generated buffer classes
|
||||
@ -657,4 +659,15 @@ $(SCH_GEN)/SocketOptionRegistry.java: $(GENSOR_EXE)
|
||||
NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh $(SOR_COPYRIGHT_YEARS) > $@
|
||||
$(GENSOR_EXE) >> $@
|
||||
|
||||
#
|
||||
# Generated sun.nio.cs SingleByte classes
|
||||
#
|
||||
GENCSSRC = $(BUILDDIR)/tools/CharsetMapping
|
||||
CHARSETMAPPING_JARFILE = $(BUILDTOOLJARDIR)/charsetmapping.jar
|
||||
|
||||
$(FILES_gensbcs_out): $(GENCSSRC)/SingleByte-X.java $(GENCSSRC)/sbcs
|
||||
@$(prep-target)
|
||||
$(BOOT_JAVA_CMD) -cp $(CHARSETMAPPING_JARFILE) build.tools.charsetmapping.GenerateSBCS \
|
||||
$(GENCSSRC) $(SCS_GEN) sbcs
|
||||
|
||||
.PHONY: sources
|
||||
|
@ -407,6 +407,7 @@ SUNWprivate_1.1 {
|
||||
Java_sun_java2d_x11_X11SurfaceData_initSurface;
|
||||
Java_sun_java2d_x11_X11SurfaceData_isDrawableValid;
|
||||
Java_sun_java2d_x11_X11SurfaceData_isDgaAvailable;
|
||||
Java_sun_java2d_x11_X11SurfaceData_isShmPMAvailable;
|
||||
Java_sun_java2d_x11_X11SurfaceData_setInvalid;
|
||||
Java_sun_java2d_x11_X11SurfaceData_flushNativeSurface;
|
||||
Java_sun_java2d_x11_X11SurfaceData_XCreateGC;
|
||||
|
@ -29,7 +29,7 @@
|
||||
# Core character converters are built from make/java/java.
|
||||
#
|
||||
|
||||
FILES_java = \
|
||||
FILES_src = \
|
||||
sun/io/ByteToCharDoubleByte.java \
|
||||
sun/io/ByteToCharDBCS_ASCII.java \
|
||||
sun/io/ByteToCharDBCS_EBCDIC.java \
|
||||
@ -303,3 +303,77 @@ FILES_java = \
|
||||
sun/io/CharToByteMacTurkish.java \
|
||||
sun/io/CharToByteMacUkraine.java \
|
||||
sun/io/CharToByteTIS620.java
|
||||
|
||||
FILES_gen_extsbcs = \
|
||||
sun/nio/cs/ext/IBM037.java \
|
||||
sun/nio/cs/ext/IBM1006.java \
|
||||
sun/nio/cs/ext/IBM1025.java \
|
||||
sun/nio/cs/ext/IBM1026.java \
|
||||
sun/nio/cs/ext/IBM1046.java \
|
||||
sun/nio/cs/ext/IBM1047.java \
|
||||
sun/nio/cs/ext/IBM1097.java \
|
||||
sun/nio/cs/ext/IBM1098.java \
|
||||
sun/nio/cs/ext/IBM1112.java \
|
||||
sun/nio/cs/ext/IBM1122.java \
|
||||
sun/nio/cs/ext/IBM1123.java \
|
||||
sun/nio/cs/ext/IBM1124.java \
|
||||
sun/nio/cs/ext/IBM1140.java \
|
||||
sun/nio/cs/ext/IBM1141.java \
|
||||
sun/nio/cs/ext/IBM1142.java \
|
||||
sun/nio/cs/ext/IBM1143.java \
|
||||
sun/nio/cs/ext/IBM1144.java \
|
||||
sun/nio/cs/ext/IBM1145.java \
|
||||
sun/nio/cs/ext/IBM1146.java \
|
||||
sun/nio/cs/ext/IBM1147.java \
|
||||
sun/nio/cs/ext/IBM1148.java \
|
||||
sun/nio/cs/ext/IBM1149.java \
|
||||
sun/nio/cs/ext/IBM273.java \
|
||||
sun/nio/cs/ext/IBM277.java \
|
||||
sun/nio/cs/ext/IBM278.java \
|
||||
sun/nio/cs/ext/IBM280.java \
|
||||
sun/nio/cs/ext/IBM284.java \
|
||||
sun/nio/cs/ext/IBM285.java \
|
||||
sun/nio/cs/ext/IBM297.java \
|
||||
sun/nio/cs/ext/IBM420.java \
|
||||
sun/nio/cs/ext/IBM424.java \
|
||||
sun/nio/cs/ext/IBM500.java \
|
||||
sun/nio/cs/ext/IBM838.java \
|
||||
sun/nio/cs/ext/IBM856.java \
|
||||
sun/nio/cs/ext/IBM860.java \
|
||||
sun/nio/cs/ext/IBM861.java \
|
||||
sun/nio/cs/ext/IBM863.java \
|
||||
sun/nio/cs/ext/IBM864.java \
|
||||
sun/nio/cs/ext/IBM865.java \
|
||||
sun/nio/cs/ext/IBM868.java \
|
||||
sun/nio/cs/ext/IBM869.java \
|
||||
sun/nio/cs/ext/IBM870.java \
|
||||
sun/nio/cs/ext/IBM871.java \
|
||||
sun/nio/cs/ext/IBM875.java \
|
||||
sun/nio/cs/ext/IBM918.java \
|
||||
sun/nio/cs/ext/IBM921.java \
|
||||
sun/nio/cs/ext/IBM922.java \
|
||||
sun/nio/cs/ext/ISO_8859_11.java \
|
||||
sun/nio/cs/ext/ISO_8859_3.java \
|
||||
sun/nio/cs/ext/ISO_8859_6.java \
|
||||
sun/nio/cs/ext/ISO_8859_8.java \
|
||||
sun/nio/cs/ext/MS1255.java \
|
||||
sun/nio/cs/ext/MS1256.java \
|
||||
sun/nio/cs/ext/MS1258.java \
|
||||
sun/nio/cs/ext/MS874.java \
|
||||
sun/nio/cs/ext/MacArabic.java \
|
||||
sun/nio/cs/ext/MacCentralEurope.java \
|
||||
sun/nio/cs/ext/MacCroatian.java \
|
||||
sun/nio/cs/ext/MacCyrillic.java \
|
||||
sun/nio/cs/ext/MacDingbat.java \
|
||||
sun/nio/cs/ext/MacGreek.java \
|
||||
sun/nio/cs/ext/MacHebrew.java \
|
||||
sun/nio/cs/ext/MacIceland.java \
|
||||
sun/nio/cs/ext/MacRoman.java \
|
||||
sun/nio/cs/ext/MacRomania.java \
|
||||
sun/nio/cs/ext/MacSymbol.java \
|
||||
sun/nio/cs/ext/MacThai.java \
|
||||
sun/nio/cs/ext/MacTurkish.java \
|
||||
sun/nio/cs/ext/MacUkraine.java \
|
||||
sun/nio/cs/ext/TIS_620.java
|
||||
|
||||
FILES_java = $(FILES_src) $(FILES_gen_extsbcs)
|
@ -60,12 +60,15 @@ endif # PLATFORM
|
||||
# this define is for the rule:
|
||||
CHARSETS_JAR = $(LIBDIR)/charsets.jar
|
||||
|
||||
# extsbcs
|
||||
FILES_genout_extsbcs = $(FILES_gen_extsbcs:%.java=$(GENSRCDIR)/%.java)
|
||||
|
||||
#
|
||||
# Rules
|
||||
#
|
||||
include $(BUILDDIR)/common/Classes.gmk
|
||||
|
||||
build: $(CHARSETS_JAR)
|
||||
build: $(FILES_genout_extsbcs) $(CHARSETS_JAR)
|
||||
|
||||
#
|
||||
# Extra rules to build character converters.
|
||||
@ -74,6 +77,8 @@ SERVICE_DESCRIPTION = java.nio.charset.spi.CharsetProvider
|
||||
SERVICE_DESCRIPTION_PATH = META-INF/services/$(SERVICE_DESCRIPTION)
|
||||
|
||||
GENCSDATASRC = $(BUILDDIR)/tools/CharsetMapping
|
||||
GENCSEXT = $(GENSRCDIR)/sun/nio/cs/ext
|
||||
|
||||
FILES_MAP = $(GENCSDATASRC)/sjis0213.map
|
||||
FILES_DAT = $(CLASSDESTDIR)/sun/nio/cs/ext/sjis0213.dat
|
||||
CHARSETMAPPING_JARFILE = $(BUILDTOOLJARDIR)/charsetmapping.jar
|
||||
@ -83,6 +88,15 @@ $(FILES_DAT): $(FILES_MAP)
|
||||
$(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) \
|
||||
$(FILES_MAP) $(FILES_DAT)
|
||||
|
||||
|
||||
$(FILES_genout_extsbcs): $(GENCSDATASRC)/SingleByte-X.java $(GENCSDATASRC)/extsbcs
|
||||
@$(prep-target)
|
||||
$(RM) -r $(GENCSEXT)
|
||||
$(MKDIR) -p $(GENCSEXT)
|
||||
$(BOOT_JAVA_CMD) -cp $(CHARSETMAPPING_JARFILE) build.tools.charsetmapping.GenerateSBCS \
|
||||
$(GENCSDATASRC) $(GENCSEXT) extsbcs
|
||||
|
||||
|
||||
$(CLASSDESTDIR)/$(SERVICE_DESCRIPTION_PATH): \
|
||||
$(SHARE_SRC)/classes/sun/nio/cs/ext/$(SERVICE_DESCRIPTION_PATH)
|
||||
$(install-file)
|
||||
|
@ -337,6 +337,7 @@ SUNWprivate_1.1 {
|
||||
Java_sun_java2d_x11_X11SurfaceData_initIDs;
|
||||
Java_sun_java2d_x11_X11SurfaceData_isDrawableValid;
|
||||
Java_sun_java2d_x11_X11SurfaceData_isDgaAvailable;
|
||||
Java_sun_java2d_x11_X11SurfaceData_isShmPMAvailable;
|
||||
Java_sun_java2d_x11_X11SurfaceData_initOps;
|
||||
Java_sun_java2d_x11_X11SurfaceData_initSurface;
|
||||
Java_sun_java2d_x11_X11SurfaceData_flushNativeSurface;
|
||||
|
1
jdk/make/tools/CharsetMapping/IBM037.c2b
Normal file
1
jdk/make/tools/CharsetMapping/IBM037.c2b
Normal file
@ -0,0 +1 @@
|
||||
0x15 U+0085
|
257
jdk/make/tools/CharsetMapping/IBM037.map
Normal file
257
jdk/make/tools/CharsetMapping/IBM037.map
Normal file
@ -0,0 +1,257 @@
|
||||
#Generated from IBM037.java
|
||||
0x00 U+0000
|
||||
0x01 U+0001
|
||||
0x02 U+0002
|
||||
0x03 U+0003
|
||||
0x04 U+009c
|
||||
0x05 U+0009
|
||||
0x06 U+0086
|
||||
0x07 U+007f
|
||||
0x08 U+0097
|
||||
0x09 U+008d
|
||||
0x0a U+008e
|
||||
0x0b U+000b
|
||||
0x0c U+000c
|
||||
0x0d U+000d
|
||||
0x0e U+000e
|
||||
0x0f U+000f
|
||||
0x10 U+0010
|
||||
0x11 U+0011
|
||||
0x12 U+0012
|
||||
0x13 U+0013
|
||||
0x14 U+009d
|
||||
0x15 U+000a
|
||||
0x16 U+0008
|
||||
0x17 U+0087
|
||||
0x18 U+0018
|
||||
0x19 U+0019
|
||||
0x1a U+0092
|
||||
0x1b U+008f
|
||||
0x1c U+001c
|
||||
0x1d U+001d
|
||||
0x1e U+001e
|
||||
0x1f U+001f
|
||||
0x20 U+0080
|
||||
0x21 U+0081
|
||||
0x22 U+0082
|
||||
0x23 U+0083
|
||||
0x24 U+0084
|
||||
0x25 U+000a
|
||||
0x26 U+0017
|
||||
0x27 U+001b
|
||||
0x28 U+0088
|
||||
0x29 U+0089
|
||||
0x2a U+008a
|
||||
0x2b U+008b
|
||||
0x2c U+008c
|
||||
0x2d U+0005
|
||||
0x2e U+0006
|
||||
0x2f U+0007
|
||||
0x30 U+0090
|
||||
0x31 U+0091
|
||||
0x32 U+0016
|
||||
0x33 U+0093
|
||||
0x34 U+0094
|
||||
0x35 U+0095
|
||||
0x36 U+0096
|
||||
0x37 U+0004
|
||||
0x38 U+0098
|
||||
0x39 U+0099
|
||||
0x3a U+009a
|
||||
0x3b U+009b
|
||||
0x3c U+0014
|
||||
0x3d U+0015
|
||||
0x3e U+009e
|
||||
0x3f U+001a
|
||||
0x40 U+0020
|
||||
0x41 U+00a0
|
||||
0x42 U+00e2
|
||||
0x43 U+00e4
|
||||
0x44 U+00e0
|
||||
0x45 U+00e1
|
||||
0x46 U+00e3
|
||||
0x47 U+00e5
|
||||
0x48 U+00e7
|
||||
0x49 U+00f1
|
||||
0x4a U+00a2
|
||||
0x4b U+002e
|
||||
0x4c U+003c
|
||||
0x4d U+0028
|
||||
0x4e U+002b
|
||||
0x4f U+007c
|
||||
0x50 U+0026
|
||||
0x51 U+00e9
|
||||
0x52 U+00ea
|
||||
0x53 U+00eb
|
||||
0x54 U+00e8
|
||||
0x55 U+00ed
|
||||
0x56 U+00ee
|
||||
0x57 U+00ef
|
||||
0x58 U+00ec
|
||||
0x59 U+00df
|
||||
0x5a U+0021
|
||||
0x5b U+0024
|
||||
0x5c U+002a
|
||||
0x5d U+0029
|
||||
0x5e U+003b
|
||||
0x5f U+00ac
|
||||
0x60 U+002d
|
||||
0x61 U+002f
|
||||
0x62 U+00c2
|
||||
0x63 U+00c4
|
||||
0x64 U+00c0
|
||||
0x65 U+00c1
|
||||
0x66 U+00c3
|
||||
0x67 U+00c5
|
||||
0x68 U+00c7
|
||||
0x69 U+00d1
|
||||
0x6a U+00a6
|
||||
0x6b U+002c
|
||||
0x6c U+0025
|
||||
0x6d U+005f
|
||||
0x6e U+003e
|
||||
0x6f U+003f
|
||||
0x70 U+00f8
|
||||
0x71 U+00c9
|
||||
0x72 U+00ca
|
||||
0x73 U+00cb
|
||||
0x74 U+00c8
|
||||
0x75 U+00cd
|
||||
0x76 U+00ce
|
||||
0x77 U+00cf
|
||||
0x78 U+00cc
|
||||
0x79 U+0060
|
||||
0x7a U+003a
|
||||
0x7b U+0023
|
||||
0x7c U+0040
|
||||
0x7d U+0027
|
||||
0x7e U+003d
|
||||
0x7f U+0022
|
||||
0x80 U+00d8
|
||||
0x81 U+0061
|
||||
0x82 U+0062
|
||||
0x83 U+0063
|
||||
0x84 U+0064
|
||||
0x85 U+0065
|
||||
0x86 U+0066
|
||||
0x87 U+0067
|
||||
0x88 U+0068
|
||||
0x89 U+0069
|
||||
0x8a U+00ab
|
||||
0x8b U+00bb
|
||||
0x8c U+00f0
|
||||
0x8d U+00fd
|
||||
0x8e U+00fe
|
||||
0x8f U+00b1
|
||||
0x90 U+00b0
|
||||
0x91 U+006a
|
||||
0x92 U+006b
|
||||
0x93 U+006c
|
||||
0x94 U+006d
|
||||
0x95 U+006e
|
||||
0x96 U+006f
|
||||
0x97 U+0070
|
||||
0x98 U+0071
|
||||
0x99 U+0072
|
||||
0x9a U+00aa
|
||||
0x9b U+00ba
|
||||
0x9c U+00e6
|
||||
0x9d U+00b8
|
||||
0x9e U+00c6
|
||||
0x9f U+00a4
|
||||
0xa0 U+00b5
|
||||
0xa1 U+007e
|
||||
0xa2 U+0073
|
||||
0xa3 U+0074
|
||||
0xa4 U+0075
|
||||
0xa5 U+0076
|
||||
0xa6 U+0077
|
||||
0xa7 U+0078
|
||||
0xa8 U+0079
|
||||
0xa9 U+007a
|
||||
0xaa U+00a1
|
||||
0xab U+00bf
|
||||
0xac U+00d0
|
||||
0xad U+00dd
|
||||
0xae U+00de
|
||||
0xaf U+00ae
|
||||
0xb0 U+005e
|
||||
0xb1 U+00a3
|
||||
0xb2 U+00a5
|
||||
0xb3 U+00b7
|
||||
0xb4 U+00a9
|
||||
0xb5 U+00a7
|
||||
0xb6 U+00b6
|
||||
0xb7 U+00bc
|
||||
0xb8 U+00bd
|
||||
0xb9 U+00be
|
||||
0xba U+005b
|
||||
0xbb U+005d
|
||||
0xbc U+00af
|
||||
0xbd U+00a8
|
||||
0xbe U+00b4
|
||||
0xbf U+00d7
|
||||
0xc0 U+007b
|
||||
0xc1 U+0041
|
||||
0xc2 U+0042
|
||||
0xc3 U+0043
|
||||
0xc4 U+0044
|
||||
0xc5 U+0045
|
||||
0xc6 U+0046
|
||||
0xc7 U+0047
|
||||
0xc8 U+0048
|
||||
0xc9 U+0049
|
||||
0xca U+00ad
|
||||
0xcb U+00f4
|
||||
0xcc U+00f6
|
||||
0xcd U+00f2
|
||||
0xce U+00f3
|
||||
0xcf U+00f5
|
||||
0xd0 U+007d
|
||||
0xd1 U+004a
|
||||
0xd2 U+004b
|
||||
0xd3 U+004c
|
||||
0xd4 U+004d
|
||||
0xd5 U+004e
|
||||
0xd6 U+004f
|
||||
0xd7 U+0050
|
||||
0xd8 U+0051
|
||||
0xd9 U+0052
|
||||
0xda U+00b9
|
||||
0xdb U+00fb
|
||||
0xdc U+00fc
|
||||
0xdd U+00f9
|
||||
0xde U+00fa
|
||||
0xdf U+00ff
|
||||
0xe0 U+005c
|
||||
0xe1 U+00f7
|
||||
0xe2 U+0053
|
||||
0xe3 U+0054
|
||||
0xe4 U+0055
|
||||
0xe5 U+0056
|
||||
0xe6 U+0057
|
||||
0xe7 U+0058
|
||||
0xe8 U+0059
|
||||
0xe9 U+005a
|
||||
0xea U+00b2
|
||||
0xeb U+00d4
|
||||
0xec U+00d6
|
||||
0xed U+00d2
|
||||
0xee U+00d3
|
||||
0xef U+00d5
|
||||
0xf0 U+0030
|
||||
0xf1 U+0031
|
||||
0xf2 U+0032
|
||||
0xf3 U+0033
|
||||
0xf4 U+0034
|
||||
0xf5 U+0035
|
||||
0xf6 U+0036
|
||||
0xf7 U+0037
|
||||
0xf8 U+0038
|
||||
0xf9 U+0039
|
||||
0xfa U+00b3
|
||||
0xfb U+00db
|
||||
0xfc U+00dc
|
||||
0xfd U+00d9
|
||||
0xfe U+00da
|
||||
0xff U+009f
|
1
jdk/make/tools/CharsetMapping/IBM037.nr
Normal file
1
jdk/make/tools/CharsetMapping/IBM037.nr
Normal file
@ -0,0 +1 @@
|
||||
0x25 U+000a
|
257
jdk/make/tools/CharsetMapping/IBM1006.map
Normal file
257
jdk/make/tools/CharsetMapping/IBM1006.map
Normal file
@ -0,0 +1,257 @@
|
||||
#Generated from IBM1006.java
|
||||
0x00 U+0000
|
||||
0x01 U+0001
|
||||
0x02 U+0002
|
||||
0x03 U+0003
|
||||
0x04 U+0004
|
||||
0x05 U+0005
|
||||
0x06 U+0006
|
||||
0x07 U+0007
|
||||
0x08 U+0008
|
||||
0x09 U+0009
|
||||
0x0a U+000a
|
||||
0x0b U+000b
|
||||
0x0c U+000c
|
||||
0x0d U+000d
|
||||
0x0e U+000e
|
||||
0x0f U+000f
|
||||
0x10 U+0010
|
||||
0x11 U+0011
|
||||
0x12 U+0012
|
||||
0x13 U+0013
|
||||
0x14 U+0014
|
||||
0x15 U+0015
|
||||
0x16 U+0016
|
||||
0x17 U+0017
|
||||
0x18 U+0018
|
||||
0x19 U+0019
|
||||
0x1a U+001a
|
||||
0x1b U+001b
|
||||
0x1c U+001c
|
||||
0x1d U+001d
|
||||
0x1e U+001e
|
||||
0x1f U+001f
|
||||
0x20 U+0020
|
||||
0x21 U+0021
|
||||
0x22 U+0022
|
||||
0x23 U+0023
|
||||
0x24 U+0024
|
||||
0x25 U+0025
|
||||
0x26 U+0026
|
||||
0x27 U+0027
|
||||
0x28 U+0028
|
||||
0x29 U+0029
|
||||
0x2a U+002a
|
||||
0x2b U+002b
|
||||
0x2c U+002c
|
||||
0x2d U+002d
|
||||
0x2e U+002e
|
||||
0x2f U+002f
|
||||
0x30 U+0030
|
||||
0x31 U+0031
|
||||
0x32 U+0032
|
||||
0x33 U+0033
|
||||
0x34 U+0034
|
||||
0x35 U+0035
|
||||
0x36 U+0036
|
||||
0x37 U+0037
|
||||
0x38 U+0038
|
||||
0x39 U+0039
|
||||
0x3a U+003a
|
||||
0x3b U+003b
|
||||
0x3c U+003c
|
||||
0x3d U+003d
|
||||
0x3e U+003e
|
||||
0x3f U+003f
|
||||
0x40 U+0040
|
||||
0x41 U+0041
|
||||
0x42 U+0042
|
||||
0x43 U+0043
|
||||
0x44 U+0044
|
||||
0x45 U+0045
|
||||
0x46 U+0046
|
||||
0x47 U+0047
|
||||
0x48 U+0048
|
||||
0x49 U+0049
|
||||
0x4a U+004a
|
||||
0x4b U+004b
|
||||
0x4c U+004c
|
||||
0x4d U+004d
|
||||
0x4e U+004e
|
||||
0x4f U+004f
|
||||
0x50 U+0050
|
||||
0x51 U+0051
|
||||
0x52 U+0052
|
||||
0x53 U+0053
|
||||
0x54 U+0054
|
||||
0x55 U+0055
|
||||
0x56 U+0056
|
||||
0x57 U+0057
|
||||
0x58 U+0058
|
||||
0x59 U+0059
|
||||
0x5a U+005a
|
||||
0x5b U+005b
|
||||
0x5c U+005c
|
||||
0x5d U+005d
|
||||
0x5e U+005e
|
||||
0x5f U+005f
|
||||
0x60 U+0060
|
||||
0x61 U+0061
|
||||
0x62 U+0062
|
||||
0x63 U+0063
|
||||
0x64 U+0064
|
||||
0x65 U+0065
|
||||
0x66 U+0066
|
||||
0x67 U+0067
|
||||
0x68 U+0068
|
||||
0x69 U+0069
|
||||
0x6a U+006a
|
||||
0x6b U+006b
|
||||
0x6c U+006c
|
||||
0x6d U+006d
|
||||
0x6e U+006e
|
||||
0x6f U+006f
|
||||
0x70 U+0070
|
||||
0x71 U+0071
|
||||
0x72 U+0072
|
||||
0x73 U+0073
|
||||
0x74 U+0074
|
||||
0x75 U+0075
|
||||
0x76 U+0076
|
||||
0x77 U+0077
|
||||
0x78 U+0078
|
||||
0x79 U+0079
|
||||
0x7a U+007a
|
||||
0x7b U+007b
|
||||
0x7c U+007c
|
||||
0x7d U+007d
|
||||
0x7e U+007e
|
||||
0x7f U+007f
|
||||
0x80 U+0080
|
||||
0x81 U+0081
|
||||
0x82 U+0082
|
||||
0x83 U+0083
|
||||
0x84 U+0084
|
||||
0x85 U+0085
|
||||
0x86 U+0086
|
||||
0x87 U+0087
|
||||
0x88 U+0088
|
||||
0x89 U+0089
|
||||
0x8a U+008a
|
||||
0x8b U+008b
|
||||
0x8c U+008c
|
||||
0x8d U+008d
|
||||
0x8e U+008e
|
||||
0x8f U+008f
|
||||
0x90 U+0090
|
||||
0x91 U+0091
|
||||
0x92 U+0092
|
||||
0x93 U+0093
|
||||
0x94 U+0094
|
||||
0x95 U+0095
|
||||
0x96 U+0096
|
||||
0x97 U+0097
|
||||
0x98 U+0098
|
||||
0x99 U+0099
|
||||
0x9a U+009a
|
||||
0x9b U+009b
|
||||
0x9c U+009c
|
||||
0x9d U+009d
|
||||
0x9e U+009e
|
||||
0x9f U+009f
|
||||
0xa0 U+00a0
|
||||
0xa1 U+06f0
|
||||
0xa2 U+06f1
|
||||
0xa3 U+06f2
|
||||
0xa4 U+06f3
|
||||
0xa5 U+06f4
|
||||
0xa6 U+06f5
|
||||
0xa7 U+06f6
|
||||
0xa8 U+06f7
|
||||
0xa9 U+06f8
|
||||
0xaa U+06f9
|
||||
0xab U+060c
|
||||
0xac U+061b
|
||||
0xad U+00ad
|
||||
0xae U+061f
|
||||
0xaf U+fe81
|
||||
0xb0 U+fe8d
|
||||
0xb1 U+fe8e
|
||||
0xb2 U+f8fb
|
||||
0xb3 U+fe8f
|
||||
0xb4 U+fe91
|
||||
0xb5 U+fb56
|
||||
0xb6 U+fb58
|
||||
0xb7 U+fe93
|
||||
0xb8 U+fe95
|
||||
0xb9 U+fe97
|
||||
0xba U+fb66
|
||||
0xbb U+fb68
|
||||
0xbc U+fe99
|
||||
0xbd U+fe9b
|
||||
0xbe U+fe9d
|
||||
0xbf U+fe9f
|
||||
0xc0 U+fb7a
|
||||
0xc1 U+fb7c
|
||||
0xc2 U+fea1
|
||||
0xc3 U+fea3
|
||||
0xc4 U+fea5
|
||||
0xc5 U+fea7
|
||||
0xc6 U+fea9
|
||||
0xc7 U+fb88
|
||||
0xc8 U+feab
|
||||
0xc9 U+fead
|
||||
0xca U+fb8c
|
||||
0xcb U+feaf
|
||||
0xcc U+fb8a
|
||||
0xcd U+feb1
|
||||
0xce U+feb3
|
||||
0xcf U+feb5
|
||||
0xd0 U+feb7
|
||||
0xd1 U+feb9
|
||||
0xd2 U+febb
|
||||
0xd3 U+febd
|
||||
0xd4 U+febf
|
||||
0xd5 U+fec3
|
||||
0xd6 U+fec7
|
||||
0xd7 U+fec9
|
||||
0xd8 U+feca
|
||||
0xd9 U+fecb
|
||||
0xda U+fecc
|
||||
0xdb U+fecd
|
||||
0xdc U+fece
|
||||
0xdd U+fecf
|
||||
0xde U+fed0
|
||||
0xdf U+fed1
|
||||
0xe0 U+fed3
|
||||
0xe1 U+fed5
|
||||
0xe2 U+fed7
|
||||
0xe3 U+fb8e
|
||||
0xe4 U+fedb
|
||||
0xe5 U+fb92
|
||||
0xe6 U+fb94
|
||||
0xe7 U+fedd
|
||||
0xe8 U+fedf
|
||||
0xe9 U+fee0
|
||||
0xea U+fee1
|
||||
0xeb U+fee3
|
||||
0xec U+fb9e
|
||||
0xed U+fee5
|
||||
0xee U+fee7
|
||||
0xef U+fe85
|
||||
0xf0 U+feed
|
||||
0xf1 U+fba6
|
||||
0xf2 U+fba8
|
||||
0xf3 U+fba9
|
||||
0xf4 U+fbaa
|
||||
0xf5 U+fe80
|
||||
0xf6 U+fe89
|
||||
0xf7 U+fe8a
|
||||
0xf8 U+fe8b
|
||||
0xf9 U+fbfc
|
||||
0xfa U+fbfd
|
||||
0xfb U+fbfe
|
||||
0xfc U+fbb0
|
||||
0xfd U+fbae
|
||||
0xfe U+fe7c
|
||||
0xff U+fe7d
|
1
jdk/make/tools/CharsetMapping/IBM1025.c2b
Normal file
1
jdk/make/tools/CharsetMapping/IBM1025.c2b
Normal file
@ -0,0 +1 @@
|
||||
0x15 U+0085
|
257
jdk/make/tools/CharsetMapping/IBM1025.map
Normal file
257
jdk/make/tools/CharsetMapping/IBM1025.map
Normal file
@ -0,0 +1,257 @@
|
||||
#Generated from IBM1025.java
|
||||
0x00 U+0000
|
||||
0x01 U+0001
|
||||
0x02 U+0002
|
||||
0x03 U+0003
|
||||
0x04 U+009c
|
||||
0x05 U+0009
|
||||
0x06 U+0086
|
||||
0x07 U+007f
|
||||
0x08 U+0097
|
||||
0x09 U+008d
|
||||
0x0a U+008e
|
||||
0x0b U+000b
|
||||
0x0c U+000c
|
||||
0x0d U+000d
|
||||
0x0e U+000e
|
||||
0x0f U+000f
|
||||
0x10 U+0010
|
||||
0x11 U+0011
|
||||
0x12 U+0012
|
||||
0x13 U+0013
|
||||
0x14 U+009d
|
||||
0x15 U+000a
|
||||
0x16 U+0008
|
||||
0x17 U+0087
|
||||
0x18 U+0018
|
||||
0x19 U+0019
|
||||
0x1a U+0092
|
||||
0x1b U+008f
|
||||
0x1c U+001c
|
||||
0x1d U+001d
|
||||
0x1e U+001e
|
||||
0x1f U+001f
|
||||
0x20 U+0080
|
||||
0x21 U+0081
|
||||
0x22 U+0082
|
||||
0x23 U+0083
|
||||
0x24 U+0084
|
||||
0x25 U+000a
|
||||
0x26 U+0017
|
||||
0x27 U+001b
|
||||
0x28 U+0088
|
||||
0x29 U+0089
|
||||
0x2a U+008a
|
||||
0x2b U+008b
|
||||
0x2c U+008c
|
||||
0x2d U+0005
|
||||
0x2e U+0006
|
||||
0x2f U+0007
|
||||
0x30 U+0090
|
||||
0x31 U+0091
|
||||
0x32 U+0016
|
||||
0x33 U+0093
|
||||
0x34 U+0094
|
||||
0x35 U+0095
|
||||
0x36 U+0096
|
||||
0x37 U+0004
|
||||
0x38 U+0098
|
||||
0x39 U+0099
|
||||
0x3a U+009a
|
||||
0x3b U+009b
|
||||
0x3c U+0014
|
||||
0x3d U+0015
|
||||
0x3e U+009e
|
||||
0x3f U+001a
|
||||
0x40 U+0020
|
||||
0x41 U+00a0
|
||||
0x42 U+0452
|
||||
0x43 U+0453
|
||||
0x44 U+0451
|
||||
0x45 U+0454
|
||||
0x46 U+0455
|
||||
0x47 U+0456
|
||||
0x48 U+0457
|
||||
0x49 U+0458
|
||||
0x4a U+005b
|
||||
0x4b U+002e
|
||||
0x4c U+003c
|
||||
0x4d U+0028
|
||||
0x4e U+002b
|
||||
0x4f U+0021
|
||||
0x50 U+0026
|
||||
0x51 U+0459
|
||||
0x52 U+045a
|
||||
0x53 U+045b
|
||||
0x54 U+045c
|
||||
0x55 U+045e
|
||||
0x56 U+045f
|
||||
0x57 U+042a
|
||||
0x58 U+2116
|
||||
0x59 U+0402
|
||||
0x5a U+005d
|
||||
0x5b U+0024
|
||||
0x5c U+002a
|
||||
0x5d U+0029
|
||||
0x5e U+003b
|
||||
0x5f U+005e
|
||||
0x60 U+002d
|
||||
0x61 U+002f
|
||||
0x62 U+0403
|
||||
0x63 U+0401
|
||||
0x64 U+0404
|
||||
0x65 U+0405
|
||||
0x66 U+0406
|
||||
0x67 U+0407
|
||||
0x68 U+0408
|
||||
0x69 U+0409
|
||||
0x6a U+007c
|
||||
0x6b U+002c
|
||||
0x6c U+0025
|
||||
0x6d U+005f
|
||||
0x6e U+003e
|
||||
0x6f U+003f
|
||||
0x70 U+040a
|
||||
0x71 U+040b
|
||||
0x72 U+040c
|
||||
0x73 U+00ad
|
||||
0x74 U+040e
|
||||
0x75 U+040f
|
||||
0x76 U+044e
|
||||
0x77 U+0430
|
||||
0x78 U+0431
|
||||
0x79 U+0060
|
||||
0x7a U+003a
|
||||
0x7b U+0023
|
||||
0x7c U+0040
|
||||
0x7d U+0027
|
||||
0x7e U+003d
|
||||
0x7f U+0022
|
||||
0x80 U+0446
|
||||
0x81 U+0061
|
||||
0x82 U+0062
|
||||
0x83 U+0063
|
||||
0x84 U+0064
|
||||
0x85 U+0065
|
||||
0x86 U+0066
|
||||
0x87 U+0067
|
||||
0x88 U+0068
|
||||
0x89 U+0069
|
||||
0x8a U+0434
|
||||
0x8b U+0435
|
||||
0x8c U+0444
|
||||
0x8d U+0433
|
||||
0x8e U+0445
|
||||
0x8f U+0438
|
||||
0x90 U+0439
|
||||
0x91 U+006a
|
||||
0x92 U+006b
|
||||
0x93 U+006c
|
||||
0x94 U+006d
|
||||
0x95 U+006e
|
||||
0x96 U+006f
|
||||
0x97 U+0070
|
||||
0x98 U+0071
|
||||
0x99 U+0072
|
||||
0x9a U+043a
|
||||
0x9b U+043b
|
||||
0x9c U+043c
|
||||
0x9d U+043d
|
||||
0x9e U+043e
|
||||
0x9f U+043f
|
||||
0xa0 U+044f
|
||||
0xa1 U+007e
|
||||
0xa2 U+0073
|
||||
0xa3 U+0074
|
||||
0xa4 U+0075
|
||||
0xa5 U+0076
|
||||
0xa6 U+0077
|
||||
0xa7 U+0078
|
||||
0xa8 U+0079
|
||||
0xa9 U+007a
|
||||
0xaa U+0440
|
||||
0xab U+0441
|
||||
0xac U+0442
|
||||
0xad U+0443
|
||||
0xae U+0436
|
||||
0xaf U+0432
|
||||
0xb0 U+044c
|
||||
0xb1 U+044b
|
||||
0xb2 U+0437
|
||||
0xb3 U+0448
|
||||
0xb4 U+044d
|
||||
0xb5 U+0449
|
||||
0xb6 U+0447
|
||||
0xb7 U+044a
|
||||
0xb8 U+042e
|
||||
0xb9 U+0410
|
||||
0xba U+0411
|
||||
0xbb U+0426
|
||||
0xbc U+0414
|
||||
0xbd U+0415
|
||||
0xbe U+0424
|
||||
0xbf U+0413
|
||||
0xc0 U+007b
|
||||
0xc1 U+0041
|
||||
0xc2 U+0042
|
||||
0xc3 U+0043
|
||||
0xc4 U+0044
|
||||
0xc5 U+0045
|
||||
0xc6 U+0046
|
||||
0xc7 U+0047
|
||||
0xc8 U+0048
|
||||
0xc9 U+0049
|
||||
0xca U+0425
|
||||
0xcb U+0418
|
||||
0xcc U+0419
|
||||
0xcd U+041a
|
||||
0xce U+041b
|
||||
0xcf U+041c
|
||||
0xd0 U+007d
|
||||
0xd1 U+004a
|
||||
0xd2 U+004b
|
||||
0xd3 U+004c
|
||||
0xd4 U+004d
|
||||
0xd5 U+004e
|
||||
0xd6 U+004f
|
||||
0xd7 U+0050
|
||||
0xd8 U+0051
|
||||
0xd9 U+0052
|
||||
0xda U+041d
|
||||
0xdb U+041e
|
||||
0xdc U+041f
|
||||
0xdd U+042f
|
||||
0xde U+0420
|
||||
0xdf U+0421
|
||||
0xe0 U+005c
|
||||
0xe1 U+00a7
|
||||
0xe2 U+0053
|
||||
0xe3 U+0054
|
||||
0xe4 U+0055
|
||||
0xe5 U+0056
|
||||
0xe6 U+0057
|
||||
0xe7 U+0058
|
||||
0xe8 U+0059
|
||||
0xe9 U+005a
|
||||
0xea U+0422
|
||||
0xeb U+0423
|
||||
0xec U+0416
|
||||
0xed U+0412
|
||||
0xee U+042c
|
||||
0xef U+042b
|
||||
0xf0 U+0030
|
||||
0xf1 U+0031
|
||||
0xf2 U+0032
|
||||
0xf3 U+0033
|
||||
0xf4 U+0034
|
||||
0xf5 U+0035
|
||||
0xf6 U+0036
|
||||
0xf7 U+0037
|
||||
0xf8 U+0038
|
||||
0xf9 U+0039
|
||||
0xfa U+0417
|
||||
0xfb U+0428
|
||||
0xfc U+042d
|
||||
0xfd U+0429
|
||||
0xfe U+0427
|
||||
0xff U+009f
|
1
jdk/make/tools/CharsetMapping/IBM1025.nr
Normal file
1
jdk/make/tools/CharsetMapping/IBM1025.nr
Normal file
@ -0,0 +1 @@
|
||||
0x25 U+000a
|
1
jdk/make/tools/CharsetMapping/IBM1026.c2b
Normal file
1
jdk/make/tools/CharsetMapping/IBM1026.c2b
Normal file
@ -0,0 +1 @@
|
||||
0x15 U+0085
|
257
jdk/make/tools/CharsetMapping/IBM1026.map
Normal file
257
jdk/make/tools/CharsetMapping/IBM1026.map
Normal file
@ -0,0 +1,257 @@
|
||||
#Generated from IBM1026.java
|
||||
0x00 U+0000
|
||||
0x01 U+0001
|
||||
0x02 U+0002
|
||||
0x03 U+0003
|
||||
0x04 U+009c
|
||||
0x05 U+0009
|
||||
0x06 U+0086
|
||||
0x07 U+007f
|
||||
0x08 U+0097
|
||||
0x09 U+008d
|
||||
0x0a U+008e
|
||||
0x0b U+000b
|
||||
0x0c U+000c
|
||||
0x0d U+000d
|
||||
0x0e U+000e
|
||||
0x0f U+000f
|
||||
0x10 U+0010
|
||||
0x11 U+0011
|
||||
0x12 U+0012
|
||||
0x13 U+0013
|
||||
0x14 U+009d
|
||||
0x15 U+000a
|
||||
0x16 U+0008
|
||||
0x17 U+0087
|
||||
0x18 U+0018
|
||||
0x19 U+0019
|
||||
0x1a U+0092
|
||||
0x1b U+008f
|
||||
0x1c U+001c
|
||||
0x1d U+001d
|
||||
0x1e U+001e
|
||||
0x1f U+001f
|
||||
0x20 U+0080
|
||||
0x21 U+0081
|
||||
0x22 U+0082
|
||||
0x23 U+0083
|
||||
0x24 U+0084
|
||||
0x25 U+000a
|
||||
0x26 U+0017
|
||||
0x27 U+001b
|
||||
0x28 U+0088
|
||||
0x29 U+0089
|
||||
0x2a U+008a
|
||||
0x2b U+008b
|
||||
0x2c U+008c
|
||||
0x2d U+0005
|
||||
0x2e U+0006
|
||||
0x2f U+0007
|
||||
0x30 U+0090
|
||||
0x31 U+0091
|
||||
0x32 U+0016
|
||||
0x33 U+0093
|
||||
0x34 U+0094
|
||||
0x35 U+0095
|
||||
0x36 U+0096
|
||||
0x37 U+0004
|
||||
0x38 U+0098
|
||||
0x39 U+0099
|
||||
0x3a U+009a
|
||||
0x3b U+009b
|
||||
0x3c U+0014
|
||||
0x3d U+0015
|
||||
0x3e U+009e
|
||||
0x3f U+001a
|
||||
0x40 U+0020
|
||||
0x41 U+00a0
|
||||
0x42 U+00e2
|
||||
0x43 U+00e4
|
||||
0x44 U+00e0
|
||||
0x45 U+00e1
|
||||
0x46 U+00e3
|
||||
0x47 U+00e5
|
||||
0x48 U+007b
|
||||
0x49 U+00f1
|
||||
0x4a U+00c7
|
||||
0x4b U+002e
|
||||
0x4c U+003c
|
||||
0x4d U+0028
|
||||
0x4e U+002b
|
||||
0x4f U+0021
|
||||
0x50 U+0026
|
||||
0x51 U+00e9
|
||||
0x52 U+00ea
|
||||
0x53 U+00eb
|
||||
0x54 U+00e8
|
||||
0x55 U+00ed
|
||||
0x56 U+00ee
|
||||
0x57 U+00ef
|
||||
0x58 U+00ec
|
||||
0x59 U+00df
|
||||
0x5a U+011e
|
||||
0x5b U+0130
|
||||
0x5c U+002a
|
||||
0x5d U+0029
|
||||
0x5e U+003b
|
||||
0x5f U+005e
|
||||
0x60 U+002d
|
||||
0x61 U+002f
|
||||
0x62 U+00c2
|
||||
0x63 U+00c4
|
||||
0x64 U+00c0
|
||||
0x65 U+00c1
|
||||
0x66 U+00c3
|
||||
0x67 U+00c5
|
||||
0x68 U+005b
|
||||
0x69 U+00d1
|
||||
0x6a U+015f
|
||||
0x6b U+002c
|
||||
0x6c U+0025
|
||||
0x6d U+005f
|
||||
0x6e U+003e
|
||||
0x6f U+003f
|
||||
0x70 U+00f8
|
||||
0x71 U+00c9
|
||||
0x72 U+00ca
|
||||
0x73 U+00cb
|
||||
0x74 U+00c8
|
||||
0x75 U+00cd
|
||||
0x76 U+00ce
|
||||
0x77 U+00cf
|
||||
0x78 U+00cc
|
||||
0x79 U+0131
|
||||
0x7a U+003a
|
||||
0x7b U+00d6
|
||||
0x7c U+015e
|
||||
0x7d U+0027
|
||||
0x7e U+003d
|
||||
0x7f U+00dc
|
||||
0x80 U+00d8
|
||||
0x81 U+0061
|
||||
0x82 U+0062
|
||||
0x83 U+0063
|
||||
0x84 U+0064
|
||||
0x85 U+0065
|
||||
0x86 U+0066
|
||||
0x87 U+0067
|
||||
0x88 U+0068
|
||||
0x89 U+0069
|
||||
0x8a U+00ab
|
||||
0x8b U+00bb
|
||||
0x8c U+007d
|
||||
0x8d U+0060
|
||||
0x8e U+00a6
|
||||
0x8f U+00b1
|
||||
0x90 U+00b0
|
||||
0x91 U+006a
|
||||
0x92 U+006b
|
||||
0x93 U+006c
|
||||
0x94 U+006d
|
||||
0x95 U+006e
|
||||
0x96 U+006f
|
||||
0x97 U+0070
|
||||
0x98 U+0071
|
||||
0x99 U+0072
|
||||
0x9a U+00aa
|
||||
0x9b U+00ba
|
||||
0x9c U+00e6
|
||||
0x9d U+00b8
|
||||
0x9e U+00c6
|
||||
0x9f U+00a4
|
||||
0xa0 U+00b5
|
||||
0xa1 U+00f6
|
||||
0xa2 U+0073
|
||||
0xa3 U+0074
|
||||
0xa4 U+0075
|
||||
0xa5 U+0076
|
||||
0xa6 U+0077
|
||||
0xa7 U+0078
|
||||
0xa8 U+0079
|
||||
0xa9 U+007a
|
||||
0xaa U+00a1
|
||||
0xab U+00bf
|
||||
0xac U+005d
|
||||
0xad U+0024
|
||||
0xae U+0040
|
||||
0xaf U+00ae
|
||||
0xb0 U+00a2
|
||||
0xb1 U+00a3
|
||||
0xb2 U+00a5
|
||||
0xb3 U+00b7
|
||||
0xb4 U+00a9
|
||||
0xb5 U+00a7
|
||||
0xb6 U+00b6
|
||||
0xb7 U+00bc
|
||||
0xb8 U+00bd
|
||||
0xb9 U+00be
|
||||
0xba U+00ac
|
||||
0xbb U+007c
|
||||
0xbc U+00af
|
||||
0xbd U+00a8
|
||||
0xbe U+00b4
|
||||
0xbf U+00d7
|
||||
0xc0 U+00e7
|
||||
0xc1 U+0041
|
||||
0xc2 U+0042
|
||||
0xc3 U+0043
|
||||
0xc4 U+0044
|
||||
0xc5 U+0045
|
||||
0xc6 U+0046
|
||||
0xc7 U+0047
|
||||
0xc8 U+0048
|
||||
0xc9 U+0049
|
||||
0xca U+00ad
|
||||
0xcb U+00f4
|
||||
0xcc U+007e
|
||||
0xcd U+00f2
|
||||
0xce U+00f3
|
||||
0xcf U+00f5
|
||||
0xd0 U+011f
|
||||
0xd1 U+004a
|
||||
0xd2 U+004b
|
||||
0xd3 U+004c
|
||||
0xd4 U+004d
|
||||
0xd5 U+004e
|
||||
0xd6 U+004f
|
||||
0xd7 U+0050
|
||||
0xd8 U+0051
|
||||
0xd9 U+0052
|
||||
0xda U+00b9
|
||||
0xdb U+00fb
|
||||
0xdc U+005c
|
||||
0xdd U+00f9
|
||||
0xde U+00fa
|
||||
0xdf U+00ff
|
||||
0xe0 U+00fc
|
||||
0xe1 U+00f7
|
||||
0xe2 U+0053
|
||||
0xe3 U+0054
|
||||
0xe4 U+0055
|
||||
0xe5 U+0056
|
||||
0xe6 U+0057
|
||||
0xe7 U+0058
|
||||
0xe8 U+0059
|
||||
0xe9 U+005a
|
||||
0xea U+00b2
|
||||
0xeb U+00d4
|
||||
0xec U+0023
|
||||
0xed U+00d2
|
||||
0xee U+00d3
|
||||
0xef U+00d5
|
||||
0xf0 U+0030
|
||||
0xf1 U+0031
|
||||
0xf2 U+0032
|
||||
0xf3 U+0033
|
||||
0xf4 U+0034
|
||||
0xf5 U+0035
|
||||
0xf6 U+0036
|
||||
0xf7 U+0037
|
||||
0xf8 U+0038
|
||||
0xf9 U+0039
|
||||
0xfa U+00b3
|
||||
0xfb U+00db
|
||||
0xfc U+0022
|
||||
0xfd U+00d9
|
||||
0xfe U+00da
|
||||
0xff U+009f
|
1
jdk/make/tools/CharsetMapping/IBM1026.nr
Normal file
1
jdk/make/tools/CharsetMapping/IBM1026.nr
Normal file
@ -0,0 +1 @@
|
||||
0x25 U+000a
|
257
jdk/make/tools/CharsetMapping/IBM1046.map
Normal file
257
jdk/make/tools/CharsetMapping/IBM1046.map
Normal file
@ -0,0 +1,257 @@
|
||||
#Generated from IBM1046.java
|
||||
0x00 U+0000
|
||||
0x01 U+0001
|
||||
0x02 U+0002
|
||||
0x03 U+0003
|
||||
0x04 U+0004
|
||||
0x05 U+0005
|
||||
0x06 U+0006
|
||||
0x07 U+0007
|
||||
0x08 U+0008
|
||||
0x09 U+0009
|
||||
0x0a U+000a
|
||||
0x0b U+000b
|
||||
0x0c U+000c
|
||||
0x0d U+000d
|
||||
0x0e U+000e
|
||||
0x0f U+000f
|
||||
0x10 U+0010
|
||||
0x11 U+0011
|
||||
0x12 U+0012
|
||||
0x13 U+0013
|
||||
0x14 U+0014
|
||||
0x15 U+0015
|
||||
0x16 U+0016
|
||||
0x17 U+0017
|
||||
0x18 U+0018
|
||||
0x19 U+0019
|
||||
0x1a U+001a
|
||||
0x1b U+001b
|
||||
0x1c U+001c
|
||||
0x1d U+001d
|
||||
0x1e U+001e
|
||||
0x1f U+001f
|
||||
0x20 U+0020
|
||||
0x21 U+0021
|
||||
0x22 U+0022
|
||||
0x23 U+0023
|
||||
0x24 U+0024
|
||||
0x25 U+0025
|
||||
0x26 U+0026
|
||||
0x27 U+0027
|
||||
0x28 U+0028
|
||||
0x29 U+0029
|
||||
0x2a U+002a
|
||||
0x2b U+002b
|
||||
0x2c U+002c
|
||||
0x2d U+002d
|
||||
0x2e U+002e
|
||||
0x2f U+002f
|
||||
0x30 U+0030
|
||||
0x31 U+0031
|
||||
0x32 U+0032
|
||||
0x33 U+0033
|
||||
0x34 U+0034
|
||||
0x35 U+0035
|
||||
0x36 U+0036
|
||||
0x37 U+0037
|
||||
0x38 U+0038
|
||||
0x39 U+0039
|
||||
0x3a U+003a
|
||||
0x3b U+003b
|
||||
0x3c U+003c
|
||||
0x3d U+003d
|
||||
0x3e U+003e
|
||||
0x3f U+003f
|
||||
0x40 U+0040
|
||||
0x41 U+0041
|
||||
0x42 U+0042
|
||||
0x43 U+0043
|
||||
0x44 U+0044
|
||||
0x45 U+0045
|
||||
0x46 U+0046
|
||||
0x47 U+0047
|
||||
0x48 U+0048
|
||||
0x49 U+0049
|
||||
0x4a U+004a
|
||||
0x4b U+004b
|
||||
0x4c U+004c
|
||||
0x4d U+004d
|
||||
0x4e U+004e
|
||||
0x4f U+004f
|
||||
0x50 U+0050
|
||||
0x51 U+0051
|
||||
0x52 U+0052
|
||||
0x53 U+0053
|
||||
0x54 U+0054
|
||||
0x55 U+0055
|
||||
0x56 U+0056
|
||||
0x57 U+0057
|
||||
0x58 U+0058
|
||||
0x59 U+0059
|
||||
0x5a U+005a
|
||||
0x5b U+005b
|
||||
0x5c U+005c
|
||||
0x5d U+005d
|
||||
0x5e U+005e
|
||||
0x5f U+005f
|
||||
0x60 U+0060
|
||||
0x61 U+0061
|
||||
0x62 U+0062
|
||||
0x63 U+0063
|
||||
0x64 U+0064
|
||||
0x65 U+0065
|
||||
0x66 U+0066
|
||||
0x67 U+0067
|
||||
0x68 U+0068
|
||||
0x69 U+0069
|
||||
0x6a U+006a
|
||||
0x6b U+006b
|
||||
0x6c U+006c
|
||||
0x6d U+006d
|
||||
0x6e U+006e
|
||||
0x6f U+006f
|
||||
0x70 U+0070
|
||||
0x71 U+0071
|
||||
0x72 U+0072
|
||||
0x73 U+0073
|
||||
0x74 U+0074
|
||||
0x75 U+0075
|
||||
0x76 U+0076
|
||||
0x77 U+0077
|
||||
0x78 U+0078
|
||||
0x79 U+0079
|
||||
0x7a U+007a
|
||||
0x7b U+007b
|
||||
0x7c U+007c
|
||||
0x7d U+007d
|
||||
0x7e U+007e
|
||||
0x7f U+007f
|
||||
0x80 U+fe88
|
||||
0x81 U+00d7
|
||||
0x82 U+00f7
|
||||
0x83 U+f8f6
|
||||
0x84 U+f8f5
|
||||
0x85 U+f8f4
|
||||
0x86 U+f8f7
|
||||
0x87 U+fe71
|
||||
0x88 U+0088
|
||||
0x89 U+25a0
|
||||
0x8a U+2502
|
||||
0x8b U+2500
|
||||
0x8c U+2510
|
||||
0x8d U+250c
|
||||
0x8e U+2514
|
||||
0x8f U+2518
|
||||
0x90 U+fe79
|
||||
0x91 U+fe7b
|
||||
0x92 U+fe7d
|
||||
0x93 U+fe7f
|
||||
0x94 U+fe77
|
||||
0x95 U+fe8a
|
||||
0x96 U+fef0
|
||||
0x97 U+fef3
|
||||
0x98 U+fef2
|
||||
0x99 U+fece
|
||||
0x9a U+fecf
|
||||
0x9b U+fed0
|
||||
0x9c U+fef6
|
||||
0x9d U+fef8
|
||||
0x9e U+fefa
|
||||
0x9f U+fefc
|
||||
0xa0 U+00a0
|
||||
0xa1 U+f8fa
|
||||
0xa2 U+f8f9
|
||||
0xa3 U+f8f8
|
||||
0xa4 U+00a4
|
||||
0xa5 U+f8fb
|
||||
0xa6 U+fe8b
|
||||
0xa7 U+fe91
|
||||
0xa8 U+fe97
|
||||
0xa9 U+fe9b
|
||||
0xaa U+fe9f
|
||||
0xab U+fea3
|
||||
0xac U+060c
|
||||
0xad U+00ad
|
||||
0xae U+fea7
|
||||
0xaf U+feb3
|
||||
0xb0 U+0660
|
||||
0xb1 U+0661
|
||||
0xb2 U+0662
|
||||
0xb3 U+0663
|
||||
0xb4 U+0664
|
||||
0xb5 U+0665
|
||||
0xb6 U+0666
|
||||
0xb7 U+0667
|
||||
0xb8 U+0668
|
||||
0xb9 U+0669
|
||||
0xba U+feb7
|
||||
0xbb U+061b
|
||||
0xbc U+febb
|
||||
0xbd U+febf
|
||||
0xbe U+feca
|
||||
0xbf U+061f
|
||||
0xc0 U+fecb
|
||||
0xc1 U+fe80
|
||||
0xc2 U+fe81
|
||||
0xc3 U+fe83
|
||||
0xc4 U+fe85
|
||||
0xc5 U+fe87
|
||||
0xc6 U+fe89
|
||||
0xc7 U+fe8d
|
||||
0xc8 U+fe8f
|
||||
0xc9 U+fe93
|
||||
0xca U+fe95
|
||||
0xcb U+fe99
|
||||
0xcc U+fe9d
|
||||
0xcd U+fea1
|
||||
0xce U+fea5
|
||||
0xcf U+fea9
|
||||
0xd0 U+feab
|
||||
0xd1 U+fead
|
||||
0xd2 U+feaf
|
||||
0xd3 U+feb1
|
||||
0xd4 U+feb5
|
||||
0xd5 U+feb9
|
||||
0xd6 U+febd
|
||||
0xd7 U+fec3
|
||||
0xd8 U+fec7
|
||||
0xd9 U+fec9
|
||||
0xda U+fecd
|
||||
0xdb U+fecc
|
||||
0xdc U+fe82
|
||||
0xdd U+fe84
|
||||
0xde U+fe8e
|
||||
0xdf U+fed3
|
||||
0xe0 U+0640
|
||||
0xe1 U+fed1
|
||||
0xe2 U+fed5
|
||||
0xe3 U+fed9
|
||||
0xe4 U+fedd
|
||||
0xe5 U+fee1
|
||||
0xe6 U+fee5
|
||||
0xe7 U+feeb
|
||||
0xe8 U+feed
|
||||
0xe9 U+feef
|
||||
0xea U+fef1
|
||||
0xeb U+fe70
|
||||
0xec U+fe72
|
||||
0xed U+fe74
|
||||
0xee U+fe76
|
||||
0xef U+fe78
|
||||
0xf0 U+fe7a
|
||||
0xf1 U+fe7c
|
||||
0xf2 U+fe7e
|
||||
0xf3 U+fed7
|
||||
0xf4 U+fedb
|
||||
0xf5 U+fedf
|
||||
0xf6 U+f8fc
|
||||
0xf7 U+fef5
|
||||
0xf8 U+fef7
|
||||
0xf9 U+fef9
|
||||
0xfa U+fefb
|
||||
0xfb U+fee3
|
||||
0xfc U+fee7
|
||||
0xfd U+feec
|
||||
0xfe U+fee9
|
||||
0xff U+fffd
|
257
jdk/make/tools/CharsetMapping/IBM1047.map
Normal file
257
jdk/make/tools/CharsetMapping/IBM1047.map
Normal file
@ -0,0 +1,257 @@
|
||||
#Generated from IBM1047.java
|
||||
0x00 U+0000
|
||||
0x01 U+0001
|
||||
0x02 U+0002
|
||||
0x03 U+0003
|
||||
0x04 U+009c
|
||||
0x05 U+0009
|
||||
0x06 U+0086
|
||||
0x07 U+007f
|
||||
0x08 U+0097
|
||||
0x09 U+008d
|
||||
0x0a U+008e
|
||||
0x0b U+000b
|
||||
0x0c U+000c
|
||||
0x0d U+000d
|
||||
0x0e U+000e
|
||||
0x0f U+000f
|
||||
0x10 U+0010
|
||||
0x11 U+0011
|
||||
0x12 U+0012
|
||||
0x13 U+0013
|
||||
0x14 U+009d
|
||||
0x15 U+000a
|
||||
0x16 U+0008
|
||||
0x17 U+0087
|
||||
0x18 U+0018
|
||||
0x19 U+0019
|
||||
0x1a U+0092
|
||||
0x1b U+008f
|
||||
0x1c U+001c
|
||||
0x1d U+001d
|
||||
0x1e U+001e
|
||||
0x1f U+001f
|
||||
0x20 U+0080
|
||||
0x21 U+0081
|
||||
0x22 U+0082
|
||||
0x23 U+0083
|
||||
0x24 U+0084
|
||||
0x25 U+0085
|
||||
0x26 U+0017
|
||||
0x27 U+001b
|
||||
0x28 U+0088
|
||||
0x29 U+0089
|
||||
0x2a U+008a
|
||||
0x2b U+008b
|
||||
0x2c U+008c
|
||||
0x2d U+0005
|
||||
0x2e U+0006
|
||||
0x2f U+0007
|
||||
0x30 U+0090
|
||||
0x31 U+0091
|
||||
0x32 U+0016
|
||||
0x33 U+0093
|
||||
0x34 U+0094
|
||||
0x35 U+0095
|
||||
0x36 U+0096
|
||||
0x37 U+0004
|
||||
0x38 U+0098
|
||||
0x39 U+0099
|
||||
0x3a U+009a
|
||||
0x3b U+009b
|
||||
0x3c U+0014
|
||||
0x3d U+0015
|
||||
0x3e U+009e
|
||||
0x3f U+001a
|
||||
0x40 U+0020
|
||||
0x41 U+00a0
|
||||
0x42 U+00e2
|
||||
0x43 U+00e4
|
||||
0x44 U+00e0
|
||||
0x45 U+00e1
|
||||
0x46 U+00e3
|
||||
0x47 U+00e5
|
||||
0x48 U+00e7
|
||||
0x49 U+00f1
|
||||
0x4a U+00a2
|
||||
0x4b U+002e
|
||||
0x4c U+003c
|
||||
0x4d U+0028
|
||||
0x4e U+002b
|
||||
0x4f U+007c
|
||||
0x50 U+0026
|
||||
0x51 U+00e9
|
||||
0x52 U+00ea
|
||||
0x53 U+00eb
|
||||
0x54 U+00e8
|
||||
0x55 U+00ed
|
||||
0x56 U+00ee
|
||||
0x57 U+00ef
|
||||
0x58 U+00ec
|
||||
0x59 U+00df
|
||||
0x5a U+0021
|
||||
0x5b U+0024
|
||||
0x5c U+002a
|
||||
0x5d U+0029
|
||||
0x5e U+003b
|
||||
0x5f U+005e
|
||||
0x60 U+002d
|
||||
0x61 U+002f
|
||||
0x62 U+00c2
|
||||
0x63 U+00c4
|
||||
0x64 U+00c0
|
||||
0x65 U+00c1
|
||||
0x66 U+00c3
|
||||
0x67 U+00c5
|
||||
0x68 U+00c7
|
||||
0x69 U+00d1
|
||||
0x6a U+00a6
|
||||
0x6b U+002c
|
||||
0x6c U+0025
|
||||
0x6d U+005f
|
||||
0x6e U+003e
|
||||
0x6f U+003f
|
||||
0x70 U+00f8
|
||||
0x71 U+00c9
|
||||
0x72 U+00ca
|
||||
0x73 U+00cb
|
||||
0x74 U+00c8
|
||||
0x75 U+00cd
|
||||
0x76 U+00ce
|
||||
0x77 U+00cf
|
||||
0x78 U+00cc
|
||||
0x79 U+0060
|
||||
0x7a U+003a
|
||||
0x7b U+0023
|
||||
0x7c U+0040
|
||||
0x7d U+0027
|
||||
0x7e U+003d
|
||||
0x7f U+0022
|
||||
0x80 U+00d8
|
||||
0x81 U+0061
|
||||
0x82 U+0062
|
||||
0x83 U+0063
|
||||
0x84 U+0064
|
||||
0x85 U+0065
|
||||
0x86 U+0066
|
||||
0x87 U+0067
|
||||
0x88 U+0068
|
||||
0x89 U+0069
|
||||
0x8a U+00ab
|
||||
0x8b U+00bb
|
||||
0x8c U+00f0
|
||||
0x8d U+00fd
|
||||
0x8e U+00fe
|
||||
0x8f U+00b1
|
||||
0x90 U+00b0
|
||||
0x91 U+006a
|
||||
0x92 U+006b
|
||||
0x93 U+006c
|
||||
0x94 U+006d
|
||||
0x95 U+006e
|
||||
0x96 U+006f
|
||||
0x97 U+0070
|
||||
0x98 U+0071
|
||||
0x99 U+0072
|
||||
0x9a U+00aa
|
||||
0x9b U+00ba
|
||||
0x9c U+00e6
|
||||
0x9d U+00b8
|
||||
0x9e U+00c6
|
||||
0x9f U+00a4
|
||||
0xa0 U+00b5
|
||||
0xa1 U+007e
|
||||
0xa2 U+0073
|
||||
0xa3 U+0074
|
||||
0xa4 U+0075
|
||||
0xa5 U+0076
|
||||
0xa6 U+0077
|
||||
0xa7 U+0078
|
||||
0xa8 U+0079
|
||||
0xa9 U+007a
|
||||
0xaa U+00a1
|
||||
0xab U+00bf
|
||||
0xac U+00d0
|
||||
0xad U+005b
|
||||
0xae U+00de
|
||||
0xaf U+00ae
|
||||
0xb0 U+00ac
|
||||
0xb1 U+00a3
|
||||
0xb2 U+00a5
|
||||
0xb3 U+00b7
|
||||
0xb4 U+00a9
|
||||
0xb5 U+00a7
|
||||
0xb6 U+00b6
|
||||
0xb7 U+00bc
|
||||
0xb8 U+00bd
|
||||
0xb9 U+00be
|
||||
0xba U+00dd
|
||||
0xbb U+00a8
|
||||
0xbc U+00af
|
||||
0xbd U+005d
|
||||
0xbe U+00b4
|
||||
0xbf U+00d7
|
||||
0xc0 U+007b
|
||||
0xc1 U+0041
|
||||
0xc2 U+0042
|
||||
0xc3 U+0043
|
||||
0xc4 U+0044
|
||||
0xc5 U+0045
|
||||
0xc6 U+0046
|
||||
0xc7 U+0047
|
||||
0xc8 U+0048
|
||||
0xc9 U+0049
|
||||
0xca U+00ad
|
||||
0xcb U+00f4
|
||||
0xcc U+00f6
|
||||
0xcd U+00f2
|
||||
0xce U+00f3
|
||||
0xcf U+00f5
|
||||
0xd0 U+007d
|
||||
0xd1 U+004a
|
||||
0xd2 U+004b
|
||||
0xd3 U+004c
|
||||
0xd4 U+004d
|
||||
0xd5 U+004e
|
||||
0xd6 U+004f
|
||||
0xd7 U+0050
|
||||
0xd8 U+0051
|
||||
0xd9 U+0052
|
||||
0xda U+00b9
|
||||
0xdb U+00fb
|
||||
0xdc U+00fc
|
||||
0xdd U+00f9
|
||||
0xde U+00fa
|
||||
0xdf U+00ff
|
||||
0xe0 U+005c
|
||||
0xe1 U+00f7
|
||||
0xe2 U+0053
|
||||
0xe3 U+0054
|
||||
0xe4 U+0055
|
||||
0xe5 U+0056
|
||||
0xe6 U+0057
|
||||
0xe7 U+0058
|
||||
0xe8 U+0059
|
||||
0xe9 U+005a
|
||||
0xea U+00b2
|
||||
0xeb U+00d4
|
||||
0xec U+00d6
|
||||
0xed U+00d2
|
||||
0xee U+00d3
|
||||
0xef U+00d5
|
||||
0xf0 U+0030
|
||||
0xf1 U+0031
|
||||
0xf2 U+0032
|
||||
0xf3 U+0033
|
||||
0xf4 U+0034
|
||||
0xf5 U+0035
|
||||
0xf6 U+0036
|
||||
0xf7 U+0037
|
||||
0xf8 U+0038
|
||||
0xf9 U+0039
|
||||
0xfa U+00b3
|
||||
0xfb U+00db
|
||||
0xfc U+00dc
|
||||
0xfd U+00d9
|
||||
0xfe U+00da
|
||||
0xff U+009f
|
257
jdk/make/tools/CharsetMapping/IBM1097.map
Normal file
257
jdk/make/tools/CharsetMapping/IBM1097.map
Normal file
@ -0,0 +1,257 @@
|
||||
#Generated from IBM1097.java
|
||||
0x00 U+0000
|
||||
0x01 U+0001
|
||||
0x02 U+0002
|
||||
0x03 U+0003
|
||||
0x04 U+009c
|
||||
0x05 U+0009
|
||||
0x06 U+0086
|
||||
0x07 U+007f
|
||||
0x08 U+0097
|
||||
0x09 U+008d
|
||||
0x0a U+008e
|
||||
0x0b U+000b
|
||||
0x0c U+000c
|
||||
0x0d U+000d
|
||||
0x0e U+000e
|
||||
0x0f U+000f
|
||||
0x10 U+0010
|
||||
0x11 U+0011
|
||||
0x12 U+0012
|
||||
0x13 U+0013
|
||||
0x14 U+009d
|
||||
0x15 U+0085
|
||||
0x16 U+0008
|
||||
0x17 U+0087
|
||||
0x18 U+0018
|
||||
0x19 U+0019
|
||||
0x1a U+0092
|
||||
0x1b U+008f
|
||||
0x1c U+001c
|
||||
0x1d U+001d
|
||||
0x1e U+001e
|
||||
0x1f U+001f
|
||||
0x20 U+0080
|
||||
0x21 U+0081
|
||||
0x22 U+0082
|
||||
0x23 U+0083
|
||||
0x24 U+0084
|
||||
0x25 U+000a
|
||||
0x26 U+0017
|
||||
0x27 U+001b
|
||||
0x28 U+0088
|
||||
0x29 U+0089
|
||||
0x2a U+008a
|
||||
0x2b U+008b
|
||||
0x2c U+008c
|
||||
0x2d U+0005
|
||||
0x2e U+0006
|
||||
0x2f U+0007
|
||||
0x30 U+0090
|
||||
0x31 U+0091
|
||||
0x32 U+0016
|
||||
0x33 U+0093
|
||||
0x34 U+0094
|
||||
0x35 U+0095
|
||||
0x36 U+0096
|
||||
0x37 U+0004
|
||||
0x38 U+0098
|
||||
0x39 U+0099
|
||||
0x3a U+009a
|
||||
0x3b U+009b
|
||||
0x3c U+0014
|
||||
0x3d U+0015
|
||||
0x3e U+009e
|
||||
0x3f U+001a
|
||||
0x40 U+0020
|
||||
0x41 U+00a0
|
||||
0x42 U+060c
|
||||
0x43 U+064b
|
||||
0x44 U+fe81
|
||||
0x45 U+fe82
|
||||
0x46 U+f8fa
|
||||
0x47 U+fe8d
|
||||
0x48 U+fe8e
|
||||
0x49 U+f8fb
|
||||
0x4a U+00a4
|
||||
0x4b U+002e
|
||||
0x4c U+003c
|
||||
0x4d U+0028
|
||||
0x4e U+002b
|
||||
0x4f U+007c
|
||||
0x50 U+0026
|
||||
0x51 U+fe80
|
||||
0x52 U+fe83
|
||||
0x53 U+fe84
|
||||
0x54 U+f8f9
|
||||
0x55 U+fe85
|
||||
0x56 U+fe8b
|
||||
0x57 U+fe8f
|
||||
0x58 U+fe91
|
||||
0x59 U+fb56
|
||||
0x5a U+0021
|
||||
0x5b U+0024
|
||||
0x5c U+002a
|
||||
0x5d U+0029
|
||||
0x5e U+003b
|
||||
0x5f U+00ac
|
||||
0x60 U+002d
|
||||
0x61 U+002f
|
||||
0x62 U+fb58
|
||||
0x63 U+fe95
|
||||
0x64 U+fe97
|
||||
0x65 U+fe99
|
||||
0x66 U+fe9b
|
||||
0x67 U+fe9d
|
||||
0x68 U+fe9f
|
||||
0x69 U+fb7a
|
||||
0x6a U+061b
|
||||
0x6b U+002c
|
||||
0x6c U+0025
|
||||
0x6d U+005f
|
||||
0x6e U+003e
|
||||
0x6f U+003f
|
||||
0x70 U+fb7c
|
||||
0x71 U+fea1
|
||||
0x72 U+fea3
|
||||
0x73 U+fea5
|
||||
0x74 U+fea7
|
||||
0x75 U+fea9
|
||||
0x76 U+feab
|
||||
0x77 U+fead
|
||||
0x78 U+feaf
|
||||
0x79 U+0060
|
||||
0x7a U+003a
|
||||
0x7b U+0023
|
||||
0x7c U+0040
|
||||
0x7d U+0027
|
||||
0x7e U+003d
|
||||
0x7f U+0022
|
||||
0x80 U+fb8a
|
||||
0x81 U+0061
|
||||
0x82 U+0062
|
||||
0x83 U+0063
|
||||
0x84 U+0064
|
||||
0x85 U+0065
|
||||
0x86 U+0066
|
||||
0x87 U+0067
|
||||
0x88 U+0068
|
||||
0x89 U+0069
|
||||
0x8a U+00ab
|
||||
0x8b U+00bb
|
||||
0x8c U+feb1
|
||||
0x8d U+feb3
|
||||
0x8e U+feb5
|
||||
0x8f U+feb7
|
||||
0x90 U+feb9
|
||||
0x91 U+006a
|
||||
0x92 U+006b
|
||||
0x93 U+006c
|
||||
0x94 U+006d
|
||||
0x95 U+006e
|
||||
0x96 U+006f
|
||||
0x97 U+0070
|
||||
0x98 U+0071
|
||||
0x99 U+0072
|
||||
0x9a U+febb
|
||||
0x9b U+febd
|
||||
0x9c U+febf
|
||||
0x9d U+fec1
|
||||
0x9e U+fec3
|
||||
0x9f U+fec5
|
||||
0xa0 U+fec7
|
||||
0xa1 U+007e
|
||||
0xa2 U+0073
|
||||
0xa3 U+0074
|
||||
0xa4 U+0075
|
||||
0xa5 U+0076
|
||||
0xa6 U+0077
|
||||
0xa7 U+0078
|
||||
0xa8 U+0079
|
||||
0xa9 U+007a
|
||||
0xaa U+fec9
|
||||
0xab U+feca
|
||||
0xac U+fecb
|
||||
0xad U+fecc
|
||||
0xae U+fecd
|
||||
0xaf U+fece
|
||||
0xb0 U+fecf
|
||||
0xb1 U+fed0
|
||||
0xb2 U+fed1
|
||||
0xb3 U+fed3
|
||||
0xb4 U+fed5
|
||||
0xb5 U+fed7
|
||||
0xb6 U+fb8e
|
||||
0xb7 U+fedb
|
||||
0xb8 U+fb92
|
||||
0xb9 U+fb94
|
||||
0xba U+005b
|
||||
0xbb U+005d
|
||||
0xbc U+fedd
|
||||
0xbd U+fedf
|
||||
0xbe U+fee1
|
||||
0xbf U+00d7
|
||||
0xc0 U+007b
|
||||
0xc1 U+0041
|
||||
0xc2 U+0042
|
||||
0xc3 U+0043
|
||||
0xc4 U+0044
|
||||
0xc5 U+0045
|
||||
0xc6 U+0046
|
||||
0xc7 U+0047
|
||||
0xc8 U+0048
|
||||
0xc9 U+0049
|
||||
0xca U+00ad
|
||||
0xcb U+fee3
|
||||
0xcc U+fee5
|
||||
0xcd U+fee7
|
||||
0xce U+feed
|
||||
0xcf U+fee9
|
||||
0xd0 U+007d
|
||||
0xd1 U+004a
|
||||
0xd2 U+004b
|
||||
0xd3 U+004c
|
||||
0xd4 U+004d
|
||||
0xd5 U+004e
|
||||
0xd6 U+004f
|
||||
0xd7 U+0050
|
||||
0xd8 U+0051
|
||||
0xd9 U+0052
|
||||
0xda U+feeb
|
||||
0xdb U+feec
|
||||
0xdc U+fba4
|
||||
0xdd U+fbfc
|
||||
0xde U+fbfd
|
||||
0xdf U+fbfe
|
||||
0xe0 U+005c
|
||||
0xe1 U+061f
|
||||
0xe2 U+0053
|
||||
0xe3 U+0054
|
||||
0xe4 U+0055
|
||||
0xe5 U+0056
|
||||
0xe6 U+0057
|
||||
0xe7 U+0058
|
||||
0xe8 U+0059
|
||||
0xe9 U+005a
|
||||
0xea U+0640
|
||||
0xeb U+06f0
|
||||
0xec U+06f1
|
||||
0xed U+06f2
|
||||
0xee U+06f3
|
||||
0xef U+06f4
|
||||
0xf0 U+0030
|
||||
0xf1 U+0031
|
||||
0xf2 U+0032
|
||||
0xf3 U+0033
|
||||
0xf4 U+0034
|
||||
0xf5 U+0035
|
||||
0xf6 U+0036
|
||||
0xf7 U+0037
|
||||
0xf8 U+0038
|
||||
0xf9 U+0039
|
||||
0xfa U+06f5
|
||||
0xfb U+06f6
|
||||
0xfc U+06f7
|
||||
0xfd U+06f8
|
||||
0xfe U+06f9
|
||||
0xff U+009f
|
257
jdk/make/tools/CharsetMapping/IBM1098.map
Normal file
257
jdk/make/tools/CharsetMapping/IBM1098.map
Normal file
@ -0,0 +1,257 @@
|
||||
#Generated from IBM1098.java
|
||||
0x00 U+0000
|
||||
0x01 U+0001
|
||||
0x02 U+0002
|
||||
0x03 U+0003
|
||||
0x04 U+0004
|
||||
0x05 U+0005
|
||||
0x06 U+0006
|
||||
0x07 U+0007
|
||||
0x08 U+0008
|
||||
0x09 U+0009
|
||||
0x0a U+000a
|
||||
0x0b U+000b
|
||||
0x0c U+000c
|
||||
0x0d U+000d
|
||||
0x0e U+000e
|
||||
0x0f U+000f
|
||||
0x10 U+0010
|
||||
0x11 U+0011
|
||||
0x12 U+0012
|
||||
0x13 U+0013
|
||||
0x14 U+0014
|
||||
0x15 U+0015
|
||||
0x16 U+0016
|
||||
0x17 U+0017
|
||||
0x18 U+0018
|
||||
0x19 U+0019
|
||||
0x1a U+001a
|
||||
0x1b U+001b
|
||||
0x1c U+001c
|
||||
0x1d U+001d
|
||||
0x1e U+001e
|
||||
0x1f U+001f
|
||||
0x20 U+0020
|
||||
0x21 U+0021
|
||||
0x22 U+0022
|
||||
0x23 U+0023
|
||||
0x24 U+0024
|
||||
0x25 U+0025
|
||||
0x26 U+0026
|
||||
0x27 U+0027
|
||||
0x28 U+0028
|
||||
0x29 U+0029
|
||||
0x2a U+002a
|
||||
0x2b U+002b
|
||||
0x2c U+002c
|
||||
0x2d U+002d
|
||||
0x2e U+002e
|
||||
0x2f U+002f
|
||||
0x30 U+0030
|
||||
0x31 U+0031
|
||||
0x32 U+0032
|
||||
0x33 U+0033
|
||||
0x34 U+0034
|
||||
0x35 U+0035
|
||||
0x36 U+0036
|
||||
0x37 U+0037
|
||||
0x38 U+0038
|
||||
0x39 U+0039
|
||||
0x3a U+003a
|
||||
0x3b U+003b
|
||||
0x3c U+003c
|
||||
0x3d U+003d
|
||||
0x3e U+003e
|
||||
0x3f U+003f
|
||||
0x40 U+0040
|
||||
0x41 U+0041
|
||||
0x42 U+0042
|
||||
0x43 U+0043
|
||||
0x44 U+0044
|
||||
0x45 U+0045
|
||||
0x46 U+0046
|
||||
0x47 U+0047
|
||||
0x48 U+0048
|
||||
0x49 U+0049
|
||||
0x4a U+004a
|
||||
0x4b U+004b
|
||||
0x4c U+004c
|
||||
0x4d U+004d
|
||||
0x4e U+004e
|
||||
0x4f U+004f
|
||||
0x50 U+0050
|
||||
0x51 U+0051
|
||||
0x52 U+0052
|
||||
0x53 U+0053
|
||||
0x54 U+0054
|
||||
0x55 U+0055
|
||||
0x56 U+0056
|
||||
0x57 U+0057
|
||||
0x58 U+0058
|
||||
0x59 U+0059
|
||||
0x5a U+005a
|
||||
0x5b U+005b
|
||||
0x5c U+005c
|
||||
0x5d U+005d
|
||||
0x5e U+005e
|
||||
0x5f U+005f
|
||||
0x60 U+0060
|
||||
0x61 U+0061
|
||||
0x62 U+0062
|
||||
0x63 U+0063
|
||||
0x64 U+0064
|
||||
0x65 U+0065
|
||||
0x66 U+0066
|
||||
0x67 U+0067
|
||||
0x68 U+0068
|
||||
0x69 U+0069
|
||||
0x6a U+006a
|
||||
0x6b U+006b
|
||||
0x6c U+006c
|
||||
0x6d U+006d
|
||||
0x6e U+006e
|
||||
0x6f U+006f
|
||||
0x70 U+0070
|
||||
0x71 U+0071
|
||||
0x72 U+0072
|
||||
0x73 U+0073
|
||||
0x74 U+0074
|
||||
0x75 U+0075
|
||||
0x76 U+0076
|
||||
0x77 U+0077
|
||||
0x78 U+0078
|
||||
0x79 U+0079
|
||||
0x7a U+007a
|
||||
0x7b U+007b
|
||||
0x7c U+007c
|
||||
0x7d U+007d
|
||||
0x7e U+007e
|
||||
0x7f U+007f
|
||||
0x80 U+fffd
|
||||
0x81 U+fffd
|
||||
0x82 U+060c
|
||||
0x83 U+061b
|
||||
0x84 U+061f
|
||||
0x85 U+064b
|
||||
0x86 U+fe81
|
||||
0x87 U+fe82
|
||||
0x88 U+f8fa
|
||||
0x89 U+fe8d
|
||||
0x8a U+fe8e
|
||||
0x8b U+f8fb
|
||||
0x8c U+fe80
|
||||
0x8d U+fe83
|
||||
0x8e U+fe84
|
||||
0x8f U+f8f9
|
||||
0x90 U+fe85
|
||||
0x91 U+fe8b
|
||||
0x92 U+fe8f
|
||||
0x93 U+fe91
|
||||
0x94 U+fb56
|
||||
0x95 U+fb58
|
||||
0x96 U+fe95
|
||||
0x97 U+fe97
|
||||
0x98 U+fe99
|
||||
0x99 U+fe9b
|
||||
0x9a U+fe9d
|
||||
0x9b U+fe9f
|
||||
0x9c U+fb7a
|
||||
0x9d U+fb7c
|
||||
0x9e U+00d7
|
||||
0x9f U+fea1
|
||||
0xa0 U+fea3
|
||||
0xa1 U+fea5
|
||||
0xa2 U+fea7
|
||||
0xa3 U+fea9
|
||||
0xa4 U+feab
|
||||
0xa5 U+fead
|
||||
0xa6 U+feaf
|
||||
0xa7 U+fb8a
|
||||
0xa8 U+feb1
|
||||
0xa9 U+feb3
|
||||
0xaa U+feb5
|
||||
0xab U+feb7
|
||||
0xac U+feb9
|
||||
0xad U+febb
|
||||
0xae U+00ab
|
||||
0xaf U+00bb
|
||||
0xb0 U+2591
|
||||
0xb1 U+2592
|
||||
0xb2 U+2593
|
||||
0xb3 U+2502
|
||||
0xb4 U+2524
|
||||
0xb5 U+febd
|
||||
0xb6 U+febf
|
||||
0xb7 U+fec1
|
||||
0xb8 U+fec3
|
||||
0xb9 U+2563
|
||||
0xba U+2551
|
||||
0xbb U+2557
|
||||
0xbc U+255d
|
||||
0xbd U+00a4
|
||||
0xbe U+fec5
|
||||
0xbf U+2510
|
||||
0xc0 U+2514
|
||||
0xc1 U+2534
|
||||
0xc2 U+252c
|
||||
0xc3 U+251c
|
||||
0xc4 U+2500
|
||||
0xc5 U+253c
|
||||
0xc6 U+fec7
|
||||
0xc7 U+fec9
|
||||
0xc8 U+255a
|
||||
0xc9 U+2554
|
||||
0xca U+2569
|
||||
0xcb U+2566
|
||||
0xcc U+2560
|
||||
0xcd U+2550
|
||||
0xce U+256c
|
||||
0xcf U+fffd
|
||||
0xd0 U+feca
|
||||
0xd1 U+fecb
|
||||
0xd2 U+fecc
|
||||
0xd3 U+fecd
|
||||
0xd4 U+fece
|
||||
0xd5 U+fecf
|
||||
0xd6 U+fed0
|
||||
0xd7 U+fed1
|
||||
0xd8 U+fed3
|
||||
0xd9 U+2518
|
||||
0xda U+250c
|
||||
0xdb U+2588
|
||||
0xdc U+2584
|
||||
0xdd U+fed5
|
||||
0xde U+fed7
|
||||
0xdf U+2580
|
||||
0xe0 U+fb8e
|
||||
0xe1 U+fedb
|
||||
0xe2 U+fb92
|
||||
0xe3 U+fb94
|
||||
0xe4 U+fedd
|
||||
0xe5 U+fedf
|
||||
0xe6 U+fee1
|
||||
0xe7 U+fee3
|
||||
0xe8 U+fee5
|
||||
0xe9 U+fee7
|
||||
0xea U+feed
|
||||
0xeb U+fee9
|
||||
0xec U+feeb
|
||||
0xed U+feec
|
||||
0xee U+fba4
|
||||
0xef U+fbfc
|
||||
0xf0 U+00ad
|
||||
0xf1 U+fbfd
|
||||
0xf2 U+fbfe
|
||||
0xf3 U+0640
|
||||
0xf4 U+06f0
|
||||
0xf5 U+06f1
|
||||
0xf6 U+06f2
|
||||
0xf7 U+06f3
|
||||
0xf8 U+06f4
|
||||
0xf9 U+06f5
|
||||
0xfa U+06f6
|
||||
0xfb U+06f7
|
||||
0xfc U+06f8
|
||||
0xfd U+06f9
|
||||
0xfe U+25a0
|
||||
0xff U+00a0
|
1
jdk/make/tools/CharsetMapping/IBM1112.c2b
Normal file
1
jdk/make/tools/CharsetMapping/IBM1112.c2b
Normal file
@ -0,0 +1 @@
|
||||
0x15 U+0085
|
257
jdk/make/tools/CharsetMapping/IBM1112.map
Normal file
257
jdk/make/tools/CharsetMapping/IBM1112.map
Normal file
@ -0,0 +1,257 @@
|
||||
#Generated from IBM1112.java
|
||||
0x00 U+0000
|
||||
0x01 U+0001
|
||||
0x02 U+0002
|
||||
0x03 U+0003
|
||||
0x04 U+009c
|
||||
0x05 U+0009
|
||||
0x06 U+0086
|
||||
0x07 U+007f
|
||||
0x08 U+0097
|
||||
0x09 U+008d
|
||||
0x0a U+008e
|
||||
0x0b U+000b
|
||||
0x0c U+000c
|
||||
0x0d U+000d
|
||||
0x0e U+000e
|
||||
0x0f U+000f
|
||||
0x10 U+0010
|
||||
0x11 U+0011
|
||||
0x12 U+0012
|
||||
0x13 U+0013
|
||||
0x14 U+009d
|
||||
0x15 U+000a
|
||||
0x16 U+0008
|
||||
0x17 U+0087
|
||||
0x18 U+0018
|
||||
0x19 U+0019
|
||||
0x1a U+0092
|
||||
0x1b U+008f
|
||||
0x1c U+001c
|
||||
0x1d U+001d
|
||||
0x1e U+001e
|
||||
0x1f U+001f
|
||||
0x20 U+0080
|
||||
0x21 U+0081
|
||||
0x22 U+0082
|
||||
0x23 U+0083
|
||||
0x24 U+0084
|
||||
0x25 U+000a
|
||||
0x26 U+0017
|
||||
0x27 U+001b
|
||||
0x28 U+0088
|
||||
0x29 U+0089
|
||||
0x2a U+008a
|
||||
0x2b U+008b
|
||||
0x2c U+008c
|
||||
0x2d U+0005
|
||||
0x2e U+0006
|
||||
0x2f U+0007
|
||||
0x30 U+0090
|
||||
0x31 U+0091
|
||||
0x32 U+0016
|
||||
0x33 U+0093
|
||||
0x34 U+0094
|
||||
0x35 U+0095
|
||||
0x36 U+0096
|
||||
0x37 U+0004
|
||||
0x38 U+0098
|
||||
0x39 U+0099
|
||||
0x3a U+009a
|
||||
0x3b U+009b
|
||||
0x3c U+0014
|
||||
0x3d U+0015
|
||||
0x3e U+009e
|
||||
0x3f U+001a
|
||||
0x40 U+0020
|
||||
0x41 U+00a0
|
||||
0x42 U+0161
|
||||
0x43 U+00e4
|
||||
0x44 U+0105
|
||||
0x45 U+012f
|
||||
0x46 U+016b
|
||||
0x47 U+00e5
|
||||
0x48 U+0113
|
||||
0x49 U+017e
|
||||
0x4a U+00a2
|
||||
0x4b U+002e
|
||||
0x4c U+003c
|
||||
0x4d U+0028
|
||||
0x4e U+002b
|
||||
0x4f U+007c
|
||||
0x50 U+0026
|
||||
0x51 U+00e9
|
||||
0x52 U+0119
|
||||
0x53 U+0117
|
||||
0x54 U+010d
|
||||
0x55 U+0173
|
||||
0x56 U+201e
|
||||
0x57 U+201c
|
||||
0x58 U+0123
|
||||
0x59 U+00df
|
||||
0x5a U+0021
|
||||
0x5b U+0024
|
||||
0x5c U+002a
|
||||
0x5d U+0029
|
||||
0x5e U+003b
|
||||
0x5f U+00ac
|
||||
0x60 U+002d
|
||||
0x61 U+002f
|
||||
0x62 U+0160
|
||||
0x63 U+00c4
|
||||
0x64 U+0104
|
||||
0x65 U+012e
|
||||
0x66 U+016a
|
||||
0x67 U+00c5
|
||||
0x68 U+0112
|
||||
0x69 U+017d
|
||||
0x6a U+00a6
|
||||
0x6b U+002c
|
||||
0x6c U+0025
|
||||
0x6d U+005f
|
||||
0x6e U+003e
|
||||
0x6f U+003f
|
||||
0x70 U+00f8
|
||||
0x71 U+00c9
|
||||
0x72 U+0118
|
||||
0x73 U+0116
|
||||
0x74 U+010c
|
||||
0x75 U+0172
|
||||
0x76 U+012a
|
||||
0x77 U+013b
|
||||
0x78 U+0122
|
||||
0x79 U+0060
|
||||
0x7a U+003a
|
||||
0x7b U+0023
|
||||
0x7c U+0040
|
||||
0x7d U+0027
|
||||
0x7e U+003d
|
||||
0x7f U+0022
|
||||
0x80 U+00d8
|
||||
0x81 U+0061
|
||||
0x82 U+0062
|
||||
0x83 U+0063
|
||||
0x84 U+0064
|
||||
0x85 U+0065
|
||||
0x86 U+0066
|
||||
0x87 U+0067
|
||||
0x88 U+0068
|
||||
0x89 U+0069
|
||||
0x8a U+00ab
|
||||
0x8b U+00bb
|
||||
0x8c U+0101
|
||||
0x8d U+017c
|
||||
0x8e U+0144
|
||||
0x8f U+00b1
|
||||
0x90 U+00b0
|
||||
0x91 U+006a
|
||||
0x92 U+006b
|
||||
0x93 U+006c
|
||||
0x94 U+006d
|
||||
0x95 U+006e
|
||||
0x96 U+006f
|
||||
0x97 U+0070
|
||||
0x98 U+0071
|
||||
0x99 U+0072
|
||||
0x9a U+0156
|
||||
0x9b U+0157
|
||||
0x9c U+00e6
|
||||
0x9d U+0137
|
||||
0x9e U+00c6
|
||||
0x9f U+00a4
|
||||
0xa0 U+00b5
|
||||
0xa1 U+007e
|
||||
0xa2 U+0073
|
||||
0xa3 U+0074
|
||||
0xa4 U+0075
|
||||
0xa5 U+0076
|
||||
0xa6 U+0077
|
||||
0xa7 U+0078
|
||||
0xa8 U+0079
|
||||
0xa9 U+007a
|
||||
0xaa U+201d
|
||||
0xab U+017a
|
||||
0xac U+0100
|
||||
0xad U+017b
|
||||
0xae U+0143
|
||||
0xaf U+00ae
|
||||
0xb0 U+005e
|
||||
0xb1 U+00a3
|
||||
0xb2 U+012b
|
||||
0xb3 U+00b7
|
||||
0xb4 U+00a9
|
||||
0xb5 U+00a7
|
||||
0xb6 U+00b6
|
||||
0xb7 U+00bc
|
||||
0xb8 U+00bd
|
||||
0xb9 U+00be
|
||||
0xba U+005b
|
||||
0xbb U+005d
|
||||
0xbc U+0179
|
||||
0xbd U+0136
|
||||
0xbe U+013c
|
||||
0xbf U+00d7
|
||||
0xc0 U+007b
|
||||
0xc1 U+0041
|
||||
0xc2 U+0042
|
||||
0xc3 U+0043
|
||||
0xc4 U+0044
|
||||
0xc5 U+0045
|
||||
0xc6 U+0046
|
||||
0xc7 U+0047
|
||||
0xc8 U+0048
|
||||
0xc9 U+0049
|
||||
0xca U+00ad
|
||||
0xcb U+014d
|
||||
0xcc U+00f6
|
||||
0xcd U+0146
|
||||
0xce U+00f3
|
||||
0xcf U+00f5
|
||||
0xd0 U+007d
|
||||
0xd1 U+004a
|
||||
0xd2 U+004b
|
||||
0xd3 U+004c
|
||||
0xd4 U+004d
|
||||
0xd5 U+004e
|
||||
0xd6 U+004f
|
||||
0xd7 U+0050
|
||||
0xd8 U+0051
|
||||
0xd9 U+0052
|
||||
0xda U+00b9
|
||||
0xdb U+0107
|
||||
0xdc U+00fc
|
||||
0xdd U+0142
|
||||
0xde U+015b
|
||||
0xdf U+2019
|
||||
0xe0 U+005c
|
||||
0xe1 U+00f7
|
||||
0xe2 U+0053
|
||||
0xe3 U+0054
|
||||
0xe4 U+0055
|
||||
0xe5 U+0056
|
||||
0xe6 U+0057
|
||||
0xe7 U+0058
|
||||
0xe8 U+0059
|
||||
0xe9 U+005a
|
||||
0xea U+00b2
|
||||
0xeb U+014c
|
||||
0xec U+00d6
|
||||
0xed U+0145
|
||||
0xee U+00d3
|
||||
0xef U+00d5
|
||||
0xf0 U+0030
|
||||
0xf1 U+0031
|
||||
0xf2 U+0032
|
||||
0xf3 U+0033
|
||||
0xf4 U+0034
|
||||
0xf5 U+0035
|
||||
0xf6 U+0036
|
||||
0xf7 U+0037
|
||||
0xf8 U+0038
|
||||
0xf9 U+0039
|
||||
0xfa U+00b3
|
||||
0xfb U+0106
|
||||
0xfc U+00dc
|
||||
0xfd U+0141
|
||||
0xfe U+015a
|
||||
0xff U+009f
|
1
jdk/make/tools/CharsetMapping/IBM1112.nr
Normal file
1
jdk/make/tools/CharsetMapping/IBM1112.nr
Normal file
@ -0,0 +1 @@
|
||||
0x25 U+000a
|
1
jdk/make/tools/CharsetMapping/IBM1122.c2b
Normal file
1
jdk/make/tools/CharsetMapping/IBM1122.c2b
Normal file
@ -0,0 +1 @@
|
||||
0x15 U+0085
|
257
jdk/make/tools/CharsetMapping/IBM1122.map
Normal file
257
jdk/make/tools/CharsetMapping/IBM1122.map
Normal file
@ -0,0 +1,257 @@
|
||||
#Generated from IBM1122.java
|
||||
0x00 U+0000
|
||||
0x01 U+0001
|
||||
0x02 U+0002
|
||||
0x03 U+0003
|
||||
0x04 U+009c
|
||||
0x05 U+0009
|
||||
0x06 U+0086
|
||||
0x07 U+007f
|
||||
0x08 U+0097
|
||||
0x09 U+008d
|
||||
0x0a U+008e
|
||||
0x0b U+000b
|
||||
0x0c U+000c
|
||||
0x0d U+000d
|
||||
0x0e U+000e
|
||||
0x0f U+000f
|
||||
0x10 U+0010
|
||||
0x11 U+0011
|
||||
0x12 U+0012
|
||||
0x13 U+0013
|
||||
0x14 U+009d
|
||||
0x15 U+000a
|
||||
0x16 U+0008
|
||||
0x17 U+0087
|
||||
0x18 U+0018
|
||||
0x19 U+0019
|
||||
0x1a U+0092
|
||||
0x1b U+008f
|
||||
0x1c U+001c
|
||||
0x1d U+001d
|
||||
0x1e U+001e
|
||||
0x1f U+001f
|
||||
0x20 U+0080
|
||||
0x21 U+0081
|
||||
0x22 U+0082
|
||||
0x23 U+0083
|
||||
0x24 U+0084
|
||||
0x25 U+000a
|
||||
0x26 U+0017
|
||||
0x27 U+001b
|
||||
0x28 U+0088
|
||||
0x29 U+0089
|
||||
0x2a U+008a
|
||||
0x2b U+008b
|
||||
0x2c U+008c
|
||||
0x2d U+0005
|
||||
0x2e U+0006
|
||||
0x2f U+0007
|
||||
0x30 U+0090
|
||||
0x31 U+0091
|
||||
0x32 U+0016
|
||||
0x33 U+0093
|
||||
0x34 U+0094
|
||||
0x35 U+0095
|
||||
0x36 U+0096
|
||||
0x37 U+0004
|
||||
0x38 U+0098
|
||||
0x39 U+0099
|
||||
0x3a U+009a
|
||||
0x3b U+009b
|
||||
0x3c U+0014
|
||||
0x3d U+0015
|
||||
0x3e U+009e
|
||||
0x3f U+001a
|
||||
0x40 U+0020
|
||||
0x41 U+00a0
|
||||
0x42 U+00e2
|
||||
0x43 U+007b
|
||||
0x44 U+00e0
|
||||
0x45 U+00e1
|
||||
0x46 U+00e3
|
||||
0x47 U+007d
|
||||
0x48 U+00e7
|
||||
0x49 U+00f1
|
||||
0x4a U+00a7
|
||||
0x4b U+002e
|
||||
0x4c U+003c
|
||||
0x4d U+0028
|
||||
0x4e U+002b
|
||||
0x4f U+0021
|
||||
0x50 U+0026
|
||||
0x51 U+0060
|
||||
0x52 U+00ea
|
||||
0x53 U+00eb
|
||||
0x54 U+00e8
|
||||
0x55 U+00ed
|
||||
0x56 U+00ee
|
||||
0x57 U+00ef
|
||||
0x58 U+00ec
|
||||
0x59 U+00df
|
||||
0x5a U+00a4
|
||||
0x5b U+00c5
|
||||
0x5c U+002a
|
||||
0x5d U+0029
|
||||
0x5e U+003b
|
||||
0x5f U+005e
|
||||
0x60 U+002d
|
||||
0x61 U+002f
|
||||
0x62 U+00c2
|
||||
0x63 U+0023
|
||||
0x64 U+00c0
|
||||
0x65 U+00c1
|
||||
0x66 U+00c3
|
||||
0x67 U+0024
|
||||
0x68 U+00c7
|
||||
0x69 U+00d1
|
||||
0x6a U+00f6
|
||||
0x6b U+002c
|
||||
0x6c U+0025
|
||||
0x6d U+005f
|
||||
0x6e U+003e
|
||||
0x6f U+003f
|
||||
0x70 U+00f8
|
||||
0x71 U+005c
|
||||
0x72 U+00ca
|
||||
0x73 U+00cb
|
||||
0x74 U+00c8
|
||||
0x75 U+00cd
|
||||
0x76 U+00ce
|
||||
0x77 U+00cf
|
||||
0x78 U+00cc
|
||||
0x79 U+00e9
|
||||
0x7a U+003a
|
||||
0x7b U+00c4
|
||||
0x7c U+00d6
|
||||
0x7d U+0027
|
||||
0x7e U+003d
|
||||
0x7f U+0022
|
||||
0x80 U+00d8
|
||||
0x81 U+0061
|
||||
0x82 U+0062
|
||||
0x83 U+0063
|
||||
0x84 U+0064
|
||||
0x85 U+0065
|
||||
0x86 U+0066
|
||||
0x87 U+0067
|
||||
0x88 U+0068
|
||||
0x89 U+0069
|
||||
0x8a U+00ab
|
||||
0x8b U+00bb
|
||||
0x8c U+0161
|
||||
0x8d U+00fd
|
||||
0x8e U+017e
|
||||
0x8f U+00b1
|
||||
0x90 U+00b0
|
||||
0x91 U+006a
|
||||
0x92 U+006b
|
||||
0x93 U+006c
|
||||
0x94 U+006d
|
||||
0x95 U+006e
|
||||
0x96 U+006f
|
||||
0x97 U+0070
|
||||
0x98 U+0071
|
||||
0x99 U+0072
|
||||
0x9a U+00aa
|
||||
0x9b U+00ba
|
||||
0x9c U+00e6
|
||||
0x9d U+00b8
|
||||
0x9e U+00c6
|
||||
0x9f U+005d
|
||||
0xa0 U+00b5
|
||||
0xa1 U+00fc
|
||||
0xa2 U+0073
|
||||
0xa3 U+0074
|
||||
0xa4 U+0075
|
||||
0xa5 U+0076
|
||||
0xa6 U+0077
|
||||
0xa7 U+0078
|
||||
0xa8 U+0079
|
||||
0xa9 U+007a
|
||||
0xaa U+00a1
|
||||
0xab U+00bf
|
||||
0xac U+0160
|
||||
0xad U+00dd
|
||||
0xae U+017d
|
||||
0xaf U+00ae
|
||||
0xb0 U+00a2
|
||||
0xb1 U+00a3
|
||||
0xb2 U+00a5
|
||||
0xb3 U+00b7
|
||||
0xb4 U+00a9
|
||||
0xb5 U+005b
|
||||
0xb6 U+00b6
|
||||
0xb7 U+00bc
|
||||
0xb8 U+00bd
|
||||
0xb9 U+00be
|
||||
0xba U+00ac
|
||||
0xbb U+007c
|
||||
0xbc U+203e
|
||||
0xbd U+00a8
|
||||
0xbe U+00b4
|
||||
0xbf U+00d7
|
||||
0xc0 U+00e4
|
||||
0xc1 U+0041
|
||||
0xc2 U+0042
|
||||
0xc3 U+0043
|
||||
0xc4 U+0044
|
||||
0xc5 U+0045
|
||||
0xc6 U+0046
|
||||
0xc7 U+0047
|
||||
0xc8 U+0048
|
||||
0xc9 U+0049
|
||||
0xca U+00ad
|
||||
0xcb U+00f4
|
||||
0xcc U+00a6
|
||||
0xcd U+00f2
|
||||
0xce U+00f3
|
||||
0xcf U+00f5
|
||||
0xd0 U+00e5
|
||||
0xd1 U+004a
|
||||
0xd2 U+004b
|
||||
0xd3 U+004c
|
||||
0xd4 U+004d
|
||||
0xd5 U+004e
|
||||
0xd6 U+004f
|
||||
0xd7 U+0050
|
||||
0xd8 U+0051
|
||||
0xd9 U+0052
|
||||
0xda U+00b9
|
||||
0xdb U+00fb
|
||||
0xdc U+007e
|
||||
0xdd U+00f9
|
||||
0xde U+00fa
|
||||
0xdf U+00ff
|
||||
0xe0 U+00c9
|
||||
0xe1 U+00f7
|
||||
0xe2 U+0053
|
||||
0xe3 U+0054
|
||||
0xe4 U+0055
|
||||
0xe5 U+0056
|
||||
0xe6 U+0057
|
||||
0xe7 U+0058
|
||||
0xe8 U+0059
|
||||
0xe9 U+005a
|
||||
0xea U+00b2
|
||||
0xeb U+00d4
|
||||
0xec U+0040
|
||||
0xed U+00d2
|
||||
0xee U+00d3
|
||||
0xef U+00d5
|
||||
0xf0 U+0030
|
||||
0xf1 U+0031
|
||||
0xf2 U+0032
|
||||
0xf3 U+0033
|
||||
0xf4 U+0034
|
||||
0xf5 U+0035
|
||||
0xf6 U+0036
|
||||
0xf7 U+0037
|
||||
0xf8 U+0038
|
||||
0xf9 U+0039
|
||||
0xfa U+00b3
|
||||
0xfb U+00db
|
||||
0xfc U+00dc
|
||||
0xfd U+00d9
|
||||
0xfe U+00da
|
||||
0xff U+009f
|
1
jdk/make/tools/CharsetMapping/IBM1122.nr
Normal file
1
jdk/make/tools/CharsetMapping/IBM1122.nr
Normal file
@ -0,0 +1 @@
|
||||
0x25 U+000a
|
1
jdk/make/tools/CharsetMapping/IBM1123.c2b
Normal file
1
jdk/make/tools/CharsetMapping/IBM1123.c2b
Normal file
@ -0,0 +1 @@
|
||||
0x15 U+0085
|
257
jdk/make/tools/CharsetMapping/IBM1123.map
Normal file
257
jdk/make/tools/CharsetMapping/IBM1123.map
Normal file
@ -0,0 +1,257 @@
|
||||
#Generated from IBM1123.java
|
||||
0x00 U+0000
|
||||
0x01 U+0001
|
||||
0x02 U+0002
|
||||
0x03 U+0003
|
||||
0x04 U+009c
|
||||
0x05 U+0009
|
||||
0x06 U+0086
|
||||
0x07 U+007f
|
||||
0x08 U+0097
|
||||
0x09 U+008d
|
||||
0x0a U+008e
|
||||
0x0b U+000b
|
||||
0x0c U+000c
|
||||
0x0d U+000d
|
||||
0x0e U+000e
|
||||
0x0f U+000f
|
||||
0x10 U+0010
|
||||
0x11 U+0011
|
||||
0x12 U+0012
|
||||
0x13 U+0013
|
||||
0x14 U+009d
|
||||
0x15 U+000a
|
||||
0x16 U+0008
|
||||
0x17 U+0087
|
||||
0x18 U+0018
|
||||
0x19 U+0019
|
||||
0x1a U+0092
|
||||
0x1b U+008f
|
||||
0x1c U+001c
|
||||
0x1d U+001d
|
||||
0x1e U+001e
|
||||
0x1f U+001f
|
||||
0x20 U+0080
|
||||
0x21 U+0081
|
||||
0x22 U+0082
|
||||
0x23 U+0083
|
||||
0x24 U+0084
|
||||
0x25 U+000a
|
||||
0x26 U+0017
|
||||
0x27 U+001b
|
||||
0x28 U+0088
|
||||
0x29 U+0089
|
||||
0x2a U+008a
|
||||
0x2b U+008b
|
||||
0x2c U+008c
|
||||
0x2d U+0005
|
||||
0x2e U+0006
|
||||
0x2f U+0007
|
||||
0x30 U+0090
|
||||
0x31 U+0091
|
||||
0x32 U+0016
|
||||
0x33 U+0093
|
||||
0x34 U+0094
|
||||
0x35 U+0095
|
||||
0x36 U+0096
|
||||
0x37 U+0004
|
||||
0x38 U+0098
|
||||
0x39 U+0099
|
||||
0x3a U+009a
|
||||
0x3b U+009b
|
||||
0x3c U+0014
|
||||
0x3d U+0015
|
||||
0x3e U+009e
|
||||
0x3f U+001a
|
||||
0x40 U+0020
|
||||
0x41 U+00a0
|
||||
0x42 U+0452
|
||||
0x43 U+0491
|
||||
0x44 U+0451
|
||||
0x45 U+0454
|
||||
0x46 U+0455
|
||||
0x47 U+0456
|
||||
0x48 U+0457
|
||||
0x49 U+0458
|
||||
0x4a U+005b
|
||||
0x4b U+002e
|
||||
0x4c U+003c
|
||||
0x4d U+0028
|
||||
0x4e U+002b
|
||||
0x4f U+0021
|
||||
0x50 U+0026
|
||||
0x51 U+0459
|
||||
0x52 U+045a
|
||||
0x53 U+045b
|
||||
0x54 U+045c
|
||||
0x55 U+045e
|
||||
0x56 U+045f
|
||||
0x57 U+042a
|
||||
0x58 U+2116
|
||||
0x59 U+0402
|
||||
0x5a U+005d
|
||||
0x5b U+0024
|
||||
0x5c U+002a
|
||||
0x5d U+0029
|
||||
0x5e U+003b
|
||||
0x5f U+005e
|
||||
0x60 U+002d
|
||||
0x61 U+002f
|
||||
0x62 U+0490
|
||||
0x63 U+0401
|
||||
0x64 U+0404
|
||||
0x65 U+0405
|
||||
0x66 U+0406
|
||||
0x67 U+0407
|
||||
0x68 U+0408
|
||||
0x69 U+0409
|
||||
0x6a U+007c
|
||||
0x6b U+002c
|
||||
0x6c U+0025
|
||||
0x6d U+005f
|
||||
0x6e U+003e
|
||||
0x6f U+003f
|
||||
0x70 U+040a
|
||||
0x71 U+040b
|
||||
0x72 U+040c
|
||||
0x73 U+00ad
|
||||
0x74 U+040e
|
||||
0x75 U+040f
|
||||
0x76 U+044e
|
||||
0x77 U+0430
|
||||
0x78 U+0431
|
||||
0x79 U+0060
|
||||
0x7a U+003a
|
||||
0x7b U+0023
|
||||
0x7c U+0040
|
||||
0x7d U+0027
|
||||
0x7e U+003d
|
||||
0x7f U+0022
|
||||
0x80 U+0446
|
||||
0x81 U+0061
|
||||
0x82 U+0062
|
||||
0x83 U+0063
|
||||
0x84 U+0064
|
||||
0x85 U+0065
|
||||
0x86 U+0066
|
||||
0x87 U+0067
|
||||
0x88 U+0068
|
||||
0x89 U+0069
|
||||
0x8a U+0434
|
||||
0x8b U+0435
|
||||
0x8c U+0444
|
||||
0x8d U+0433
|
||||
0x8e U+0445
|
||||
0x8f U+0438
|
||||
0x90 U+0439
|
||||
0x91 U+006a
|
||||
0x92 U+006b
|
||||
0x93 U+006c
|
||||
0x94 U+006d
|
||||
0x95 U+006e
|
||||
0x96 U+006f
|
||||
0x97 U+0070
|
||||
0x98 U+0071
|
||||
0x99 U+0072
|
||||
0x9a U+043a
|
||||
0x9b U+043b
|
||||
0x9c U+043c
|
||||
0x9d U+043d
|
||||
0x9e U+043e
|
||||
0x9f U+043f
|
||||
0xa0 U+044f
|
||||
0xa1 U+007e
|
||||
0xa2 U+0073
|
||||
0xa3 U+0074
|
||||
0xa4 U+0075
|
||||
0xa5 U+0076
|
||||
0xa6 U+0077
|
||||
0xa7 U+0078
|
||||
0xa8 U+0079
|
||||
0xa9 U+007a
|
||||
0xaa U+0440
|
||||
0xab U+0441
|
||||
0xac U+0442
|
||||
0xad U+0443
|
||||
0xae U+0436
|
||||
0xaf U+0432
|
||||
0xb0 U+044c
|
||||
0xb1 U+044b
|
||||
0xb2 U+0437
|
||||
0xb3 U+0448
|
||||
0xb4 U+044d
|
||||
0xb5 U+0449
|
||||
0xb6 U+0447
|
||||
0xb7 U+044a
|
||||
0xb8 U+042e
|
||||
0xb9 U+0410
|
||||
0xba U+0411
|
||||
0xbb U+0426
|
||||
0xbc U+0414
|
||||
0xbd U+0415
|
||||
0xbe U+0424
|
||||
0xbf U+0413
|
||||
0xc0 U+007b
|
||||
0xc1 U+0041
|
||||
0xc2 U+0042
|
||||
0xc3 U+0043
|
||||
0xc4 U+0044
|
||||
0xc5 U+0045
|
||||
0xc6 U+0046
|
||||
0xc7 U+0047
|
||||
0xc8 U+0048
|
||||
0xc9 U+0049
|
||||
0xca U+0425
|
||||
0xcb U+0418
|
||||
0xcc U+0419
|
||||
0xcd U+041a
|
||||
0xce U+041b
|
||||
0xcf U+041c
|
||||
0xd0 U+007d
|
||||
0xd1 U+004a
|
||||
0xd2 U+004b
|
||||
0xd3 U+004c
|
||||
0xd4 U+004d
|
||||
0xd5 U+004e
|
||||
0xd6 U+004f
|
||||
0xd7 U+0050
|
||||
0xd8 U+0051
|
||||
0xd9 U+0052
|
||||
0xda U+041d
|
||||
0xdb U+041e
|
||||
0xdc U+041f
|
||||
0xdd U+042f
|
||||
0xde U+0420
|
||||
0xdf U+0421
|
||||
0xe0 U+005c
|
||||
0xe1 U+00a7
|
||||
0xe2 U+0053
|
||||
0xe3 U+0054
|
||||
0xe4 U+0055
|
||||
0xe5 U+0056
|
||||
0xe6 U+0057
|
||||
0xe7 U+0058
|
||||
0xe8 U+0059
|
||||
0xe9 U+005a
|
||||
0xea U+0422
|
||||
0xeb U+0423
|
||||
0xec U+0416
|
||||
0xed U+0412
|
||||
0xee U+042c
|
||||
0xef U+042b
|
||||
0xf0 U+0030
|
||||
0xf1 U+0031
|
||||
0xf2 U+0032
|
||||
0xf3 U+0033
|
||||
0xf4 U+0034
|
||||
0xf5 U+0035
|
||||
0xf6 U+0036
|
||||
0xf7 U+0037
|
||||
0xf8 U+0038
|
||||
0xf9 U+0039
|
||||
0xfa U+0417
|
||||
0xfb U+0428
|
||||
0xfc U+042d
|
||||
0xfd U+0429
|
||||
0xfe U+0427
|
||||
0xff U+009f
|
1
jdk/make/tools/CharsetMapping/IBM1123.nr
Normal file
1
jdk/make/tools/CharsetMapping/IBM1123.nr
Normal file
@ -0,0 +1 @@
|
||||
0x25 U+000a
|
257
jdk/make/tools/CharsetMapping/IBM1124.map
Normal file
257
jdk/make/tools/CharsetMapping/IBM1124.map
Normal file
@ -0,0 +1,257 @@
|
||||
#Generated from IBM1124.java
|
||||
0x00 U+0000
|
||||
0x01 U+0001
|
||||
0x02 U+0002
|
||||
0x03 U+0003
|
||||
0x04 U+0004
|
||||
0x05 U+0005
|
||||
0x06 U+0006
|
||||
0x07 U+0007
|
||||
0x08 U+0008
|
||||
0x09 U+0009
|
||||
0x0a U+000a
|
||||
0x0b U+000b
|
||||
0x0c U+000c
|
||||
0x0d U+000d
|
||||
0x0e U+000e
|
||||
0x0f U+000f
|
||||
0x10 U+0010
|
||||
0x11 U+0011
|
||||
0x12 U+0012
|
||||
0x13 U+0013
|
||||
0x14 U+0014
|
||||
0x15 U+0015
|
||||
0x16 U+0016
|
||||
0x17 U+0017
|
||||
0x18 U+0018
|
||||
0x19 U+0019
|
||||
0x1a U+001a
|
||||
0x1b U+001b
|
||||
0x1c U+001c
|
||||
0x1d U+001d
|
||||
0x1e U+001e
|
||||
0x1f U+001f
|
||||
0x20 U+0020
|
||||
0x21 U+0021
|
||||
0x22 U+0022
|
||||
0x23 U+0023
|
||||
0x24 U+0024
|
||||
0x25 U+0025
|
||||
0x26 U+0026
|
||||
0x27 U+0027
|
||||
0x28 U+0028
|
||||
0x29 U+0029
|
||||
0x2a U+002a
|
||||
0x2b U+002b
|
||||
0x2c U+002c
|
||||
0x2d U+002d
|
||||
0x2e U+002e
|
||||
0x2f U+002f
|
||||
0x30 U+0030
|
||||
0x31 U+0031
|
||||
0x32 U+0032
|
||||
0x33 U+0033
|
||||
0x34 U+0034
|
||||
0x35 U+0035
|
||||
0x36 U+0036
|
||||
0x37 U+0037
|
||||
0x38 U+0038
|
||||
0x39 U+0039
|
||||
0x3a U+003a
|
||||
0x3b U+003b
|
||||
0x3c U+003c
|
||||
0x3d U+003d
|
||||
0x3e U+003e
|
||||
0x3f U+003f
|
||||
0x40 U+0040
|
||||
0x41 U+0041
|
||||
0x42 U+0042
|
||||
0x43 U+0043
|
||||
0x44 U+0044
|
||||
0x45 U+0045
|
||||
0x46 U+0046
|
||||
0x47 U+0047
|
||||
0x48 U+0048
|
||||
0x49 U+0049
|
||||
0x4a U+004a
|
||||
0x4b U+004b
|
||||
0x4c U+004c
|
||||
0x4d U+004d
|
||||
0x4e U+004e
|
||||
0x4f U+004f
|
||||
0x50 U+0050
|
||||
0x51 U+0051
|
||||
0x52 U+0052
|
||||
0x53 U+0053
|
||||
0x54 U+0054
|
||||
0x55 U+0055
|
||||
0x56 U+0056
|
||||
0x57 U+0057
|
||||
0x58 U+0058
|
||||
0x59 U+0059
|
||||
0x5a U+005a
|
||||
0x5b U+005b
|
||||
0x5c U+005c
|
||||
0x5d U+005d
|
||||
0x5e U+005e
|
||||
0x5f U+005f
|
||||
0x60 U+0060
|
||||
0x61 U+0061
|
||||
0x62 U+0062
|
||||
0x63 U+0063
|
||||
0x64 U+0064
|
||||
0x65 U+0065
|
||||
0x66 U+0066
|
||||
0x67 U+0067
|
||||
0x68 U+0068
|
||||
0x69 U+0069
|
||||
0x6a U+006a
|
||||
0x6b U+006b
|
||||
0x6c U+006c
|
||||
0x6d U+006d
|
||||
0x6e U+006e
|
||||
0x6f U+006f
|
||||
0x70 U+0070
|
||||
0x71 U+0071
|
||||
0x72 U+0072
|
||||
0x73 U+0073
|
||||
0x74 U+0074
|
||||
0x75 U+0075
|
||||
0x76 U+0076
|
||||
0x77 U+0077
|
||||
0x78 U+0078
|
||||
0x79 U+0079
|
||||
0x7a U+007a
|
||||
0x7b U+007b
|
||||
0x7c U+007c
|
||||
0x7d U+007d
|
||||
0x7e U+007e
|
||||
0x7f U+007f
|
||||
0x80 U+0080
|
||||
0x81 U+0081
|
||||
0x82 U+0082
|
||||
0x83 U+0083
|
||||
0x84 U+0084
|
||||
0x85 U+0085
|
||||
0x86 U+0086
|
||||
0x87 U+0087
|
||||
0x88 U+0088
|
||||
0x89 U+0089
|
||||
0x8a U+008a
|
||||
0x8b U+008b
|
||||
0x8c U+008c
|
||||
0x8d U+008d
|
||||
0x8e U+008e
|
||||
0x8f U+008f
|
||||
0x90 U+0090
|
||||
0x91 U+0091
|
||||
0x92 U+0092
|
||||
0x93 U+0093
|
||||
0x94 U+0094
|
||||
0x95 U+0095
|
||||
0x96 U+0096
|
||||
0x97 U+0097
|
||||
0x98 U+0098
|
||||
0x99 U+0099
|
||||
0x9a U+009a
|
||||
0x9b U+009b
|
||||
0x9c U+009c
|
||||
0x9d U+009d
|
||||
0x9e U+009e
|
||||
0x9f U+009f
|
||||
0xa0 U+00a0
|
||||
0xa1 U+0401
|
||||
0xa2 U+0402
|
||||
0xa3 U+0490
|
||||
0xa4 U+0404
|
||||
0xa5 U+0405
|
||||
0xa6 U+0406
|
||||
0xa7 U+0407
|
||||
0xa8 U+0408
|
||||
0xa9 U+0409
|
||||
0xaa U+040a
|
||||
0xab U+040b
|
||||
0xac U+040c
|
||||
0xad U+00ad
|
||||
0xae U+040e
|
||||
0xaf U+040f
|
||||
0xb0 U+0410
|
||||
0xb1 U+0411
|
||||
0xb2 U+0412
|
||||
0xb3 U+0413
|
||||
0xb4 U+0414
|
||||
0xb5 U+0415
|
||||
0xb6 U+0416
|
||||
0xb7 U+0417
|
||||
0xb8 U+0418
|
||||
0xb9 U+0419
|
||||
0xba U+041a
|
||||
0xbb U+041b
|
||||
0xbc U+041c
|
||||
0xbd U+041d
|
||||
0xbe U+041e
|
||||
0xbf U+041f
|
||||
0xc0 U+0420
|
||||
0xc1 U+0421
|
||||
0xc2 U+0422
|
||||
0xc3 U+0423
|
||||
0xc4 U+0424
|
||||
0xc5 U+0425
|
||||
0xc6 U+0426
|
||||
0xc7 U+0427
|
||||
0xc8 U+0428
|
||||
0xc9 U+0429
|
||||
0xca U+042a
|
||||
0xcb U+042b
|
||||
0xcc U+042c
|
||||
0xcd U+042d
|
||||
0xce U+042e
|
||||
0xcf U+042f
|
||||
0xd0 U+0430
|
||||
0xd1 U+0431
|
||||
0xd2 U+0432
|
||||
0xd3 U+0433
|
||||
0xd4 U+0434
|
||||
0xd5 U+0435
|
||||
0xd6 U+0436
|
||||
0xd7 U+0437
|
||||
0xd8 U+0438
|
||||
0xd9 U+0439
|
||||
0xda U+043a
|
||||
0xdb U+043b
|
||||
0xdc U+043c
|
||||
0xdd U+043d
|
||||
0xde U+043e
|
||||
0xdf U+043f
|
||||
0xe0 U+0440
|
||||
0xe1 U+0441
|
||||
0xe2 U+0442
|
||||
0xe3 U+0443
|
||||
0xe4 U+0444
|
||||
0xe5 U+0445
|
||||
0xe6 U+0446
|
||||
0xe7 U+0447
|
||||
0xe8 U+0448
|
||||
0xe9 U+0449
|
||||
0xea U+044a
|
||||
0xeb U+044b
|
||||
0xec U+044c
|
||||
0xed U+044d
|
||||
0xee U+044e
|
||||
0xef U+044f
|
||||
0xf0 U+2116
|
||||
0xf1 U+0451
|
||||
0xf2 U+0452
|
||||
0xf3 U+0491
|
||||
0xf4 U+0454
|
||||
0xf5 U+0455
|
||||
0xf6 U+0456
|
||||
0xf7 U+0457
|
||||
0xf8 U+0458
|
||||
0xf9 U+0459
|
||||
0xfa U+045a
|
||||
0xfb U+045b
|
||||
0xfc U+045c
|
||||
0xfd U+00a7
|
||||
0xfe U+045e
|
||||
0xff U+045f
|
1
jdk/make/tools/CharsetMapping/IBM1140.c2b
Normal file
1
jdk/make/tools/CharsetMapping/IBM1140.c2b
Normal file
@ -0,0 +1 @@
|
||||
0x15 U+0085
|
257
jdk/make/tools/CharsetMapping/IBM1140.map
Normal file
257
jdk/make/tools/CharsetMapping/IBM1140.map
Normal file
@ -0,0 +1,257 @@
|
||||
#Generated from IBM037.java with 0x9f <-> u+20ac
|
||||
0x00 U+0000
|
||||
0x01 U+0001
|
||||
0x02 U+0002
|
||||
0x03 U+0003
|
||||
0x04 U+009c
|
||||
0x05 U+0009
|
||||
0x06 U+0086
|
||||
0x07 U+007f
|
||||
0x08 U+0097
|
||||
0x09 U+008d
|
||||
0x0a U+008e
|
||||
0x0b U+000b
|
||||
0x0c U+000c
|
||||
0x0d U+000d
|
||||
0x0e U+000e
|
||||
0x0f U+000f
|
||||
0x10 U+0010
|
||||
0x11 U+0011
|
||||
0x12 U+0012
|
||||
0x13 U+0013
|
||||
0x14 U+009d
|
||||
0x15 U+000a
|
||||
0x16 U+0008
|
||||
0x17 U+0087
|
||||
0x18 U+0018
|
||||
0x19 U+0019
|
||||
0x1a U+0092
|
||||
0x1b U+008f
|
||||
0x1c U+001c
|
||||
0x1d U+001d
|
||||
0x1e U+001e
|
||||
0x1f U+001f
|
||||
0x20 U+0080
|
||||
0x21 U+0081
|
||||
0x22 U+0082
|
||||
0x23 U+0083
|
||||
0x24 U+0084
|
||||
0x25 U+000a
|
||||
0x26 U+0017
|
||||
0x27 U+001b
|
||||
0x28 U+0088
|
||||
0x29 U+0089
|
||||
0x2a U+008a
|
||||
0x2b U+008b
|
||||
0x2c U+008c
|
||||
0x2d U+0005
|
||||
0x2e U+0006
|
||||
0x2f U+0007
|
||||
0x30 U+0090
|
||||
0x31 U+0091
|
||||
0x32 U+0016
|
||||
0x33 U+0093
|
||||
0x34 U+0094
|
||||
0x35 U+0095
|
||||
0x36 U+0096
|
||||
0x37 U+0004
|
||||
0x38 U+0098
|
||||
0x39 U+0099
|
||||
0x3a U+009a
|
||||
0x3b U+009b
|
||||
0x3c U+0014
|
||||
0x3d U+0015
|
||||
0x3e U+009e
|
||||
0x3f U+001a
|
||||
0x40 U+0020
|
||||
0x41 U+00a0
|
||||
0x42 U+00e2
|
||||
0x43 U+00e4
|
||||
0x44 U+00e0
|
||||
0x45 U+00e1
|
||||
0x46 U+00e3
|
||||
0x47 U+00e5
|
||||
0x48 U+00e7
|
||||
0x49 U+00f1
|
||||
0x4a U+00a2
|
||||
0x4b U+002e
|
||||
0x4c U+003c
|
||||
0x4d U+0028
|
||||
0x4e U+002b
|
||||
0x4f U+007c
|
||||
0x50 U+0026
|
||||
0x51 U+00e9
|
||||
0x52 U+00ea
|
||||
0x53 U+00eb
|
||||
0x54 U+00e8
|
||||
0x55 U+00ed
|
||||
0x56 U+00ee
|
||||
0x57 U+00ef
|
||||
0x58 U+00ec
|
||||
0x59 U+00df
|
||||
0x5a U+0021
|
||||
0x5b U+0024
|
||||
0x5c U+002a
|
||||
0x5d U+0029
|
||||
0x5e U+003b
|
||||
0x5f U+00ac
|
||||
0x60 U+002d
|
||||
0x61 U+002f
|
||||
0x62 U+00c2
|
||||
0x63 U+00c4
|
||||
0x64 U+00c0
|
||||
0x65 U+00c1
|
||||
0x66 U+00c3
|
||||
0x67 U+00c5
|
||||
0x68 U+00c7
|
||||
0x69 U+00d1
|
||||
0x6a U+00a6
|
||||
0x6b U+002c
|
||||
0x6c U+0025
|
||||
0x6d U+005f
|
||||
0x6e U+003e
|
||||
0x6f U+003f
|
||||
0x70 U+00f8
|
||||
0x71 U+00c9
|
||||
0x72 U+00ca
|
||||
0x73 U+00cb
|
||||
0x74 U+00c8
|
||||
0x75 U+00cd
|
||||
0x76 U+00ce
|
||||
0x77 U+00cf
|
||||
0x78 U+00cc
|
||||
0x79 U+0060
|
||||
0x7a U+003a
|
||||
0x7b U+0023
|
||||
0x7c U+0040
|
||||
0x7d U+0027
|
||||
0x7e U+003d
|
||||
0x7f U+0022
|
||||
0x80 U+00d8
|
||||
0x81 U+0061
|
||||
0x82 U+0062
|
||||
0x83 U+0063
|
||||
0x84 U+0064
|
||||
0x85 U+0065
|
||||
0x86 U+0066
|
||||
0x87 U+0067
|
||||
0x88 U+0068
|
||||
0x89 U+0069
|
||||
0x8a U+00ab
|
||||
0x8b U+00bb
|
||||
0x8c U+00f0
|
||||
0x8d U+00fd
|
||||
0x8e U+00fe
|
||||
0x8f U+00b1
|
||||
0x90 U+00b0
|
||||
0x91 U+006a
|
||||
0x92 U+006b
|
||||
0x93 U+006c
|
||||
0x94 U+006d
|
||||
0x95 U+006e
|
||||
0x96 U+006f
|
||||
0x97 U+0070
|
||||
0x98 U+0071
|
||||
0x99 U+0072
|
||||
0x9a U+00aa
|
||||
0x9b U+00ba
|
||||
0x9c U+00e6
|
||||
0x9d U+00b8
|
||||
0x9e U+00c6
|
||||
0x9f U+20ac
|
||||
0xa0 U+00b5
|
||||
0xa1 U+007e
|
||||
0xa2 U+0073
|
||||
0xa3 U+0074
|
||||
0xa4 U+0075
|
||||
0xa5 U+0076
|
||||
0xa6 U+0077
|
||||
0xa7 U+0078
|
||||
0xa8 U+0079
|
||||
0xa9 U+007a
|
||||
0xaa U+00a1
|
||||
0xab U+00bf
|
||||
0xac U+00d0
|
||||
0xad U+00dd
|
||||
0xae U+00de
|
||||
0xaf U+00ae
|
||||
0xb0 U+005e
|
||||
0xb1 U+00a3
|
||||
0xb2 U+00a5
|
||||
0xb3 U+00b7
|
||||
0xb4 U+00a9
|
||||
0xb5 U+00a7
|
||||
0xb6 U+00b6
|
||||
0xb7 U+00bc
|
||||
0xb8 U+00bd
|
||||
0xb9 U+00be
|
||||
0xba U+005b
|
||||
0xbb U+005d
|
||||
0xbc U+00af
|
||||
0xbd U+00a8
|
||||
0xbe U+00b4
|
||||
0xbf U+00d7
|
||||
0xc0 U+007b
|
||||
0xc1 U+0041
|
||||
0xc2 U+0042
|
||||
0xc3 U+0043
|
||||
0xc4 U+0044
|
||||
0xc5 U+0045
|
||||
0xc6 U+0046
|
||||
0xc7 U+0047
|
||||
0xc8 U+0048
|
||||
0xc9 U+0049
|
||||
0xca U+00ad
|
||||
0xcb U+00f4
|
||||
0xcc U+00f6
|
||||
0xcd U+00f2
|
||||
0xce U+00f3
|
||||
0xcf U+00f5
|
||||
0xd0 U+007d
|
||||
0xd1 U+004a
|
||||
0xd2 U+004b
|
||||
0xd3 U+004c
|
||||
0xd4 U+004d
|
||||
0xd5 U+004e
|
||||
0xd6 U+004f
|
||||
0xd7 U+0050
|
||||
0xd8 U+0051
|
||||
0xd9 U+0052
|
||||
0xda U+00b9
|
||||
0xdb U+00fb
|
||||
0xdc U+00fc
|
||||
0xdd U+00f9
|
||||
0xde U+00fa
|
||||
0xdf U+00ff
|
||||
0xe0 U+005c
|
||||
0xe1 U+00f7
|
||||
0xe2 U+0053
|
||||
0xe3 U+0054
|
||||
0xe4 U+0055
|
||||
0xe5 U+0056
|
||||
0xe6 U+0057
|
||||
0xe7 U+0058
|
||||
0xe8 U+0059
|
||||
0xe9 U+005a
|
||||
0xea U+00b2
|
||||
0xeb U+00d4
|
||||
0xec U+00d6
|
||||
0xed U+00d2
|
||||
0xee U+00d3
|
||||
0xef U+00d5
|
||||
0xf0 U+0030
|
||||
0xf1 U+0031
|
||||
0xf2 U+0032
|
||||
0xf3 U+0033
|
||||
0xf4 U+0034
|
||||
0xf5 U+0035
|
||||
0xf6 U+0036
|
||||
0xf7 U+0037
|
||||
0xf8 U+0038
|
||||
0xf9 U+0039
|
||||
0xfa U+00b3
|
||||
0xfb U+00db
|
||||
0xfc U+00dc
|
||||
0xfd U+00d9
|
||||
0xfe U+00da
|
||||
0xff U+009f
|
1
jdk/make/tools/CharsetMapping/IBM1141.c2b
Normal file
1
jdk/make/tools/CharsetMapping/IBM1141.c2b
Normal file
@ -0,0 +1 @@
|
||||
0x15 U+0085
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user