Lines Matching defs:label

54     // All links to a label must have been resolved before it is destructed.
95 // Allows iterating over the links of a label. The behaviour is undefined if
99 explicit LabelLinksIterator(Label* label)
100 : LabelLinksIteratorBase(&label->links_) {}
118 // If a label is bound, the assembler already has the information it needs
130 // - Branches to a label are emitted in order: branch instructions to a label
132 // other branch to that same label already generated. As an example, this can
137 // branching to the same unbound label going out of range, veneers are
153 // The offsets of the instructions that have linked to this label.
155 // The label location.
190 // 1) the label is placed, the offset (stored as offset + 1) is used to
191 // resolve any subsequent load using the label.
192 // 2) the label is not placed and offset is the offset of the last load using
459 // Bind a label to the current PC.
460 void bind(Label* label);
462 // Bind a label to a specified offset from the start of the buffer.
463 void BindToOffset(Label* label, ptrdiff_t offset);
481 // Return the address of a bound label.
483 T GetLabelAddress(const Label* label) const {
484 VIXL_ASSERT(label->IsBound());
486 return GetBuffer().GetOffsetAddress<T>(label->GetLocation());
559 // Unconditional branch to label.
560 void b(Label* label);
562 // Conditional branch to label.
563 void b(Label* label, Condition cond);
571 // Branch with link to label.
572 void bl(Label* label);
577 // Compare and branch to label if zero.
578 void cbz(const Register& rt, Label* label);
583 // Compare and branch to label if not zero.
584 void cbnz(const Register& rt, Label* label);
637 // Test bit and branch to label if zero.
638 void tbz(const Register& rt, unsigned bit_pos, Label* label);
643 // Test bit and branch to label if not zero.
644 void tbnz(const Register& rt, unsigned bit_pos, Label* label);
653 // Calculate the address of a label.
654 void adr(const Register& xd, Label* label);
659 // Calculate the page address of a label.
660 void adrp(const Register& xd, Label* label);
7791 // Size of the code generated since label to the current position.
7792 size_t GetSizeOfCodeGeneratedSince(Label* label) const {
7793 VIXL_ASSERT(label->IsBound());
7794 return GetBuffer().GetOffsetFrom(label->GetLocation());
7797 size_t SizeOfCodeGeneratedSince(Label* label) const) {
7798 return GetSizeOfCodeGeneratedSince(label);
8297 // Link the current (not-yet-emitted) instruction to the specified label, then
8298 // return an offset to be encoded in the instruction. If the label is not yet
8300 ptrdiff_t LinkAndGetByteOffsetTo(Label* label);
8301 ptrdiff_t LinkAndGetInstructionOffsetTo(Label* label);
8302 ptrdiff_t LinkAndGetPageOffsetTo(Label* label);
8306 ptrdiff_t LinkAndGetOffsetTo(Label* label);