Mercurial > hg > graal-compiler
comparison src/cpu/ppc/vm/interpreterRT_ppc.cpp @ 14684:e5e8aa897002
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
14682:84eafecdb9a9 | 14684:e5e8aa897002 |
---|---|
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)) |