| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 // | 2 // |
| 3 // Redistribution and use in source and binary forms, with or without | 3 // Redistribution and use in source and binary forms, with or without |
| 4 // modification, are permitted provided that the following conditions are | 4 // modification, are permitted provided that the following conditions are |
| 5 // met: | 5 // met: |
| 6 // | 6 // |
| 7 // * Redistributions of source code must retain the above copyright | 7 // * Redistributions of source code must retain the above copyright |
| 8 // notice, this list of conditions and the following disclaimer. | 8 // notice, this list of conditions and the following disclaimer. |
| 9 // * Redistributions in binary form must reproduce the above | 9 // * Redistributions in binary form must reproduce the above |
| 10 // copyright notice, this list of conditions and the following | 10 // copyright notice, this list of conditions and the following |
| (...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 240 match &= !reg3.IsValid() || reg3.IsSameSizeAndType(reg1); | 240 match &= !reg3.IsValid() || reg3.IsSameSizeAndType(reg1); |
| 241 match &= !reg4.IsValid() || reg4.IsSameSizeAndType(reg1); | 241 match &= !reg4.IsValid() || reg4.IsSameSizeAndType(reg1); |
| 242 match &= !reg5.IsValid() || reg5.IsSameSizeAndType(reg1); | 242 match &= !reg5.IsValid() || reg5.IsSameSizeAndType(reg1); |
| 243 match &= !reg6.IsValid() || reg6.IsSameSizeAndType(reg1); | 243 match &= !reg6.IsValid() || reg6.IsSameSizeAndType(reg1); |
| 244 match &= !reg7.IsValid() || reg7.IsSameSizeAndType(reg1); | 244 match &= !reg7.IsValid() || reg7.IsSameSizeAndType(reg1); |
| 245 match &= !reg8.IsValid() || reg8.IsSameSizeAndType(reg1); | 245 match &= !reg8.IsValid() || reg8.IsSameSizeAndType(reg1); |
| 246 return match; | 246 return match; |
| 247 } | 247 } |
| 248 | 248 |
| 249 | 249 |
| 250 Operand::Operand(const ExternalReference& f) | 250 void Operand::initialize_handle(Handle<Object> handle) { |
| 251 : immediate_(reinterpret_cast<intptr_t>(f.address())), | |
| 252 reg_(NoReg), | |
| 253 rmode_(RelocInfo::EXTERNAL_REFERENCE) {} | |
| 254 | |
| 255 | |
| 256 Operand::Operand(Handle<Object> handle) : reg_(NoReg) { | |
| 257 AllowDeferredHandleDereference using_raw_address; | 251 AllowDeferredHandleDereference using_raw_address; |
| 258 | 252 |
| 259 // Verify all Objects referred by code are NOT in new space. | 253 // Verify all Objects referred by code are NOT in new space. |
| 260 Object* obj = *handle; | 254 Object* obj = *handle; |
| 261 if (obj->IsHeapObject()) { | 255 if (obj->IsHeapObject()) { |
| 262 ASSERT(!HeapObject::cast(obj)->GetHeap()->InNewSpace(obj)); | 256 ASSERT(!HeapObject::cast(obj)->GetHeap()->InNewSpace(obj)); |
| 263 immediate_ = reinterpret_cast<intptr_t>(handle.location()); | 257 immediate_ = reinterpret_cast<intptr_t>(handle.location()); |
| 264 rmode_ = RelocInfo::EMBEDDED_OBJECT; | 258 rmode_ = RelocInfo::EMBEDDED_OBJECT; |
| 265 } else { | 259 } else { |
| 266 STATIC_ASSERT(sizeof(intptr_t) == sizeof(int64_t)); | 260 STATIC_ASSERT(sizeof(intptr_t) == sizeof(int64_t)); |
| (...skipping 2240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2507 // code. | 2501 // code. |
| 2508 #ifdef ENABLE_DEBUGGER_SUPPORT | 2502 #ifdef ENABLE_DEBUGGER_SUPPORT |
| 2509 RecordRelocInfo(RelocInfo::CONST_POOL, static_cast<intptr_t>(size)); | 2503 RecordRelocInfo(RelocInfo::CONST_POOL, static_cast<intptr_t>(size)); |
| 2510 #endif | 2504 #endif |
| 2511 } | 2505 } |
| 2512 | 2506 |
| 2513 | 2507 |
| 2514 } } // namespace v8::internal | 2508 } } // namespace v8::internal |
| 2515 | 2509 |
| 2516 #endif // V8_TARGET_ARCH_A64 | 2510 #endif // V8_TARGET_ARCH_A64 |
| OLD | NEW |