Lines Matching +defs:label +defs:offset
1273 value except for the literal pool base label. */
1275 s390_label_align (rtx_insn *label)
1277 rtx_insn *prev_insn = prev_active_insn (label);
2885 /* GOT offset is not OK, the GOT can be large. */
2966 HOST_WIDE_INT offset = 0;
3032 offset = INTVAL (disp);
3039 offset = INTVAL (XEXP (XEXP (disp, 0), 1));
3104 if (!DISP_IN_RANGE (offset))
3122 /* Accept pool label offsets. */
3135 relative offset to the _GLOBAL_OFFSET_TABLE_ label which
3142 if (offset)
3144 /* If we have an offset, make sure it does not
3149 if (offset >= GET_MODE_SIZE (get_pool_mode (sym)))
3152 orig_disp = plus_constant (Pmode, orig_disp, offset);
3176 components, and return the base register in BASE and the offset in
3184 HOST_WIDE_INT *offset)
3206 if (offset)
3209 *offset = 0;
3211 *offset = INTVAL (off);
3213 /* The offset will anyway be cut down to 12 bits so take just
3215 *offset = CONST_WIDE_INT_ELT (off, 0);
4582 HOST_WIDE_INT offset;
4588 && s390_loadrelative_operand_p (x, &symref, &offset)
4591 && (offset & 1) == 1)
4957 compute the address as an offset from the GOT, whose base is in
5025 /* If the offset is even, we can just use LARL. This
5083 /* Assume GOT offset is a valid displacement operand (< 4k
5100 /* If the GOT offset might be >= 4k, we determine the position
5200 The returned offset is written to RESULT_REG and an USE rtx is
5297 /* Assume GOT offset < 4k. This is handled the same way
5312 /* If the GOT offset might be >= 4k, we determine the position
5994 s390_emit_ccraw_jump (HOST_WIDE_INT mask, enum rtx_code comparison, rtx label)
6004 gen_rtx_LABEL_REF (VOIDmode, label), pc_rtx);
6131 rtx offset = gen_reg_rtx (Pmode);
6164 /* Calculate `offset' so that src + offset points to the last byte
6171 /* offset = 0xf - temp */
6172 emit_move_insn (offset, GEN_INT (15));
6173 force_expand_binop (Pmode, sub_optab, offset, temp, offset,
6176 /* Store `offset' bytes in the dstination string. The quick check
6177 has loaded at least `offset' bytes into vsrc. */
6179 emit_insn (gen_vstlv16qi (vsrc, gen_lowpart (SImode, offset), dst));
6182 force_expand_binop (Pmode, add_optab, offset, const1_rtx, offset,
6197 gen_rtx_PLUS (Pmode, src_addr_reg, offset)));
6206 gen_rtx_PLUS (Pmode, dst_addr_reg, offset)),
6208 /* offset += 16 */
6209 force_expand_binop (Pmode, add_optab, offset, GEN_INT (16),
6210 offset, 1, OPTAB_DIRECT);
6217 /* We are done. Add the offset of the zero character to the dst_addr
6223 force_expand_binop (Pmode, add_optab, dst_addr_reg, offset, dst_addr_reg,
7120 rtx shift; /* Bit offset with regard to lsb. */
7162 /* As we already have some offset, evaluate the remaining distance. */
7625 HOST_WIDE_INT offset = 0;
7633 offset = INTVAL (XEXP (y, 1));
7640 return plus_constant (Pmode, XVECEXP (y, 0, 0), offset);
7688 OP is an address (register + offset) which is not used to address data;
7694 HOST_WIDE_INT offset;
7697 /* Extract base register and offset. */
7698 if (!s390_decompose_addrstyle_without_index (op, &base, &offset))
7710 fprintf (file, HOST_WIDE_INT_PRINT_DEC, offset & ((1 << 12) - 1));
7737 function label to *HW_BEFORE and *HW_AFTER. Both pointers must not be NULL.
7842 /* Add a trampoline code area before the function label and initialize it
7846 "\t# pre-label NOPs for hotpatch (%d halfwords)\n",
7851 /* Note: The function label must be aligned so that (a) the bytes of the
7854 stored directly before the label without crossing a cacheline
7858 if there are NOPs before the function label, the alignment is placed
7895 "\t# post-label NOPs for hotpatch (%d halfwords)\n",
8726 replace_constant_pool_ref_1 (rtx *x, rtx ref, rtx offset)
8737 *x = gen_rtx_PLUS (Pmode, XVECEXP (*x, 0, 1), offset);
8747 rtx addr = gen_rtx_PLUS (Pmode, XVECEXP (XEXP (*x, 0), 0, 1), offset);
8757 replace_constant_pool_ref_1 (&XEXP (*x, i), ref, offset);
8762 replace_constant_pool_ref_1 (&XVECEXP (*x, i, j), ref, offset);
8773 replace_constant_pool_ref (rtx_insn *insn, rtx ref, rtx offset)
8777 replace_constant_pool_ref_1 (&PATTERN (insn), ref, offset);
8803 rtx_code_label *label;
8816 rtx_code_label *label;
8834 pool->label = gen_label_rtx ();
8920 c->label = gen_label_rtx ();
8927 /* Return an rtx that represents the offset of X from the start of
8933 rtx label;
8935 label = gen_rtx_LABEL_REF (GET_MODE (x), pool->label);
8936 x = gen_rtx_UNSPEC (GET_MODE (x), gen_rtvec (2, x, label),
8963 return s390_pool_offset (pool, gen_rtx_LABEL_REF (Pmode, c->label));
8986 - The execute target label is wrapped into an
9010 return s390_pool_offset (pool, gen_rtx_LABEL_REF (Pmode, c->label));
9040 execute insns that carry a unique label. */
9045 rtx label = s390_execute_label (insn);
9046 return label && label != const0_rtx;
9050 do not emit the pool base label. */
9067 /* Emit pool base label. */
9070 insn = emit_label_after (pool->label, insn);
9087 insn = emit_label_after (c->label, insn);
9104 insn = emit_label_after (c->label, insn);
9249 set = gen_main_base_64 (base_reg, pool->label);
9361 Don't do that, however, if it is the label before
9379 rtx label = XEXP (XVECEXP (vec_pat, diff_p, i), 0);
9381 if (s390_find_pool (pool_list, label)
9383 bitmap_set_bit (far_labels, CODE_LABEL_NUMBER (label));
9397 rtx label = JUMP_LABEL (insn);
9398 if (label && !ANY_RETURN_P (label))
9400 if (s390_find_pool (pool_list, label)
9402 bitmap_set_bit (far_labels, CODE_LABEL_NUMBER (label));
9413 curr_pool->label);
9418 /* Insert base register reload insns at every far label. */
9428 pool->label);
9579 int offset;
9594 offset = -2 * UNITS_PER_LONG;
9596 offset = RETURN_REGNUM * UNITS_PER_LONG;
9598 addr = plus_constant (Pmode, frame, offset);
10748 /* Return offset between register FROM and TO initially after prolog. */
10753 HOST_WIDE_INT offset;
10762 offset = (get_frame_size()
10769 offset = cfun_frame_layout.frame_size + STACK_POINTER_OFFSET;
10791 offset = (cfun_frame_layout.frame_size + cfun_frame_layout.gprs_offset +
10797 offset = 0;
10804 return offset;
10807 /* Emit insn to save fpr REGNUM at offset OFFSET relative
10811 save_fpr (rtx base, int offset, int regnum)
10814 addr = gen_rtx_MEM (DFmode, plus_constant (Pmode, base, offset));
10824 /* Emit insn to restore fpr REGNUM from offset OFFSET relative
10828 restore_fpr (rtx base, int offset, int regnum)
10831 addr = gen_rtx_MEM (DFmode, plus_constant (Pmode, base, offset));
10838 the register save area located at offset OFFSET
10842 save_gprs (rtx base, int offset, int first, int last)
10847 addr = plus_constant (Pmode, base, offset);
10915 offset + (start - first) * UNITS_PER_LONG);
10953 the register save area located at offset OFFSET
10957 restore_gprs (rtx base, int offset, int first, int last)
10961 addr = plus_constant (Pmode, base, offset);
11159 s390_prologue_plus_offset (rtx target, rtx reg, rtx offset, bool frame_related_p)
11162 rtx orig_offset = offset;
11166 gcc_assert (CONST_INT_P (offset));
11168 if (offset == const0_rtx) /* lr/lgr */
11172 else if (DISP_IN_RANGE (INTVAL (offset))) /* la */
11175 offset));
11179 if (!satisfies_constraint_K (offset) /* ahi/aghi */
11181 || (!satisfies_constraint_Op (offset) /* alfi/algfi */
11182 && !satisfies_constraint_On (offset)))) /* slfi/slgfi */
11183 offset = force_const_mem (Pmode, offset);
11191 insn = emit_insn (gen_add2_insn (target, offset));
11193 if (!CONST_INT_P (offset))
11231 if necessary. LAST_PROBE_OFFSET contains the offset of the closest
11253 rtx offset = GEN_INT (probe_interval - UNITS_PER_LONG);
11269 offset));
11272 last_probe_offset = INTVAL (offset);
11291 offset));
11306 last_probe_offset = INTVAL (offset);
11341 int offset;
11362 we know *sp (offset 0) was written. */
11397 offset = cfun_frame_layout.f0_offset;
11404 save_fpr (stack_pointer_rtx, offset, i);
11405 if (offset < last_probe_offset)
11406 last_probe_offset = offset;
11407 offset += 8;
11410 offset += 8;
11414 offset = cfun_frame_layout.f4_offset;
11419 insn = save_fpr (stack_pointer_rtx, offset, i);
11420 if (offset < last_probe_offset)
11421 last_probe_offset = offset;
11422 offset += 8;
11430 offset += 8;
11437 offset = (cfun_frame_layout.f8_offset
11440 for (i = FPR15_REGNUM; i >= FPR8_REGNUM && offset >= 0; i--)
11443 insn = save_fpr (stack_pointer_rtx, offset, i);
11444 if (offset < last_probe_offset)
11445 last_probe_offset = offset;
11448 offset -= 8;
11450 if (offset >= cfun_frame_layout.f8_offset)
11603 offset = 0;
11611 + offset);
11613 insn = save_fpr (temp_reg, offset, i);
11614 offset += 8;
11665 int area_bottom, area_top, offset = 0;
11704 offset = cfun_frame_layout.frame_size;
11711 offset = area_bottom < 0 ? -area_bottom : 0;
11712 frame_off = GEN_INT (cfun_frame_layout.frame_size - offset);
11748 offset + next_offset, i);
11767 offset + next_offset, i);
11796 offset + cfun_frame_layout.gprs_offset
11835 offset + cfun_frame_layout.gprs_offset
11851 offset + cfun_frame_layout.gprs_offset
11908 - offset between parm block and __morestack return label */
12719 holds the offset of the first anonymous stack argument
13324 stored at VCALL_OFFSET in the vtable whose address is located at offset 0
13623 char label[32];
13625 ASM_GENERATE_INTERNAL_LABEL (label,
13628 ASM_OUTPUT_LABEL (asm_out_file, label);
13671 either be an address register or a label pointing to the location
13679 char label[32];
13681 ASM_GENERATE_INTERNAL_LABEL (label,
13684 ASM_OUTPUT_LABEL (asm_out_file, label);
14031 rtx set, base, offset;
14092 offset = const0_rtx;
14093 base = eliminate_constant_term (XEXP (SET_DEST (set), 0), &offset);
14094 off = INTVAL (offset);
14130 offset = const0_rtx;
14131 base = eliminate_constant_term (XEXP (SET_DEST (set), 0), &offset);
14132 off = INTVAL (offset);
14150 offset = const0_rtx;
14151 base = eliminate_constant_term (XEXP (SET_SRC (set), 0), &offset);
14152 off = INTVAL (offset);
14201 offset = const0_rtx;
14202 base = eliminate_constant_term (XEXP (SET_SRC (set), 0), &offset);
14203 off = INTVAL (offset);
14643 rtx label;
14646 label = s390_execute_label (insn);
14647 if (!label)
14650 gcc_assert (label != const0_rtx);
14652 target = emit_label (XEXP (label, 0));
14659 pointing at the jump table label. Only this makes it
16659 rtx offset = gen_reg_rtx (Pmode);
16708 emit_insn (gen_vec_extractv2didi (offset, lens, GEN_INT (0)));
16713 emit_insn (gen_vec_extractv4sisi (offset, lens, GEN_INT (1)));
16715 force_expand_binop (Pmode, add_optab, addr, offset, dst, 1, OPTAB_DIRECT);