| 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 | 5 // modification, are permitted provided that the following conditions | 
| 6 // are met: | 6 // are 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 205 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 216   } | 216   } | 
| 217 } | 217 } | 
| 218 | 218 | 
| 219 | 219 | 
| 220 template<typename StaticVisitor> | 220 template<typename StaticVisitor> | 
| 221 void RelocInfo::Visit(Heap* heap) { | 221 void RelocInfo::Visit(Heap* heap) { | 
| 222   RelocInfo::Mode mode = rmode(); | 222   RelocInfo::Mode mode = rmode(); | 
| 223   if (mode == RelocInfo::EMBEDDED_OBJECT) { | 223   if (mode == RelocInfo::EMBEDDED_OBJECT) { | 
| 224     StaticVisitor::VisitPointer(heap, target_object_address()); | 224     StaticVisitor::VisitPointer(heap, target_object_address()); | 
| 225   } else if (RelocInfo::IsCodeTarget(mode)) { | 225   } else if (RelocInfo::IsCodeTarget(mode)) { | 
| 226     StaticVisitor::VisitCodeTarget(this); | 226     StaticVisitor::VisitCodeTarget(heap, this); | 
| 227   } else if (mode == RelocInfo::GLOBAL_PROPERTY_CELL) { | 227   } else if (mode == RelocInfo::GLOBAL_PROPERTY_CELL) { | 
| 228     StaticVisitor::VisitGlobalPropertyCell(this); | 228     StaticVisitor::VisitGlobalPropertyCell(heap, this); | 
| 229   } else if (mode == RelocInfo::EXTERNAL_REFERENCE) { | 229   } else if (mode == RelocInfo::EXTERNAL_REFERENCE) { | 
| 230     StaticVisitor::VisitExternalReference(target_reference_address()); | 230     StaticVisitor::VisitExternalReference(target_reference_address()); | 
| 231 #ifdef ENABLE_DEBUGGER_SUPPORT | 231 #ifdef ENABLE_DEBUGGER_SUPPORT | 
| 232   } else if (heap->isolate()->debug()->has_break_points() && | 232   } else if (heap->isolate()->debug()->has_break_points() && | 
| 233              ((RelocInfo::IsJSReturn(mode) && | 233              ((RelocInfo::IsJSReturn(mode) && | 
| 234               IsPatchedReturnSequence()) || | 234               IsPatchedReturnSequence()) || | 
| 235              (RelocInfo::IsDebugBreakSlot(mode) && | 235              (RelocInfo::IsDebugBreakSlot(mode) && | 
| 236               IsPatchedDebugBreakSlotSequence()))) { | 236               IsPatchedDebugBreakSlotSequence()))) { | 
| 237     StaticVisitor::VisitDebugTarget(this); | 237     StaticVisitor::VisitDebugTarget(heap, this); | 
| 238 #endif | 238 #endif | 
| 239   } else if (mode == RelocInfo::RUNTIME_ENTRY) { | 239   } else if (mode == RelocInfo::RUNTIME_ENTRY) { | 
| 240     StaticVisitor::VisitRuntimeEntry(this); | 240     StaticVisitor::VisitRuntimeEntry(this); | 
| 241   } | 241   } | 
| 242 } | 242 } | 
| 243 | 243 | 
| 244 | 244 | 
| 245 Operand::Operand(int32_t immediate, RelocInfo::Mode rmode)  { | 245 Operand::Operand(int32_t immediate, RelocInfo::Mode rmode)  { | 
| 246   rm_ = no_reg; | 246   rm_ = no_reg; | 
| 247   imm32_ = immediate; | 247   imm32_ = immediate; | 
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 344   //   CPU::FlushICache(pc, sizeof(target)); | 344   //   CPU::FlushICache(pc, sizeof(target)); | 
| 345   // However, on ARM, no instruction was actually patched by the assignment | 345   // However, on ARM, no instruction was actually patched by the assignment | 
| 346   // above; the target address is not part of an instruction, it is patched in | 346   // above; the target address is not part of an instruction, it is patched in | 
| 347   // the constant pool and is read via a data access; the instruction accessing | 347   // the constant pool and is read via a data access; the instruction accessing | 
| 348   // this address in the constant pool remains unchanged. | 348   // this address in the constant pool remains unchanged. | 
| 349 } | 349 } | 
| 350 | 350 | 
| 351 } }  // namespace v8::internal | 351 } }  // namespace v8::internal | 
| 352 | 352 | 
| 353 #endif  // V8_ARM_ASSEMBLER_ARM_INL_H_ | 353 #endif  // V8_ARM_ASSEMBLER_ARM_INL_H_ | 
| OLD | NEW | 
|---|