comparison src/cpu/ppc/vm/interpreterRT_ppc.cpp @ 17803:31e80afe3fed

8035647: PPC64: Support for elf v2 abi. Summary: ELFv2 ABI used by the little endian PowerPC64 on Linux. Reviewed-by: kvn Contributed-by: asmundak@google.com
author goetz
date Thu, 06 Mar 2014 10:55:28 -0800
parents ec28f9c041ff
children 92aa6797d639 63c5920a038d
comparison
equal deleted inserted replaced
17802:7c462558a08a 17803:31e80afe3fed
107 __ std(r, sp_c_arg_at(jni_arg.number())); 107 __ std(r, sp_c_arg_at(jni_arg.number()));
108 } 108 }
109 } 109 }
110 110
111 void InterpreterRuntime::SignatureHandlerGenerator::generate(uint64_t fingerprint) { 111 void InterpreterRuntime::SignatureHandlerGenerator::generate(uint64_t fingerprint) {
112 #if !defined(ABI_ELFv2)
112 // Emit fd for current codebuffer. Needs patching! 113 // Emit fd for current codebuffer. Needs patching!
113 __ emit_fd(); 114 __ emit_fd();
115 #endif
114 116
115 // Generate code to handle arguments. 117 // Generate code to handle arguments.
116 iterate(fingerprint); 118 iterate(fingerprint);
117 119
118 // Return the result handler. 120 // Return the result handler.
125 #undef __ 127 #undef __
126 128
127 // Implementation of SignatureHandlerLibrary 129 // Implementation of SignatureHandlerLibrary
128 130
129 void SignatureHandlerLibrary::pd_set_handler(address handler) { 131 void SignatureHandlerLibrary::pd_set_handler(address handler) {
132 #if !defined(ABI_ELFv2)
130 // patch fd here. 133 // patch fd here.
131 FunctionDescriptor* fd = (FunctionDescriptor*) handler; 134 FunctionDescriptor* fd = (FunctionDescriptor*) handler;
132 135
133 fd->set_entry(handler + (int)sizeof(FunctionDescriptor)); 136 fd->set_entry(handler + (int)sizeof(FunctionDescriptor));
134 assert(fd->toc() == (address)0xcafe, "need to adjust TOC here"); 137 assert(fd->toc() == (address)0xcafe, "need to adjust TOC here");
138 #endif
135 } 139 }
136 140
137 141
138 // Access function to get the signature. 142 // Access function to get the signature.
139 IRT_ENTRY(address, InterpreterRuntime::get_signature(JavaThread* thread, Method* method)) 143 IRT_ENTRY(address, InterpreterRuntime::get_signature(JavaThread* thread, Method* method))