Mercurial > hg > graal-compiler
comparison src/cpu/ppc/vm/assembler_ppc.hpp @ 14726:92aa6797d639
Backed out merge changeset: b51e29501f30
Backed out merge revision to its first parent (8f483e200405)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 24 Mar 2014 21:30:43 +0100 |
parents | e5e8aa897002 |
children |
comparison
equal
deleted
inserted
replaced
14719:0bdd0d157040 | 14726:92aa6797d639 |
---|---|
122 assert(is_register(), "must be a register argument"); | 122 assert(is_register(), "must be a register argument"); |
123 return as_Register(number() + R3_ARG1->encoding()); | 123 return as_Register(number() + R3_ARG1->encoding()); |
124 } | 124 } |
125 }; | 125 }; |
126 | 126 |
127 #if !defined(ABI_ELFv2) | |
128 // A ppc64 function descriptor. | 127 // A ppc64 function descriptor. |
129 struct FunctionDescriptor VALUE_OBJ_CLASS_SPEC { | 128 struct FunctionDescriptor VALUE_OBJ_CLASS_SPEC { |
130 private: | 129 private: |
131 address _entry; | 130 address _entry; |
132 address _toc; | 131 address _toc; |
160 _entry = (address) 0xbad; | 159 _entry = (address) 0xbad; |
161 _toc = (address) 0xbad; | 160 _toc = (address) 0xbad; |
162 _env = (address) 0xbad; | 161 _env = (address) 0xbad; |
163 } | 162 } |
164 }; | 163 }; |
165 #endif | |
166 | 164 |
167 class Assembler : public AbstractAssembler { | 165 class Assembler : public AbstractAssembler { |
168 protected: | 166 protected: |
169 // Displacement routines | 167 // Displacement routines |
170 static void print_instruction(int inst); | 168 static void print_instruction(int inst); |
1067 inline void emit_data(int, relocInfo::relocType rtype); | 1065 inline void emit_data(int, relocInfo::relocType rtype); |
1068 | 1066 |
1069 // Emit an address. | 1067 // Emit an address. |
1070 inline address emit_addr(const address addr = NULL); | 1068 inline address emit_addr(const address addr = NULL); |
1071 | 1069 |
1072 #if !defined(ABI_ELFv2) | |
1073 // Emit a function descriptor with the specified entry point, TOC, | 1070 // Emit a function descriptor with the specified entry point, TOC, |
1074 // and ENV. If the entry point is NULL, the descriptor will point | 1071 // and ENV. If the entry point is NULL, the descriptor will point |
1075 // just past the descriptor. | 1072 // just past the descriptor. |
1076 // Use values from friend functions as defaults. | 1073 // Use values from friend functions as defaults. |
1077 inline address emit_fd(address entry = NULL, | 1074 inline address emit_fd(address entry = NULL, |
1078 address toc = (address) FunctionDescriptor::friend_toc, | 1075 address toc = (address) FunctionDescriptor::friend_toc, |
1079 address env = (address) FunctionDescriptor::friend_env); | 1076 address env = (address) FunctionDescriptor::friend_env); |
1080 #endif | |
1081 | 1077 |
1082 ///////////////////////////////////////////////////////////////////////////////////// | 1078 ///////////////////////////////////////////////////////////////////////////////////// |
1083 // PPC instructions | 1079 // PPC instructions |
1084 ///////////////////////////////////////////////////////////////////////////////////// | 1080 ///////////////////////////////////////////////////////////////////////////////////// |
1085 | 1081 |