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 3166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3177 // to write pure data with no pointers and the constant pool should | 3177 // to write pure data with no pointers and the constant pool should |
3178 // be emitted before using dd. | 3178 // be emitted before using dd. |
3179 ASSERT(num_pending_reloc_info_ == 0); | 3179 ASSERT(num_pending_reloc_info_ == 0); |
3180 ASSERT(num_pending_64_bit_reloc_info_ == 0); | 3180 ASSERT(num_pending_64_bit_reloc_info_ == 0); |
3181 CheckBuffer(); | 3181 CheckBuffer(); |
3182 *reinterpret_cast<uint32_t*>(pc_) = data; | 3182 *reinterpret_cast<uint32_t*>(pc_) = data; |
3183 pc_ += sizeof(uint32_t); | 3183 pc_ += sizeof(uint32_t); |
3184 } | 3184 } |
3185 | 3185 |
3186 | 3186 |
| 3187 void Assembler::emit_code_stub_address(Code* stub) { |
| 3188 CheckBuffer(); |
| 3189 *reinterpret_cast<uint32_t*>(pc_) = |
| 3190 reinterpret_cast<uint32_t>(stub->instruction_start()); |
| 3191 pc_ += sizeof(uint32_t); |
| 3192 } |
| 3193 |
| 3194 |
3187 void Assembler::RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data, | 3195 void Assembler::RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data, |
3188 UseConstantPoolMode mode) { | 3196 UseConstantPoolMode mode) { |
3189 // We do not try to reuse pool constants. | 3197 // We do not try to reuse pool constants. |
3190 RelocInfo rinfo(pc_, rmode, data, NULL); | 3198 RelocInfo rinfo(pc_, rmode, data, NULL); |
3191 if (((rmode >= RelocInfo::JS_RETURN) && | 3199 if (((rmode >= RelocInfo::JS_RETURN) && |
3192 (rmode <= RelocInfo::DEBUG_BREAK_SLOT)) || | 3200 (rmode <= RelocInfo::DEBUG_BREAK_SLOT)) || |
3193 (rmode == RelocInfo::CONST_POOL) || | 3201 (rmode == RelocInfo::CONST_POOL) || |
3194 mode == DONT_USE_CONSTANT_POOL) { | 3202 mode == DONT_USE_CONSTANT_POOL) { |
3195 // Adjust code for new modes. | 3203 // Adjust code for new modes. |
3196 ASSERT(RelocInfo::IsDebugBreakSlot(rmode) | 3204 ASSERT(RelocInfo::IsDebugBreakSlot(rmode) |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3438 | 3446 |
3439 // Since a constant pool was just emitted, move the check offset forward by | 3447 // Since a constant pool was just emitted, move the check offset forward by |
3440 // the standard interval. | 3448 // the standard interval. |
3441 next_buffer_check_ = pc_offset() + kCheckPoolInterval; | 3449 next_buffer_check_ = pc_offset() + kCheckPoolInterval; |
3442 } | 3450 } |
3443 | 3451 |
3444 | 3452 |
3445 } } // namespace v8::internal | 3453 } } // namespace v8::internal |
3446 | 3454 |
3447 #endif // V8_TARGET_ARCH_ARM | 3455 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |