Lines Matching refs:expld
51 struct ldexp_control expld; variable
137 expld.result.value += expld.result.section->vma; in make_abs()
138 expld.result.section = bfd_abs_section_ptr; in make_abs()
144 expld.result.valid_p = TRUE; in new_abs()
145 expld.result.section = bfd_abs_section_ptr; in new_abs()
146 expld.result.value = value; in new_abs()
147 expld.result.str = NULL; in new_abs()
191 expld.result.valid_p = TRUE; in new_rel()
192 expld.result.value = value; in new_rel()
193 expld.result.str = str; in new_rel()
194 expld.result.section = section; in new_rel()
200 expld.result.valid_p = TRUE; in new_rel_from_abs()
201 expld.result.value = value - expld.section->vma; in new_rel_from_abs()
202 expld.result.str = NULL; in new_rel_from_abs()
203 expld.result.section = expld.section; in new_rel_from_abs()
210 if (expld.result.valid_p) in fold_unary()
215 if (expld.phase != lang_first_phase_enum) in fold_unary()
216 new_rel_from_abs (align_n (expld.dot, expld.result.value)); in fold_unary()
218 expld.result.valid_p = FALSE; in fold_unary()
227 expld.result.value = ~expld.result.value; in fold_unary()
232 expld.result.value = !expld.result.value; in fold_unary()
237 expld.result.value = -expld.result.value; in fold_unary()
242 if (expld.phase != lang_first_phase_enum) in fold_unary()
245 expld.result.value = align_n (expld.dot, expld.result.value); in fold_unary()
248 expld.result.valid_p = FALSE; in fold_unary()
252 if (expld.phase != lang_first_phase_enum in fold_unary()
253 && expld.section == bfd_abs_section_ptr in fold_unary()
254 && (expld.dataseg.phase == exp_dataseg_align_seen in fold_unary()
255 || expld.dataseg.phase == exp_dataseg_relro_seen in fold_unary()
256 || expld.dataseg.phase == exp_dataseg_adjust in fold_unary()
257 || expld.dataseg.phase == exp_dataseg_relro_adjust in fold_unary()
258 || expld.phase == lang_final_phase_enum)) in fold_unary()
260 if (expld.dataseg.phase == exp_dataseg_align_seen in fold_unary()
261 || expld.dataseg.phase == exp_dataseg_relro_seen) in fold_unary()
263 expld.dataseg.phase = exp_dataseg_end_seen; in fold_unary()
264 expld.dataseg.end = expld.result.value; in fold_unary()
268 expld.result.valid_p = FALSE; in fold_unary()
285 if (expld.result.valid_p && tree->type.node_code == SEGMENT_START) in fold_binary()
296 expld.result.value = seg->value; in fold_binary()
297 expld.result.str = NULL; in fold_binary()
298 expld.result.section = NULL; in fold_binary()
302 else if (expld.result.valid_p) in fold_binary()
304 etree_value_type lhs = expld.result; in fold_binary()
307 if (expld.result.valid_p) in fold_binary()
314 if (expld.section != bfd_abs_section_ptr in fold_binary()
319 expld.result.value = lhs.value + expld.result.value; in fold_binary()
322 else if (expld.section != bfd_abs_section_ptr in fold_binary()
323 && expld.result.section == bfd_abs_section_ptr in fold_binary()
328 expld.result.section = lhs.section; in fold_binary()
330 else if (expld.result.section != lhs.section in fold_binary()
331 || expld.section == bfd_abs_section_ptr) in fold_binary()
340 if (expld.result.value != 0) in fold_binary()
341 expld.result.value = ((bfd_signed_vma) lhs.value in fold_binary()
342 % (bfd_signed_vma) expld.result.value); in fold_binary()
343 else if (expld.phase != lang_mark_phase_enum) in fold_binary()
348 if (expld.result.value != 0) in fold_binary()
349 expld.result.value = ((bfd_signed_vma) lhs.value in fold_binary()
350 / (bfd_signed_vma) expld.result.value); in fold_binary()
351 else if (expld.phase != lang_mark_phase_enum) in fold_binary()
357 expld.result.value = lhs.value y expld.result.value; \ in fold_binary()
378 if (lhs.value > expld.result.value) in fold_binary()
379 expld.result.value = lhs.value; in fold_binary()
383 if (lhs.value < expld.result.value) in fold_binary()
384 expld.result.value = lhs.value; in fold_binary()
388 expld.result.value = align_n (lhs.value, expld.result.value); in fold_binary()
392 if (expld.phase != lang_first_phase_enum in fold_binary()
393 && expld.section == bfd_abs_section_ptr in fold_binary()
394 && (expld.dataseg.phase == exp_dataseg_none in fold_binary()
395 || expld.dataseg.phase == exp_dataseg_adjust in fold_binary()
396 || expld.dataseg.phase == exp_dataseg_relro_adjust in fold_binary()
397 || expld.phase == lang_final_phase_enum)) in fold_binary()
400 bfd_vma commonpage = expld.result.value; in fold_binary()
402 expld.result.value = align_n (expld.dot, maxpage); in fold_binary()
403 if (expld.dataseg.phase == exp_dataseg_relro_adjust) in fold_binary()
404 expld.result.value = expld.dataseg.base; in fold_binary()
405 else if (expld.dataseg.phase != exp_dataseg_adjust) in fold_binary()
407 expld.result.value += expld.dot & (maxpage - 1); in fold_binary()
408 if (expld.phase == lang_allocating_phase_enum) in fold_binary()
410 expld.dataseg.phase = exp_dataseg_align_seen; in fold_binary()
411 expld.dataseg.min_base = align_n (expld.dot, maxpage); in fold_binary()
412 expld.dataseg.base = expld.result.value; in fold_binary()
413 expld.dataseg.pagesize = commonpage; in fold_binary()
414 expld.dataseg.maxpagesize = maxpage; in fold_binary()
415 expld.dataseg.relro_end = 0; in fold_binary()
419 expld.result.value += ((expld.dot + commonpage - 1) in fold_binary()
423 expld.result.valid_p = FALSE; in fold_binary()
427 if (expld.phase != lang_first_phase_enum in fold_binary()
428 && (expld.dataseg.phase == exp_dataseg_align_seen in fold_binary()
429 || expld.dataseg.phase == exp_dataseg_adjust in fold_binary()
430 || expld.dataseg.phase == exp_dataseg_relro_adjust in fold_binary()
431 || expld.phase == lang_final_phase_enum)) in fold_binary()
433 if (expld.dataseg.phase == exp_dataseg_align_seen in fold_binary()
434 || expld.dataseg.phase == exp_dataseg_relro_adjust) in fold_binary()
435 expld.dataseg.relro_end = lhs.value + expld.result.value; in fold_binary()
437 if (expld.dataseg.phase == exp_dataseg_relro_adjust in fold_binary()
438 && (expld.dataseg.relro_end in fold_binary()
439 & (expld.dataseg.pagesize - 1))) in fold_binary()
441 expld.dataseg.relro_end += expld.dataseg.pagesize - 1; in fold_binary()
442 expld.dataseg.relro_end &= ~(expld.dataseg.pagesize - 1); in fold_binary()
443 expld.result.value = (expld.dataseg.relro_end in fold_binary()
444 - expld.result.value); in fold_binary()
447 expld.result.value = lhs.value; in fold_binary()
449 if (expld.dataseg.phase == exp_dataseg_align_seen) in fold_binary()
450 expld.dataseg.phase = exp_dataseg_relro_seen; in fold_binary()
453 expld.result.valid_p = FALSE; in fold_binary()
461 expld.result.valid_p = FALSE; in fold_binary()
469 if (expld.result.valid_p) in fold_trinary()
470 exp_fold_tree_1 (expld.result.value in fold_trinary()
478 memset (&expld.result, 0, sizeof (expld.result)); in fold_name()
483 if (expld.phase != lang_first_phase_enum) in fold_name()
488 if (expld.phase != lang_mark_phase_enum) in fold_name()
495 if (expld.phase == lang_first_phase_enum) in fold_name()
506 expld.result.value = (h != NULL in fold_name()
512 expld.result.section = bfd_abs_section_ptr; in fold_name()
513 expld.result.valid_p = TRUE; in fold_name()
518 if (expld.phase == lang_first_phase_enum) in fold_name()
521 new_rel_from_abs (expld.dot); in fold_name()
543 if (expld.phase != lang_mark_phase_enum) in fold_name()
553 else if (expld.phase == lang_final_phase_enum in fold_name()
554 || expld.assigning_to_dot) in fold_name()
568 if (expld.phase != lang_first_phase_enum) in fold_name()
575 if (expld.phase == lang_final_phase_enum) in fold_name()
585 if (expld.phase != lang_first_phase_enum) in fold_name()
592 if (expld.phase == lang_final_phase_enum) in fold_name()
611 if (expld.phase != lang_first_phase_enum) in fold_name()
618 if (expld.phase == lang_final_phase_enum) in fold_name()
684 memset (&expld.result, 0, sizeof (expld.result)); in exp_fold_tree_1()
691 new_rel (tree->value.value, tree->value.str, expld.section); in exp_fold_tree_1()
695 if (expld.phase != lang_first_phase_enum) in exp_fold_tree_1()
702 memset (&expld.result, 0, sizeof (expld.result)); in exp_fold_tree_1()
707 if (expld.phase == lang_final_phase_enum && !expld.result.value) in exp_fold_tree_1()
731 if (expld.phase == lang_mark_phase_enum in exp_fold_tree_1()
732 || expld.phase == lang_allocating_phase_enum in exp_fold_tree_1()
733 || (expld.phase == lang_final_phase_enum in exp_fold_tree_1()
734 && expld.section == bfd_abs_section_ptr)) in exp_fold_tree_1()
737 expld.assigning_to_dot = TRUE; in exp_fold_tree_1()
739 expld.assigning_to_dot = FALSE; in exp_fold_tree_1()
741 if (!expld.result.valid_p) in exp_fold_tree_1()
743 if (expld.phase != lang_mark_phase_enum) in exp_fold_tree_1()
746 else if (expld.dotp == NULL) in exp_fold_tree_1()
753 nextdot = expld.result.value + expld.section->vma; in exp_fold_tree_1()
754 if (nextdot < expld.dot in exp_fold_tree_1()
755 && expld.section != bfd_abs_section_ptr) in exp_fold_tree_1()
757 " (from %V to %V)\n"), expld.dot, nextdot); in exp_fold_tree_1()
760 expld.dot = nextdot; in exp_fold_tree_1()
761 *expld.dotp = nextdot; in exp_fold_tree_1()
766 memset (&expld.result, 0, sizeof (expld.result)); in exp_fold_tree_1()
788 if (expld.result.valid_p) in exp_fold_tree_1()
803 h->u.def.value = expld.result.value; in exp_fold_tree_1()
804 h->u.def.section = expld.result.section; in exp_fold_tree_1()
817 memset (&expld.result, 0, sizeof (expld.result)); in exp_fold_tree_1()
825 expld.dot = *dotp; in exp_fold_tree()
826 expld.dotp = dotp; in exp_fold_tree()
827 expld.section = current_section; in exp_fold_tree()
834 expld.dot = 0; in exp_fold_tree_no_dot()
835 expld.dotp = NULL; in exp_fold_tree_no_dot()
836 expld.section = bfd_abs_section_ptr; in exp_fold_tree_no_dot()
851 if (expld.result.valid_p) in exp_binop()
852 return exp_intop (expld.result.value); in exp_binop()
871 if (expld.result.valid_p) in exp_trinop()
872 return exp_intop (expld.result.value); in exp_trinop()
889 if (expld.result.valid_p) in exp_unop()
890 return exp_intop (expld.result.value); in exp_unop()
908 if (expld.result.valid_p) in exp_nameop()
909 return exp_intop (expld.result.value); in exp_nameop()
1051 if (expld.result.valid_p) in exp_get_vma()
1052 return expld.result.value; in exp_get_vma()
1053 else if (name != NULL && expld.phase != lang_mark_phase_enum) in exp_get_vma()
1076 if (!expld.result.valid_p) in exp_get_fill()
1078 if (name != NULL && expld.phase != lang_mark_phase_enum) in exp_get_fill()
1083 if (expld.result.str != NULL && (len = strlen (expld.result.str)) != 0) in exp_get_fill()
1090 s = (unsigned char *) expld.result.str; in exp_get_fill()
1113 val = expld.result.value; in exp_get_fill()
1130 if (expld.result.valid_p) in exp_get_abs_int()
1132 expld.result.value += expld.result.section->vma; in exp_get_abs_int()
1133 return expld.result.value; in exp_get_abs_int()
1135 else if (name != NULL && expld.phase != lang_mark_phase_enum) in exp_get_abs_int()