Home | History | Annotate | Download | only in courgette

Lines Matching refs:label

28   REL32,          // REL32 <label> - emit a rel32 encoded reference to 'label'.
29 ABS32, // REL32 <label> - emit am abs32 encoded reference to 'label'.
30 REL32ARM, // REL32ARM <c_op> <label> - arm-specific rel32 reference
105 // A ABS32 to REL32 instruction emits a reference to a label's address.
108 InstructionWithLabel(OP op, Label* label)
109 : Instruction(op, 0), label_(label) {
110 if (label == NULL) NOTREACHED();
112 Label* label() const { return label_; }
114 Label* label_;
117 // An ARM REL32 instruction emits a reference to a label's address and
121 InstructionWithLabelARM(OP op, uint16 compressed_op, Label* label,
123 : InstructionWithLabel(op, label), compressed_op_(compressed_op),
125 if (label == NULL) NOTREACHED();
186 CheckBool AssemblyProgram::EmitRel32(Label* label) {
187 return Emit(new(std::nothrow) InstructionWithLabel(REL32, label));
190 CheckBool AssemblyProgram::EmitRel32ARM(uint16 op, Label* label,
192 return Emit(new(std::nothrow) InstructionWithLabelARM(REL32ARM, op, label,
196 CheckBool AssemblyProgram::EmitAbs32(Label* label) {
197 return Emit(new(std::nothrow) InstructionWithLabel(ABS32, label));
200 Label* AssemblyProgram::FindOrMakeAbs32Label(RVA rva) {
204 Label* AssemblyProgram::FindOrMakeRel32Label(RVA rva) {
223 Label* AssemblyProgram::InstructionAbs32Label(
226 return static_cast<const InstructionWithLabel*>(instruction)->label();
230 Label* AssemblyProgram::InstructionRel32Label(
233 Label* label =
234 static_cast<const InstructionWithLabel*>(instruction)->label();
235 return label;
249 Label* AssemblyProgram::FindLabel(RVA rva, RVAToLabel* labels) {
250 Label*& slot = (*labels)[rva];
252 slot = new(std::nothrow) Label(rva);
260 Label* current = p->second;
261 current->index_ = Label::kNoIndex;
271 Label* current = p->second;
272 if (current->index_ != Label::kNoIndex)
294 if (index != Label::kNoIndex) {
305 // label?
308 Label* prev = 0;
310 Label* current = p->second;
311 if (current->index_ == Label::kNoIndex) {
313 if (prev && prev->index_ != Label::kNoIndex)
325 // label?
332 Label* current = p->second;
333 if (current->index_ == Label::kNoIndex) {
340 prev_index != Label::kNoIndex &&
354 Label* current = p->second;
355 if (current->index_ == Label::kNoIndex) {
383 Label* label = p->second;
384 ok = (encoded_format->*define_label)(label->index_, label->rva_);
431 Label* label = static_cast<InstructionWithLabel*>(instruction)->label();
432 if (!encoded->AddRel32(label->index_))
437 Label* label =
438 static_cast<InstructionWithLabelARM*>(instruction)->label();
442 if (!encoded->AddRel32ARM(compressed_op, label->index_))
447 Label* label = static_cast<InstructionWithLabel*>(instruction)->label();
448 if (!encoded->AddAbs32(label->index_))
526 Label* label =
527 static_cast<InstructionWithLabelARM*>(instruction)->label();
528 if (label->count_ <= lower_limit) {
553 Label* current = p->second;
554 if (current->index_ != Label::kNoIndex)