Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(197)

Side by Side Diff: src/arm/assembler-arm.h

Issue 23515007: ARM: remove the regexp specific literal pool. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | src/arm/assembler-arm.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 730 matching lines...) Expand 10 before | Expand all | Expand 10 after
741 // Note: The same Label can be used for forward and backward branches 741 // Note: The same Label can be used for forward and backward branches
742 // but it may be bound only once. 742 // but it may be bound only once.
743 743
744 void bind(Label* L); // binds an unbound label L to the current code position 744 void bind(Label* L); // binds an unbound label L to the current code position
745 745
746 // Returns the branch offset to the given label from the current code position 746 // Returns the branch offset to the given label from the current code position
747 // Links the label to the current position if it is still unbound 747 // Links the label to the current position if it is still unbound
748 // Manages the jump elimination optimization if the second parameter is true. 748 // Manages the jump elimination optimization if the second parameter is true.
749 int branch_offset(Label* L, bool jump_elimination_allowed); 749 int branch_offset(Label* L, bool jump_elimination_allowed);
750 750
751 // Puts a labels target address at the given position.
752 // The high 8 bits are set to zero.
753 void label_at_put(Label* L, int at_offset);
754
755 // Return the address in the constant pool of the code target address used by 751 // Return the address in the constant pool of the code target address used by
756 // the branch/call instruction at pc, or the object in a mov. 752 // the branch/call instruction at pc, or the object in a mov.
757 INLINE(static Address target_pointer_address_at(Address pc)); 753 INLINE(static Address target_pointer_address_at(Address pc));
758 754
759 // Read/Modify the pointer in the branch/call/move instruction at pc. 755 // Read/Modify the pointer in the branch/call/move instruction at pc.
760 INLINE(static Address target_pointer_at(Address pc)); 756 INLINE(static Address target_pointer_at(Address pc));
761 INLINE(static void set_target_pointer_at(Address pc, Address target)); 757 INLINE(static void set_target_pointer_at(Address pc, Address target));
762 758
763 // Read/Modify the code target address in the branch/call instruction at pc. 759 // Read/Modify the code target address in the branch/call instruction at pc.
764 INLINE(static Address target_address_at(Address pc)); 760 INLINE(static Address target_address_at(Address pc));
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
896 SBit s = LeaveCC, Condition cond = al) { 892 SBit s = LeaveCC, Condition cond = al) {
897 orr(dst, src1, Operand(src2), s, cond); 893 orr(dst, src1, Operand(src2), s, cond);
898 } 894 }
899 895
900 void mov(Register dst, const Operand& src, 896 void mov(Register dst, const Operand& src,
901 SBit s = LeaveCC, Condition cond = al); 897 SBit s = LeaveCC, Condition cond = al);
902 void mov(Register dst, Register src, SBit s = LeaveCC, Condition cond = al) { 898 void mov(Register dst, Register src, SBit s = LeaveCC, Condition cond = al) {
903 mov(dst, Operand(src), s, cond); 899 mov(dst, Operand(src), s, cond);
904 } 900 }
905 901
902 // Load the position of the label relative to the generated code object
903 // pointer in a register.
904 void mov_label_offset(Register dst, Label* label);
905
906 // ARMv7 instructions for loading a 32 bit immediate in two instructions. 906 // ARMv7 instructions for loading a 32 bit immediate in two instructions.
907 // This may actually emit a different mov instruction, but on an ARMv7 it 907 // This may actually emit a different mov instruction, but on an ARMv7 it
908 // is guaranteed to only emit one instruction. 908 // is guaranteed to only emit one instruction.
909 void movw(Register reg, uint32_t immediate, Condition cond = al); 909 void movw(Register reg, uint32_t immediate, Condition cond = al);
910 // The constant for movt should be in the range 0-0xffff. 910 // The constant for movt should be in the range 0-0xffff.
911 void movt(Register reg, uint32_t immediate, Condition cond = al); 911 void movt(Register reg, uint32_t immediate, Condition cond = al);
912 912
913 void bic(Register dst, Register src1, const Operand& src2, 913 void bic(Register dst, Register src1, const Operand& src2,
914 SBit s = LeaveCC, Condition cond = al); 914 SBit s = LeaveCC, Condition cond = al);
915 915
(...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after
1554 USE_CONSTANT_POOL, 1554 USE_CONSTANT_POOL,
1555 DONT_USE_CONSTANT_POOL 1555 DONT_USE_CONSTANT_POOL
1556 }; 1556 };
1557 1557
1558 // Record reloc info for current pc_ 1558 // Record reloc info for current pc_
1559 void RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data = 0, 1559 void RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data = 0,
1560 UseConstantPoolMode mode = USE_CONSTANT_POOL); 1560 UseConstantPoolMode mode = USE_CONSTANT_POOL);
1561 void RecordRelocInfo(double data); 1561 void RecordRelocInfo(double data);
1562 void RecordRelocInfoConstantPoolEntryHelper(const RelocInfo& rinfo); 1562 void RecordRelocInfoConstantPoolEntryHelper(const RelocInfo& rinfo);
1563 1563
1564 friend class RegExpMacroAssemblerARM;
1565 friend class RelocInfo; 1564 friend class RelocInfo;
1566 friend class CodePatcher; 1565 friend class CodePatcher;
1567 friend class BlockConstPoolScope; 1566 friend class BlockConstPoolScope;
1568 1567
1569 PositionsRecorder positions_recorder_; 1568 PositionsRecorder positions_recorder_;
1570 friend class PositionsRecorder; 1569 friend class PositionsRecorder;
1571 friend class EnsureSpace; 1570 friend class EnsureSpace;
1572 }; 1571 };
1573 1572
1574 1573
1575 class EnsureSpace BASE_EMBEDDED { 1574 class EnsureSpace BASE_EMBEDDED {
1576 public: 1575 public:
1577 explicit EnsureSpace(Assembler* assembler) { 1576 explicit EnsureSpace(Assembler* assembler) {
1578 assembler->CheckBuffer(); 1577 assembler->CheckBuffer();
1579 } 1578 }
1580 }; 1579 };
1581 1580
1582 1581
1583 } } // namespace v8::internal 1582 } } // namespace v8::internal
1584 1583
1585 #endif // V8_ARM_ASSEMBLER_ARM_H_ 1584 #endif // V8_ARM_ASSEMBLER_ARM_H_
OLDNEW
« no previous file with comments | « no previous file | src/arm/assembler-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698