OLD | NEW |
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. | 1 // Copyright (c) 1994-2006 Sun Microsystems Inc. |
2 // All Rights Reserved. | 2 // All Rights Reserved. |
3 // | 3 // |
4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // met: |
7 // | 7 // |
8 // - Redistributions of source code must retain the above copyright notice, | 8 // - Redistributions of source code must retain the above copyright notice, |
9 // this list of conditions and the following disclaimer. | 9 // this list of conditions and the following disclaimer. |
10 // | 10 // |
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
206 | 206 |
207 | 207 |
208 bool RelocInfo::IsCodedSpecially() { | 208 bool RelocInfo::IsCodedSpecially() { |
209 // The deserializer needs to know whether a pointer is specially coded. Being | 209 // The deserializer needs to know whether a pointer is specially coded. Being |
210 // specially coded on MIPS means that it is a lui/ori instruction, and that is | 210 // specially coded on MIPS means that it is a lui/ori instruction, and that is |
211 // always the case inside code objects. | 211 // always the case inside code objects. |
212 return true; | 212 return true; |
213 } | 213 } |
214 | 214 |
215 | 215 |
| 216 bool RelocInfo::IsInConstantPool() { |
| 217 return false; |
| 218 } |
| 219 |
| 220 |
216 // Patch the code at the current address with the supplied instructions. | 221 // Patch the code at the current address with the supplied instructions. |
217 void RelocInfo::PatchCode(byte* instructions, int instruction_count) { | 222 void RelocInfo::PatchCode(byte* instructions, int instruction_count) { |
218 Instr* pc = reinterpret_cast<Instr*>(pc_); | 223 Instr* pc = reinterpret_cast<Instr*>(pc_); |
219 Instr* instr = reinterpret_cast<Instr*>(instructions); | 224 Instr* instr = reinterpret_cast<Instr*>(instructions); |
220 for (int i = 0; i < instruction_count; i++) { | 225 for (int i = 0; i < instruction_count; i++) { |
221 *(pc + i) = *(instr + i); | 226 *(pc + i) = *(instr + i); |
222 } | 227 } |
223 | 228 |
224 // Indicate that code has changed. | 229 // Indicate that code has changed. |
225 CPU::FlushICache(pc_, instruction_count * Assembler::kInstrSize); | 230 CPU::FlushICache(pc_, instruction_count * Assembler::kInstrSize); |
(...skipping 2092 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2318 } | 2323 } |
2319 | 2324 |
2320 if (patched) { | 2325 if (patched) { |
2321 CPU::FlushICache(pc+2, sizeof(Address)); | 2326 CPU::FlushICache(pc+2, sizeof(Address)); |
2322 } | 2327 } |
2323 } | 2328 } |
2324 | 2329 |
2325 } } // namespace v8::internal | 2330 } } // namespace v8::internal |
2326 | 2331 |
2327 #endif // V8_TARGET_ARCH_MIPS | 2332 #endif // V8_TARGET_ARCH_MIPS |
OLD | NEW |