提交 d9bb8b80 编写于 作者: H hseigel

7102489: RFE: cleanup jlong typedef on __APPLE__and _LLP64 systems.

Summary: Define jlong as long on all LP64 platforms and add JLONG_FORMAT macro.
Reviewed-by: dholmes, coleenp, mikael, kvn
上级 96dde0f8
/* /*
* Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -38,14 +38,9 @@ ...@@ -38,14 +38,9 @@
#define JNICALL #define JNICALL
typedef int jint; typedef int jint;
#if defined(_LP64) && !defined(__APPLE__) #if defined(_LP64)
typedef long jlong; typedef long jlong;
#else #else
/*
* On _LP64 __APPLE__ "long" and "long long" are both 64 bits,
* but we use the "long long" typedef to avoid complaints from
* the __APPLE__ compiler about fprintf formats.
*/
typedef long long jlong; typedef long long jlong;
#endif #endif
......
/* /*
* Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -59,14 +59,6 @@ inline const char* os::path_separator() { ...@@ -59,14 +59,6 @@ inline const char* os::path_separator() {
return ":"; return ":";
} }
inline const char* os::jlong_format_specifier() {
return "%lld";
}
inline const char* os::julong_format_specifier() {
return "%llu";
}
// File names are case-sensitive on windows only // File names are case-sensitive on windows only
inline int os::file_name_strcmp(const char* s1, const char* s2) { inline int os::file_name_strcmp(const char* s1, const char* s2) {
return strcmp(s1, s2); return strcmp(s1, s2);
......
/* /*
* Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -68,14 +68,6 @@ inline const char* os::path_separator() { ...@@ -68,14 +68,6 @@ inline const char* os::path_separator() {
return ":"; return ":";
} }
inline const char* os::jlong_format_specifier() {
return "%lld";
}
inline const char* os::julong_format_specifier() {
return "%llu";
}
// File names are case-sensitive on windows only // File names are case-sensitive on windows only
inline int os::file_name_strcmp(const char* s1, const char* s2) { inline int os::file_name_strcmp(const char* s1, const char* s2) {
return strcmp(s1, s2); return strcmp(s1, s2);
......
/* /*
* Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -1876,11 +1876,6 @@ void SplashFreeLibrary() { ...@@ -1876,11 +1876,6 @@ void SplashFreeLibrary() {
} }
} }
const char *
jlong_format_specifier() {
return "%lld";
}
/* /*
* Block current thread and continue execution in a new thread * Block current thread and continue execution in a new thread
*/ */
......
/* /*
* Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -64,6 +64,12 @@ ...@@ -64,6 +64,12 @@
#define Counter2Micros(counts) (1) #define Counter2Micros(counts) (1)
#endif /* HAVE_GETHRTIME */ #endif /* HAVE_GETHRTIME */
#ifdef _LP64
#define JLONG_FORMAT "%ld"
#else
#define JLONG_FORMAT "%lld"
#endif
/* /*
* Function prototypes. * Function prototypes.
*/ */
......
/* /*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -50,9 +50,6 @@ inline const char* os::file_separator() { return "/"; } ...@@ -50,9 +50,6 @@ inline const char* os::file_separator() { return "/"; }
inline const char* os::line_separator() { return "\n"; } inline const char* os::line_separator() { return "\n"; }
inline const char* os::path_separator() { return ":"; } inline const char* os::path_separator() { return ":"; }
inline const char* os::jlong_format_specifier() { return "%lld"; }
inline const char* os::julong_format_specifier() { return "%llu"; }
// File names are case-sensitive on windows only // File names are case-sensitive on windows only
inline int os::file_name_strcmp(const char* s1, const char* s2) { inline int os::file_name_strcmp(const char* s1, const char* s2) {
return strcmp(s1, s2); return strcmp(s1, s2);
......
/* /*
* Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -1323,11 +1323,6 @@ void SplashFreeLibrary() { ...@@ -1323,11 +1323,6 @@ void SplashFreeLibrary() {
} }
} }
const char *
jlong_format_specifier() {
return "%I64d";
}
/* /*
* Block current thread and continue execution in a new thread * Block current thread and continue execution in a new thread
*/ */
......
/* /*
* Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -69,6 +69,8 @@ extern jlong Counter2Micros(jlong counts); ...@@ -69,6 +69,8 @@ extern jlong Counter2Micros(jlong counts);
extern int _main(int argc, char **argv); extern int _main(int argc, char **argv);
#endif #endif
#define JLONG_FORMAT "%I64d"
/* /*
* Function prototypes. * Function prototypes.
*/ */
......
/* /*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -2946,7 +2946,7 @@ char* os::pd_reserve_memory(size_t bytes, char* addr, size_t alignment_hint) { ...@@ -2946,7 +2946,7 @@ char* os::pd_reserve_memory(size_t bytes, char* addr, size_t alignment_hint) {
} }
if( Verbose && PrintMiscellaneous ) { if( Verbose && PrintMiscellaneous ) {
reserveTimer.stop(); reserveTimer.stop();
tty->print_cr("reserve_memory of %Ix bytes took %ld ms (%ld ticks)", bytes, tty->print_cr("reserve_memory of %Ix bytes took " JLONG_FORMAT " ms (" JLONG_FORMAT " ticks)", bytes,
reserveTimer.milliseconds(), reserveTimer.ticks()); reserveTimer.milliseconds(), reserveTimer.ticks());
} }
} }
...@@ -4305,7 +4305,7 @@ char* os::pd_map_memory(int fd, const char* file_name, size_t file_offset, ...@@ -4305,7 +4305,7 @@ char* os::pd_map_memory(int fd, const char* file_name, size_t file_offset,
if (hFile == NULL) { if (hFile == NULL) {
if (PrintMiscellaneous && Verbose) { if (PrintMiscellaneous && Verbose) {
DWORD err = GetLastError(); DWORD err = GetLastError();
tty->print_cr("CreateFile() failed: GetLastError->%ld."); tty->print_cr("CreateFile() failed: GetLastError->%ld.", err);
} }
return NULL; return NULL;
} }
...@@ -4355,7 +4355,7 @@ char* os::pd_map_memory(int fd, const char* file_name, size_t file_offset, ...@@ -4355,7 +4355,7 @@ char* os::pd_map_memory(int fd, const char* file_name, size_t file_offset,
if (hMap == NULL) { if (hMap == NULL) {
if (PrintMiscellaneous && Verbose) { if (PrintMiscellaneous && Verbose) {
DWORD err = GetLastError(); DWORD err = GetLastError();
tty->print_cr("CreateFileMapping() failed: GetLastError->%ld."); tty->print_cr("CreateFileMapping() failed: GetLastError->%ld.", err);
} }
CloseHandle(hFile); CloseHandle(hFile);
return NULL; return NULL;
......
/* /*
* Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -38,9 +38,6 @@ inline const char* os::line_separator() { return "\r\n"; } ...@@ -38,9 +38,6 @@ inline const char* os::line_separator() { return "\r\n"; }
inline const char* os::path_separator() { return ";"; } inline const char* os::path_separator() { return ";"; }
inline const char* os::dll_file_extension() { return ".dll"; } inline const char* os::dll_file_extension() { return ".dll"; }
inline const char* os::jlong_format_specifier() { return "%I64d"; }
inline const char* os::julong_format_specifier() { return "%I64u"; }
inline const int os::default_file_open_flags() { return O_BINARY | O_NOINHERIT;} inline const int os::default_file_open_flags() { return O_BINARY | O_NOINHERIT;}
// File names are case-insensitive on windows only // File names are case-insensitive on windows only
......
/* /*
* Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -808,7 +808,7 @@ CheckJvmType(int *pargc, char ***argv, jboolean speculative) { ...@@ -808,7 +808,7 @@ CheckJvmType(int *pargc, char ***argv, jboolean speculative) {
static int static int
parse_stack_size(const char *s, jlong *result) { parse_stack_size(const char *s, jlong *result) {
jlong n = 0; jlong n = 0;
int args_read = sscanf(s, jlong_format_specifier(), &n); int args_read = sscanf(s, JLONG_FORMAT, &n);
if (args_read != 1) { if (args_read != 1) {
return 0; return 0;
} }
......
/* /*
* Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -86,7 +86,6 @@ void ReportExceptionDescription(JNIEnv * env); ...@@ -86,7 +86,6 @@ void ReportExceptionDescription(JNIEnv * env);
jboolean RemovableMachineDependentOption(char * option); jboolean RemovableMachineDependentOption(char * option);
void PrintMachineDependentOptions(); void PrintMachineDependentOptions();
const char *jlong_format_specifier();
/* /*
* Block current thread and continue execution in new thread * Block current thread and continue execution in new thread
*/ */
......
/* /*
* Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -360,7 +360,7 @@ void InstructionPrinter::do_Constant(Constant* x) { ...@@ -360,7 +360,7 @@ void InstructionPrinter::do_Constant(Constant* x) {
ValueType* t = x->type(); ValueType* t = x->type();
switch (t->tag()) { switch (t->tag()) {
case intTag : output()->print("%d" , t->as_IntConstant ()->value()); break; case intTag : output()->print("%d" , t->as_IntConstant ()->value()); break;
case longTag : output()->print(os::jlong_format_specifier(), t->as_LongConstant()->value()); output()->print("L"); break; case longTag : output()->print(JLONG_FORMAT, t->as_LongConstant()->value()); output()->print("L"); break;
case floatTag : output()->print("%g" , t->as_FloatConstant ()->value()); break; case floatTag : output()->print("%g" , t->as_FloatConstant ()->value()); break;
case doubleTag : output()->print("%gD" , t->as_DoubleConstant()->value()); break; case doubleTag : output()->print("%gD" , t->as_DoubleConstant()->value()); break;
case objectTag : print_object(x); break; case objectTag : print_object(x); break;
......
/* /*
* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -1563,7 +1563,7 @@ void LIR_Const::print_value_on(outputStream* out) const { ...@@ -1563,7 +1563,7 @@ void LIR_Const::print_value_on(outputStream* out) const {
switch (type()) { switch (type()) {
case T_ADDRESS:out->print("address:%d",as_jint()); break; case T_ADDRESS:out->print("address:%d",as_jint()); break;
case T_INT: out->print("int:%d", as_jint()); break; case T_INT: out->print("int:%d", as_jint()); break;
case T_LONG: out->print("lng:%lld", as_jlong()); break; case T_LONG: out->print("lng:" JLONG_FORMAT, as_jlong()); break;
case T_FLOAT: out->print("flt:%f", as_jfloat()); break; case T_FLOAT: out->print("flt:%f", as_jfloat()); break;
case T_DOUBLE: out->print("dbl:%f", as_jdouble()); break; case T_DOUBLE: out->print("dbl:%f", as_jdouble()); break;
case T_OBJECT: out->print("obj:0x%x", as_jobject()); break; case T_OBJECT: out->print("obj:0x%x", as_jobject()); break;
......
/* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. /* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -645,7 +645,7 @@ class CompileReplay : public StackObj { ...@@ -645,7 +645,7 @@ class CompileReplay : public StackObj {
java_mirror->bool_field_put(fd.offset(), value); java_mirror->bool_field_put(fd.offset(), value);
} else if (strcmp(field_signature, "J") == 0) { } else if (strcmp(field_signature, "J") == 0) {
jlong value; jlong value;
if (sscanf(string_value, INT64_FORMAT, &value) != 1) { if (sscanf(string_value, JLONG_FORMAT, &value) != 1) {
fprintf(stderr, "Error parsing long: %s\n", string_value); fprintf(stderr, "Error parsing long: %s\n", string_value);
return; return;
} }
......
/* /*
* Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -555,7 +555,7 @@ void CompactibleFreeListSpace::reportFreeListStatistics() const { ...@@ -555,7 +555,7 @@ void CompactibleFreeListSpace::reportFreeListStatistics() const {
reportIndexedFreeListStatistics(); reportIndexedFreeListStatistics();
size_t total_size = totalSizeInIndexedFreeLists() + size_t total_size = totalSizeInIndexedFreeLists() +
_dictionary->total_chunk_size(DEBUG_ONLY(freelistLock())); _dictionary->total_chunk_size(DEBUG_ONLY(freelistLock()));
gclog_or_tty->print(" free=%ld frag=%1.4f\n", total_size, flsFrag()); gclog_or_tty->print(" free=" SIZE_FORMAT " frag=%1.4f\n", total_size, flsFrag());
} }
} }
......
/* /*
* Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -3338,7 +3338,7 @@ bool ConcurrentMarkSweepGeneration::grow_by(size_t bytes) { ...@@ -3338,7 +3338,7 @@ bool ConcurrentMarkSweepGeneration::grow_by(size_t bytes) {
if (Verbose && PrintGC) { if (Verbose && PrintGC) {
size_t new_mem_size = _virtual_space.committed_size(); size_t new_mem_size = _virtual_space.committed_size();
size_t old_mem_size = new_mem_size - bytes; size_t old_mem_size = new_mem_size - bytes;
gclog_or_tty->print_cr("Expanding %s from %ldK by %ldK to %ldK", gclog_or_tty->print_cr("Expanding %s from " SIZE_FORMAT "K by " SIZE_FORMAT "K to " SIZE_FORMAT "K",
name(), old_mem_size/K, bytes/K, new_mem_size/K); name(), old_mem_size/K, bytes/K, new_mem_size/K);
} }
} }
...@@ -9203,7 +9203,7 @@ void ASConcurrentMarkSweepGeneration::shrink_by(size_t desired_bytes) { ...@@ -9203,7 +9203,7 @@ void ASConcurrentMarkSweepGeneration::shrink_by(size_t desired_bytes) {
if (Verbose && PrintGCDetails) { if (Verbose && PrintGCDetails) {
size_t new_mem_size = _virtual_space.committed_size(); size_t new_mem_size = _virtual_space.committed_size();
size_t old_mem_size = new_mem_size + bytes; size_t old_mem_size = new_mem_size + bytes;
gclog_or_tty->print_cr("Shrinking %s from %ldK by %ldK to %ldK", gclog_or_tty->print_cr("Shrinking %s from " SIZE_FORMAT "K by " SIZE_FORMAT "K to " SIZE_FORMAT "K",
name(), old_mem_size/K, bytes/K, new_mem_size/K); name(), old_mem_size/K, bytes/K, new_mem_size/K);
} }
} }
......
/* /*
* Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -529,7 +529,7 @@ bool PSScavenge::invoke_no_policy() { ...@@ -529,7 +529,7 @@ bool PSScavenge::invoke_no_policy() {
if (PrintTenuringDistribution) { if (PrintTenuringDistribution) {
gclog_or_tty->cr(); gclog_or_tty->cr();
gclog_or_tty->print_cr("Desired survivor size %ld bytes, new threshold %u (max %u)", gclog_or_tty->print_cr("Desired survivor size " SIZE_FORMAT " bytes, new threshold %u (max %u)",
size_policy->calculated_survivor_size_in_bytes(), size_policy->calculated_survivor_size_in_bytes(),
_tenuring_threshold, MaxTenuringThreshold); _tenuring_threshold, MaxTenuringThreshold);
} }
......
/* /*
* Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -96,7 +96,7 @@ uint ageTable::compute_tenuring_threshold(size_t survivor_capacity) { ...@@ -96,7 +96,7 @@ uint ageTable::compute_tenuring_threshold(size_t survivor_capacity) {
if (PrintTenuringDistribution) { if (PrintTenuringDistribution) {
gclog_or_tty->cr(); gclog_or_tty->cr();
gclog_or_tty->print_cr("Desired survivor size %ld bytes, new threshold %u (max %u)", gclog_or_tty->print_cr("Desired survivor size " SIZE_FORMAT " bytes, new threshold %u (max %u)",
desired_survivor_size*oopSize, result, MaxTenuringThreshold); desired_survivor_size*oopSize, result, MaxTenuringThreshold);
} }
......
/* /*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -228,7 +228,7 @@ void Universe::check_alignment(uintx size, uintx alignment, const char* name) { ...@@ -228,7 +228,7 @@ void Universe::check_alignment(uintx size, uintx alignment, const char* name) {
if (size < alignment || size % alignment != 0) { if (size < alignment || size % alignment != 0) {
ResourceMark rm; ResourceMark rm;
stringStream st; stringStream st;
st.print("Size of %s (%ld bytes) must be aligned to %ld bytes", name, size, alignment); st.print("Size of %s (" UINTX_FORMAT " bytes) must be aligned to " UINTX_FORMAT " bytes", name, size, alignment);
char* error = st.as_string(); char* error = st.as_string();
vm_exit_during_initialization(error); vm_exit_during_initialization(error);
} }
......
/* /*
* Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -547,7 +547,7 @@ void IdealGraphPrinter::visit_node(Node *n, bool edges, VectorSet* temp_set) { ...@@ -547,7 +547,7 @@ void IdealGraphPrinter::visit_node(Node *n, bool edges, VectorSet* temp_set) {
// max. 2 chars allowed // max. 2 chars allowed
if (value >= -9 && value <= 99) { if (value >= -9 && value <= 99) {
sprintf(buffer, INT64_FORMAT, value); sprintf(buffer, JLONG_FORMAT, value);
print_prop(short_name, buffer); print_prop(short_name, buffer);
} else { } else {
print_prop(short_name, "L"); print_prop(short_name, "L");
......
/* /*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -1542,10 +1542,10 @@ bool TypeLong::is_finite() const { ...@@ -1542,10 +1542,10 @@ bool TypeLong::is_finite() const {
static const char* longnamenear(jlong x, const char* xname, char* buf, jlong n) { static const char* longnamenear(jlong x, const char* xname, char* buf, jlong n) {
if (n > x) { if (n > x) {
if (n >= x + 10000) return NULL; if (n >= x + 10000) return NULL;
sprintf(buf, "%s+" INT64_FORMAT, xname, n - x); sprintf(buf, "%s+" JLONG_FORMAT, xname, n - x);
} else if (n < x) { } else if (n < x) {
if (n <= x - 10000) return NULL; if (n <= x - 10000) return NULL;
sprintf(buf, "%s-" INT64_FORMAT, xname, x - n); sprintf(buf, "%s-" JLONG_FORMAT, xname, x - n);
} else { } else {
return xname; return xname;
} }
...@@ -1557,11 +1557,11 @@ static const char* longname(char* buf, jlong n) { ...@@ -1557,11 +1557,11 @@ static const char* longname(char* buf, jlong n) {
if (n == min_jlong) if (n == min_jlong)
return "min"; return "min";
else if (n < min_jlong + 10000) else if (n < min_jlong + 10000)
sprintf(buf, "min+" INT64_FORMAT, n - min_jlong); sprintf(buf, "min+" JLONG_FORMAT, n - min_jlong);
else if (n == max_jlong) else if (n == max_jlong)
return "max"; return "max";
else if (n > max_jlong - 10000) else if (n > max_jlong - 10000)
sprintf(buf, "max-" INT64_FORMAT, max_jlong - n); sprintf(buf, "max-" JLONG_FORMAT, max_jlong - n);
else if ((str = longnamenear(max_juint, "maxuint", buf, n)) != NULL) else if ((str = longnamenear(max_juint, "maxuint", buf, n)) != NULL)
return str; return str;
else if ((str = longnamenear(max_jint, "maxint", buf, n)) != NULL) else if ((str = longnamenear(max_jint, "maxint", buf, n)) != NULL)
...@@ -1569,7 +1569,7 @@ static const char* longname(char* buf, jlong n) { ...@@ -1569,7 +1569,7 @@ static const char* longname(char* buf, jlong n) {
else if ((str = longnamenear(min_jint, "minint", buf, n)) != NULL) else if ((str = longnamenear(min_jint, "minint", buf, n)) != NULL)
return str; return str;
else else
sprintf(buf, INT64_FORMAT, n); sprintf(buf, JLONG_FORMAT, n);
return buf; return buf;
} }
......
/* /*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -129,7 +129,7 @@ void AllocationProfiler::print(size_t cutoff) { ...@@ -129,7 +129,7 @@ void AllocationProfiler::print(size_t cutoff) {
assert(!is_active(), "AllocationProfiler cannot be active while printing profile"); assert(!is_active(), "AllocationProfiler cannot be active while printing profile");
tty->cr(); tty->cr();
tty->print_cr("Allocation profile (sizes in bytes, cutoff = %ld bytes):", cutoff * BytesPerWord); tty->print_cr("Allocation profile (sizes in bytes, cutoff = " SIZE_FORMAT " bytes):", cutoff * BytesPerWord);
tty->cr(); tty->cr();
// Print regular instance klasses and basic type array klasses // Print regular instance klasses and basic type array klasses
......
/* /*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -532,7 +532,7 @@ char* SysClassPath::add_jars_to_path(char* path, const char* directory) { ...@@ -532,7 +532,7 @@ char* SysClassPath::add_jars_to_path(char* path, const char* directory) {
// Parses a memory size specification string. // Parses a memory size specification string.
static bool atomull(const char *s, julong* result) { static bool atomull(const char *s, julong* result) {
julong n = 0; julong n = 0;
int args_read = sscanf(s, os::julong_format_specifier(), &n); int args_read = sscanf(s, JULONG_FORMAT, &n);
if (args_read != 1) { if (args_read != 1) {
return false; return false;
} }
......
/* /*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -641,10 +641,6 @@ class os: AllStatic { ...@@ -641,10 +641,6 @@ class os: AllStatic {
static struct hostent* get_host_by_name(char* name); static struct hostent* get_host_by_name(char* name);
// Printing 64 bit integers
static const char* jlong_format_specifier();
static const char* julong_format_specifier();
// Support for signals (see JVM_RaiseSignal, JVM_RegisterSignal) // Support for signals (see JVM_RaiseSignal, JVM_RegisterSignal)
static void signal_init(); static void signal_init();
static void signal_init_pd(); static void signal_init_pd();
......
/* /*
* Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -192,7 +192,7 @@ PerfLong::PerfLong(CounterNS ns, const char* namep, Units u, Variability v) ...@@ -192,7 +192,7 @@ PerfLong::PerfLong(CounterNS ns, const char* namep, Units u, Variability v)
} }
int PerfLong::format(char* buffer, int length) { int PerfLong::format(char* buffer, int length) {
return jio_snprintf(buffer, length,"%lld", *(jlong*)_valuep); return jio_snprintf(buffer, length, JLONG_FORMAT, *(jlong*)_valuep);
} }
PerfLongVariant::PerfLongVariant(CounterNS ns, const char* namep, Units u, PerfLongVariant::PerfLongVariant(CounterNS ns, const char* namep, Units u,
......
/* /*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -868,8 +868,8 @@ void VirtualSpace::print() { ...@@ -868,8 +868,8 @@ void VirtualSpace::print() {
tty->print ("Virtual space:"); tty->print ("Virtual space:");
if (special()) tty->print(" (pinned in memory)"); if (special()) tty->print(" (pinned in memory)");
tty->cr(); tty->cr();
tty->print_cr(" - committed: %ld", committed_size()); tty->print_cr(" - committed: " SIZE_FORMAT, committed_size());
tty->print_cr(" - reserved: %ld", reserved_size()); tty->print_cr(" - reserved: " SIZE_FORMAT, reserved_size());
tty->print_cr(" - [low, high]: [" INTPTR_FORMAT ", " INTPTR_FORMAT "]", low(), high()); tty->print_cr(" - [low, high]: [" INTPTR_FORMAT ", " INTPTR_FORMAT "]", low(), high());
tty->print_cr(" - [low_b, high_b]: [" INTPTR_FORMAT ", " INTPTR_FORMAT "]", low_boundary(), high_boundary()); tty->print_cr(" - [low_b, high_b]: [" INTPTR_FORMAT ", " INTPTR_FORMAT "]", low_boundary(), high_boundary());
} }
......
/* /*
* Copyright (c) 2011, 2012 Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2011, 2013 Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -86,7 +86,7 @@ void GenDCmdArgument::to_string(StringArrayArgument* f, char* buf, size_t len) { ...@@ -86,7 +86,7 @@ void GenDCmdArgument::to_string(StringArrayArgument* f, char* buf, size_t len) {
template <> void DCmdArgument<jlong>::parse_value(const char* str, template <> void DCmdArgument<jlong>::parse_value(const char* str,
size_t len, TRAPS) { size_t len, TRAPS) {
if (str == NULL || sscanf(str, INT64_FORMAT, &_value) != 1) { if (str == NULL || sscanf(str, JLONG_FORMAT, &_value) != 1) {
THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
"Integer parsing error in diagnostic command arguments\n"); "Integer parsing error in diagnostic command arguments\n");
} }
...@@ -171,7 +171,7 @@ template <> void DCmdArgument<NanoTimeArgument>::parse_value(const char* str, ...@@ -171,7 +171,7 @@ template <> void DCmdArgument<NanoTimeArgument>::parse_value(const char* str,
"Integer parsing error nanotime value: syntax error"); "Integer parsing error nanotime value: syntax error");
} }
int argc = sscanf(str, INT64_FORMAT , &_value._time); int argc = sscanf(str, JLONG_FORMAT, &_value._time);
if (argc != 1) { if (argc != 1) {
THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
"Integer parsing error nanotime value: syntax error"); "Integer parsing error nanotime value: syntax error");
......
/* /*
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -1866,7 +1866,7 @@ int HeapDumper::dump(const char* path) { ...@@ -1866,7 +1866,7 @@ int HeapDumper::dump(const char* path) {
if (error() == NULL) { if (error() == NULL) {
char msg[256]; char msg[256];
sprintf(msg, "Heap dump file created [%s bytes in %3.3f secs]", sprintf(msg, "Heap dump file created [%s bytes in %3.3f secs]",
os::jlong_format_specifier(), timer()->seconds()); JLONG_FORMAT, timer()->seconds());
tty->print_cr(msg, writer.bytes_written()); tty->print_cr(msg, writer.bytes_written());
} else { } else {
tty->print_cr("Dump file is incomplete: %s", writer.error()); tty->print_cr("Dump file is incomplete: %s", writer.error());
......
/* /*
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -353,7 +353,7 @@ void SensorInfo::clear(int count, TRAPS) { ...@@ -353,7 +353,7 @@ void SensorInfo::clear(int count, TRAPS) {
#ifndef PRODUCT #ifndef PRODUCT
void SensorInfo::print() { void SensorInfo::print() {
tty->print_cr("%s count = %ld pending_triggers = %ld pending_clears = %ld", tty->print_cr("%s count = " SIZE_FORMAT " pending_triggers = %ld pending_clears = %ld",
(_sensor_on ? "on" : "off"), (_sensor_on ? "on" : "off"),
_sensor_count, _pending_trigger_count, _pending_clear_count); _sensor_count, _pending_trigger_count, _pending_clear_count);
} }
......
/* /*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -1250,6 +1250,14 @@ inline int build_int_from_shorts( jushort low, jushort high ) { ...@@ -1250,6 +1250,14 @@ inline int build_int_from_shorts( jushort low, jushort high ) {
#define PTR64_FORMAT "0x%016" PRIx64 #define PTR64_FORMAT "0x%016" PRIx64
// Format jlong, if necessary
#ifndef JLONG_FORMAT
#define JLONG_FORMAT INT64_FORMAT
#endif
#ifndef JULONG_FORMAT
#define JULONG_FORMAT UINT64_FORMAT
#endif
// Format pointers which change size between 32- and 64-bit. // Format pointers which change size between 32- and 64-bit.
#ifdef _LP64 #ifdef _LP64
#define INTPTR_FORMAT "0x%016" PRIxPTR #define INTPTR_FORMAT "0x%016" PRIxPTR
......
/* /*
* Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -306,4 +306,8 @@ inline int wcslen(const jchar* x) { return wcslen((const wchar_t*)x); } ...@@ -306,4 +306,8 @@ inline int wcslen(const jchar* x) { return wcslen((const wchar_t*)x); }
#endif #endif
#define offsetof(klass,field) offset_of(klass,field) #define offsetof(klass,field) offset_of(klass,field)
#if defined(_LP64) && defined(__APPLE__)
#define JLONG_FORMAT "%ld"
#endif // _LP64 && __APPLE__
#endif // SHARE_VM_UTILITIES_GLOBALDEFINITIONS_GCC_HPP #endif // SHARE_VM_UTILITIES_GLOBALDEFINITIONS_GCC_HPP
/* /*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -243,13 +243,11 @@ outputStream& outputStream::indent() { ...@@ -243,13 +243,11 @@ outputStream& outputStream::indent() {
} }
void outputStream::print_jlong(jlong value) { void outputStream::print_jlong(jlong value) {
// N.B. Same as INT64_FORMAT print(JLONG_FORMAT, value);
print(os::jlong_format_specifier(), value);
} }
void outputStream::print_julong(julong value) { void outputStream::print_julong(julong value) {
// N.B. Same as UINT64_FORMAT print(JULONG_FORMAT, value);
print(os::julong_format_specifier(), value);
} }
/** /**
......
/* /*
* Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -239,8 +239,8 @@ ParallelTaskTerminator::offer_termination(TerminatorTerminator* terminator) { ...@@ -239,8 +239,8 @@ ParallelTaskTerminator::offer_termination(TerminatorTerminator* terminator) {
#ifdef TRACESPINNING #ifdef TRACESPINNING
void ParallelTaskTerminator::print_termination_counts() { void ParallelTaskTerminator::print_termination_counts() {
gclog_or_tty->print_cr("ParallelTaskTerminator Total yields: %lld " gclog_or_tty->print_cr("ParallelTaskTerminator Total yields: " UINT32_FORMAT
"Total spins: %lld Total peeks: %lld", " Total spins: " UINT32_FORMAT " Total peeks: " UINT32_FORMAT,
total_yields(), total_yields(),
total_spins(), total_spins(),
total_peeks()); total_peeks());
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册