src/share/vm/opto/generateOptoStub.cpp

Print this page
rev 4899 : 8019973: PPC64 (part 11): Fix IA64 preprocessor conditionals on AIX.
Summary: On AIX 7.1 systemcfg.h defines IA64 unconditionally, so test for !AIX where IA64 is used.
Reviewed-by: dholmes, kvn


 197       retnode = _gvn.transform( new (C) AndINode(retnode, intcon(0xFFFF)) );
 198     } else if (retval == TypeInt::BYTE) {
 199       retnode = _gvn.transform( new (C) LShiftINode(retnode, intcon(24)) );
 200       retnode = _gvn.transform( new (C) RShiftINode(retnode, intcon(24)) );
 201     } else if (retval == TypeInt::SHORT) {
 202       retnode = _gvn.transform( new (C) LShiftINode(retnode, intcon(16)) );
 203       retnode = _gvn.transform( new (C) RShiftINode(retnode, intcon(16)) );
 204     }
 205     map()->set_req( TypeFunc::Parms, retnode );
 206   }
 207 
 208   //-----------------------------
 209 
 210   // Clear last_Java_sp
 211   store_to_memory(NULL, adr_sp, null(), T_ADDRESS, NoAlias);
 212   // Clear last_Java_pc and (optionally)_flags
 213   store_to_memory(NULL, adr_last_Java_pc, null(), T_ADDRESS, NoAlias);
 214 #if defined(SPARC)
 215   store_to_memory(NULL, adr_flags, intcon(0), T_INT, NoAlias);
 216 #endif /* defined(SPARC) */
 217 #ifdef IA64
 218   Node* adr_last_Java_fp = basic_plus_adr(top(), thread, in_bytes(JavaThread::last_Java_fp_offset()));
 219   if( os::is_MP() ) insert_mem_bar(Op_MemBarRelease);
 220   store_to_memory(NULL, adr_last_Java_fp,    null(),    T_ADDRESS, NoAlias);
 221 #endif
 222 
 223   // For is-fancy-jump, the C-return value is also the branch target
 224   Node* target = map()->in(TypeFunc::Parms);
 225   // Runtime call returning oop in TLS?  Fetch it out
 226   if( pass_tls ) {
 227     Node* adr = basic_plus_adr(top(), thread, in_bytes(JavaThread::vm_result_offset()));
 228     Node* vm_result = make_load(NULL, adr, TypeOopPtr::BOTTOM, T_OBJECT, NoAlias, false);
 229     map()->set_req(TypeFunc::Parms, vm_result); // vm_result passed as result
 230     // clear thread-local-storage(tls)
 231     store_to_memory(NULL, adr, null(), T_ADDRESS, NoAlias);
 232   }
 233 
 234   //-----------------------------
 235   // check exception
 236   Node* adr = basic_plus_adr(top(), thread, in_bytes(Thread::pending_exception_offset()));
 237   Node* pending = make_load(NULL, adr, TypeOopPtr::BOTTOM, T_OBJECT, NoAlias, false);




 197       retnode = _gvn.transform( new (C) AndINode(retnode, intcon(0xFFFF)) );
 198     } else if (retval == TypeInt::BYTE) {
 199       retnode = _gvn.transform( new (C) LShiftINode(retnode, intcon(24)) );
 200       retnode = _gvn.transform( new (C) RShiftINode(retnode, intcon(24)) );
 201     } else if (retval == TypeInt::SHORT) {
 202       retnode = _gvn.transform( new (C) LShiftINode(retnode, intcon(16)) );
 203       retnode = _gvn.transform( new (C) RShiftINode(retnode, intcon(16)) );
 204     }
 205     map()->set_req( TypeFunc::Parms, retnode );
 206   }
 207 
 208   //-----------------------------
 209 
 210   // Clear last_Java_sp
 211   store_to_memory(NULL, adr_sp, null(), T_ADDRESS, NoAlias);
 212   // Clear last_Java_pc and (optionally)_flags
 213   store_to_memory(NULL, adr_last_Java_pc, null(), T_ADDRESS, NoAlias);
 214 #if defined(SPARC)
 215   store_to_memory(NULL, adr_flags, intcon(0), T_INT, NoAlias);
 216 #endif /* defined(SPARC) */
 217 #if (defined(IA64) && !defined(AIX))
 218   Node* adr_last_Java_fp = basic_plus_adr(top(), thread, in_bytes(JavaThread::last_Java_fp_offset()));
 219   if( os::is_MP() ) insert_mem_bar(Op_MemBarRelease);
 220   store_to_memory(NULL, adr_last_Java_fp,    null(),    T_ADDRESS, NoAlias);
 221 #endif
 222 
 223   // For is-fancy-jump, the C-return value is also the branch target
 224   Node* target = map()->in(TypeFunc::Parms);
 225   // Runtime call returning oop in TLS?  Fetch it out
 226   if( pass_tls ) {
 227     Node* adr = basic_plus_adr(top(), thread, in_bytes(JavaThread::vm_result_offset()));
 228     Node* vm_result = make_load(NULL, adr, TypeOopPtr::BOTTOM, T_OBJECT, NoAlias, false);
 229     map()->set_req(TypeFunc::Parms, vm_result); // vm_result passed as result
 230     // clear thread-local-storage(tls)
 231     store_to_memory(NULL, adr, null(), T_ADDRESS, NoAlias);
 232   }
 233 
 234   //-----------------------------
 235   // check exception
 236   Node* adr = basic_plus_adr(top(), thread, in_bytes(Thread::pending_exception_offset()));
 237   Node* pending = make_load(NULL, adr, TypeOopPtr::BOTTOM, T_OBJECT, NoAlias, false);