8019973: PPC64 (part 11): Fix IA64 preprocessor conditionals on AIX
On AIX 7.1 systemcfg.h defines IA64 unconditionally, so test for !AIX where IA64 is used. Reviewed-by: dholmes, kvn
This commit is contained in:
parent
49c4939936
commit
b57506ea6c
@ -214,7 +214,7 @@ void GraphKit::gen_stub(address C_function,
|
|||||||
#if defined(SPARC)
|
#if defined(SPARC)
|
||||||
store_to_memory(NULL, adr_flags, intcon(0), T_INT, NoAlias);
|
store_to_memory(NULL, adr_flags, intcon(0), T_INT, NoAlias);
|
||||||
#endif /* defined(SPARC) */
|
#endif /* defined(SPARC) */
|
||||||
#ifdef IA64
|
#if (defined(IA64) && !defined(AIX))
|
||||||
Node* adr_last_Java_fp = basic_plus_adr(top(), thread, in_bytes(JavaThread::last_Java_fp_offset()));
|
Node* adr_last_Java_fp = basic_plus_adr(top(), thread, in_bytes(JavaThread::last_Java_fp_offset()));
|
||||||
if( os::is_MP() ) insert_mem_bar(Op_MemBarRelease);
|
if( os::is_MP() ) insert_mem_bar(Op_MemBarRelease);
|
||||||
store_to_memory(NULL, adr_last_Java_fp, null(), T_ADDRESS, NoAlias);
|
store_to_memory(NULL, adr_last_Java_fp, null(), T_ADDRESS, NoAlias);
|
||||||
|
@ -1065,7 +1065,7 @@ CodeBuffer* Compile::init_buffer(uint* blk_starts) {
|
|||||||
// Compute prolog code size
|
// Compute prolog code size
|
||||||
_method_size = 0;
|
_method_size = 0;
|
||||||
_frame_slots = OptoReg::reg2stack(_matcher->_old_SP)+_regalloc->_framesize;
|
_frame_slots = OptoReg::reg2stack(_matcher->_old_SP)+_regalloc->_framesize;
|
||||||
#ifdef IA64
|
#if defined(IA64) && !defined(AIX)
|
||||||
if (save_argument_registers()) {
|
if (save_argument_registers()) {
|
||||||
// 4815101: this is a stub with implicit and unknown precision fp args.
|
// 4815101: this is a stub with implicit and unknown precision fp args.
|
||||||
// The usual spill mechanism can only generate stfd's in this case, which
|
// The usual spill mechanism can only generate stfd's in this case, which
|
||||||
|
@ -70,7 +70,7 @@ enum {
|
|||||||
// Native interfaces for use by Forte tools.
|
// Native interfaces for use by Forte tools.
|
||||||
|
|
||||||
|
|
||||||
#ifndef IA64
|
#if !defined(IA64) && !defined(PPC64)
|
||||||
|
|
||||||
class vframeStreamForte : public vframeStreamCommon {
|
class vframeStreamForte : public vframeStreamCommon {
|
||||||
public:
|
public:
|
||||||
@ -624,16 +624,16 @@ void collector_func_load(char* name,
|
|||||||
#endif // !_WINDOWS
|
#endif // !_WINDOWS
|
||||||
|
|
||||||
} // end extern "C"
|
} // end extern "C"
|
||||||
#endif // !IA64
|
#endif // !IA64 && !PPC64
|
||||||
|
|
||||||
void Forte::register_stub(const char* name, address start, address end) {
|
void Forte::register_stub(const char* name, address start, address end) {
|
||||||
#if !defined(_WINDOWS) && !defined(IA64)
|
#if !defined(_WINDOWS) && !defined(IA64) && !defined(PPC64)
|
||||||
assert(pointer_delta(end, start, sizeof(jbyte)) < INT_MAX,
|
assert(pointer_delta(end, start, sizeof(jbyte)) < INT_MAX,
|
||||||
"Code size exceeds maximum range");
|
"Code size exceeds maximum range");
|
||||||
|
|
||||||
collector_func_load((char*)name, NULL, NULL, start,
|
collector_func_load((char*)name, NULL, NULL, start,
|
||||||
pointer_delta(end, start, sizeof(jbyte)), 0, NULL);
|
pointer_delta(end, start, sizeof(jbyte)), 0, NULL);
|
||||||
#endif // !_WINDOWS && !IA64
|
#endif // !_WINDOWS && !IA64 && !PPC64
|
||||||
}
|
}
|
||||||
|
|
||||||
#else // INCLUDE_JVMTI
|
#else // INCLUDE_JVMTI
|
||||||
|
@ -54,7 +54,7 @@
|
|||||||
# include "os_bsd.inline.hpp"
|
# include "os_bsd.inline.hpp"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__GNUC__) && !defined(IA64)
|
#if defined(__GNUC__) && !defined(IA64) && !defined(PPC64)
|
||||||
// Need to inhibit inlining for older versions of GCC to avoid build-time failures
|
// Need to inhibit inlining for older versions of GCC to avoid build-time failures
|
||||||
#define ATTR __attribute__((noinline))
|
#define ATTR __attribute__((noinline))
|
||||||
#else
|
#else
|
||||||
|
@ -1020,7 +1020,7 @@ void os::print_location(outputStream* st, intptr_t x, bool verbose) {
|
|||||||
// if C stack is walkable beyond current frame. The check for fp() is not
|
// if C stack is walkable beyond current frame. The check for fp() is not
|
||||||
// necessary on Sparc, but it's harmless.
|
// necessary on Sparc, but it's harmless.
|
||||||
bool os::is_first_C_frame(frame* fr) {
|
bool os::is_first_C_frame(frame* fr) {
|
||||||
#if defined(IA64) && !defined(_WIN32)
|
#if (defined(IA64) && !defined(AIX)) && !defined(_WIN32)
|
||||||
// On IA64 we have to check if the callers bsp is still valid
|
// On IA64 we have to check if the callers bsp is still valid
|
||||||
// (i.e. within the register stack bounds).
|
// (i.e. within the register stack bounds).
|
||||||
// Notice: this only works for threads created by the VM and only if
|
// Notice: this only works for threads created by the VM and only if
|
||||||
|
@ -53,7 +53,7 @@
|
|||||||
# include "os_bsd.inline.hpp"
|
# include "os_bsd.inline.hpp"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__GNUC__)
|
#if defined(__GNUC__) && !defined(PPC64)
|
||||||
// Need to inhibit inlining for older versions of GCC to avoid build-time failures
|
// Need to inhibit inlining for older versions of GCC to avoid build-time failures
|
||||||
#define ATTR __attribute__((noinline))
|
#define ATTR __attribute__((noinline))
|
||||||
#else
|
#else
|
||||||
|
@ -320,7 +320,11 @@
|
|||||||
#define NOT_IA32(code) code
|
#define NOT_IA32(code) code
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef IA64
|
// This is a REALLY BIG HACK, but on AIX <sys/systemcfg.h> unconditionally defines IA64.
|
||||||
|
// At least on AIX 7.1 this is a real problem because 'systemcfg.h' is indirectly included
|
||||||
|
// by 'pthread.h' and other common system headers.
|
||||||
|
|
||||||
|
#if defined(IA64) && !defined(AIX)
|
||||||
#define IA64_ONLY(code) code
|
#define IA64_ONLY(code) code
|
||||||
#define NOT_IA64(code)
|
#define NOT_IA64(code)
|
||||||
#else
|
#else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user