| 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 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 424 // the branch/call instruction at pc. | 424 // the branch/call instruction at pc. |
| 425 INLINE(static Address target_address_address_at(Address pc)); | 425 INLINE(static Address target_address_address_at(Address pc)); |
| 426 | 426 |
| 427 // Read/Modify the code target address in the branch/call instruction at pc. | 427 // Read/Modify the code target address in the branch/call instruction at pc. |
| 428 INLINE(static Address target_address_at(Address pc)); | 428 INLINE(static Address target_address_at(Address pc)); |
| 429 INLINE(static void set_target_address_at(Address pc, Address target)); | 429 INLINE(static void set_target_address_at(Address pc, Address target)); |
| 430 | 430 |
| 431 // Distance between the instruction referring to the address of the call | 431 // Distance between the instruction referring to the address of the call |
| 432 // target (ldr pc, [target addr in const pool]) and the return address | 432 // target (ldr pc, [target addr in const pool]) and the return address |
| 433 static const int kTargetAddrToReturnAddrDist = sizeof(Instr); | 433 static const int kTargetAddrToReturnAddrDist = sizeof(Instr); |
| 434 // Distance between start of patched return sequence and the emitted address |
| 435 // to jump to. |
| 436 static const int kReturnAddrPatchPrefixSize = 1; |
| 434 | 437 |
| 435 | 438 |
| 436 // --------------------------------------------------------------------------- | 439 // --------------------------------------------------------------------------- |
| 437 // Code generation | 440 // Code generation |
| 438 | 441 |
| 439 // Insert the smallest number of nop instructions | 442 // Insert the smallest number of nop instructions |
| 440 // possible to align the pc offset to a multiple | 443 // possible to align the pc offset to a multiple |
| 441 // of m. m must be a power of 2 (>= 4). | 444 // of m. m must be a power of 2 (>= 4). |
| 442 void Align(int m); | 445 void Align(int m); |
| 443 | 446 |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 779 void link_to(Label* L, Label* appendix); | 782 void link_to(Label* L, Label* appendix); |
| 780 void next(Label* L); | 783 void next(Label* L); |
| 781 | 784 |
| 782 // Record reloc info for current pc_ | 785 // Record reloc info for current pc_ |
| 783 void RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data = 0); | 786 void RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data = 0); |
| 784 }; | 787 }; |
| 785 | 788 |
| 786 } } // namespace v8::internal | 789 } } // namespace v8::internal |
| 787 | 790 |
| 788 #endif // V8_ARM_ASSEMBLER_ARM_H_ | 791 #endif // V8_ARM_ASSEMBLER_ARM_H_ |
| OLD | NEW |