Lines Matching defs:frame

75 /* The maximum distance between the top of the stack frame and the
80 allocate and deallocate the top part of the frame.
419 HOST_WIDE_INT total_size; /* # bytes that the entire frame takes up */
431 bool initialized; /* true if frame size already calculated */
442 This area is allocated by the callee at the very top of the frame. */
445 /* Current frame information, calculated by compute_frame_size. */
446 struct mips_frame_info frame;
1441 hard frame pointer, both of which are usually valid base registers.
1456 stack pointer (which needs the restriction) or the hard frame
3525 gcc_assert ((cfun->machine->frame.mask >> 31) & 1);
3527 cfun->machine->frame.gp_sp_offset);
5328 to be in terms of the virtual frame pointer (stack pointer before
5330 the frame pointer to be the stack pointer after the initial
5332 is eliminated) points to the virtual frame pointer, while the frame
5348 HOST_WIDE_INT frame_size = (!cfun->machine->frame.initialized)
5350 : cfun->machine->frame.total_size;
5352 /* MIPS16 frame is smaller */
5354 frame_size -= cfun->machine->frame.args_size;
5362 fatal_insn ("mips_debugger_offset called with non stack/frame/arg pointer",
6321 /* We need to save the old frame pointer before setting up a new one. */
6357 /* Return the bytes needed to compute the frame pointer from the current
6414 HOST_WIDE_INT total_size; /* # bytes that the entire frame takes up */
6442 looks like we are trying to create a second frame pointer to the
6493 cfun->machine->frame.total_size = total_size;
6494 cfun->machine->frame.var_size = var_size;
6495 cfun->machine->frame.args_size = args_size;
6496 cfun->machine->frame.cprestore_size = cprestore_size;
6497 cfun->machine->frame.gp_reg_size = gp_reg_size;
6498 cfun->machine->frame.fp_reg_size = fp_reg_size;
6499 cfun->machine->frame.mask = mask;
6500 cfun->machine->frame.fmask = fmask;
6501 cfun->machine->frame.initialized = reload_completed;
6502 cfun->machine->frame.num_gp = gp_reg_size / UNITS_PER_WORD;
6503 cfun->machine->frame.num_fp = fp_reg_size / (FP_INC * UNITS_PER_FPREG);
6511 cfun->machine->frame.gp_sp_offset = offset;
6512 cfun->machine->frame.gp_save_offset = offset - total_size;
6516 cfun->machine->frame.gp_sp_offset = 0;
6517 cfun->machine->frame.gp_save_offset = 0;
6527 cfun->machine->frame.fp_sp_offset = offset;
6528 cfun->machine->frame.fp_save_offset = offset - total_size;
6532 cfun->machine->frame.fp_sp_offset = 0;
6533 cfun->machine->frame.fp_save_offset = 0;
6541 /* Implement INITIAL_ELIMINATION_OFFSET. FROM is either the frame
6543 hard frame pointer. */
6560 offset = (cfun->machine->frame.total_size
6569 offset -= cfun->machine->frame.args_size;
6576 back to a previous frame. */
6578 mips_return_addr (int count, rtx frame ATTRIBUTE_UNUSED)
6605 of the frame. */
6620 offset = cfun->machine->frame.gp_sp_offset - sp_offset;
6622 if (BITSET_P (cfun->machine->frame.mask, regno - GP_REG_FIRST))
6630 offset = cfun->machine->frame.fp_sp_offset - sp_offset;
6635 if (BITSET_P (cfun->machine->frame.fmask, regno - FP_REG_FIRST))
6709 /* Set up the stack and frame (if desired) for the function. */
6715 HOST_WIDE_INT tsize = cfun->machine->frame.total_size;
6754 /* .frame FRAMEREG, FRAMESIZE, RETREG */
6756 "\t.frame\t%s," HOST_WIDE_INT_PRINT_DEC ",%s\t\t"
6763 ? tsize - cfun->machine->frame.args_size
6766 cfun->machine->frame.var_size,
6767 cfun->machine->frame.num_gp,
6768 cfun->machine->frame.num_fp,
6769 cfun->machine->frame.args_size,
6770 cfun->machine->frame.cprestore_size);
6774 cfun->machine->frame.mask,
6775 cfun->machine->frame.gp_save_offset);
6777 cfun->machine->frame.fmask,
6778 cfun->machine->frame.fp_save_offset);
6803 /* Make the last instruction frame related and note that it performs
6819 /* Return a frame-related rtx that stores REG at MEM.
6841 /* Save register REG to MEM. Make the instruction frame-related. */
6894 if ((cfun->machine->frame.mask | cfun->machine->frame.fmask) != 0)
6906 /* Allocate the rest of the frame. */
6919 from the stack pointer, so use the frame pointer as a
6920 temporary. We should always be using a frame pointer
6941 /* Set up the frame pointer, if we're using one. In mips16 code,
6942 we point the frame pointer ahead of the outgoing argument area.
6947 if (TARGET_MIPS16 && cfun->machine->frame.args_size != 0)
6949 rtx offset = GEN_INT (cfun->machine->frame.args_size);
6950 if (SMALL_OPERAND (cfun->machine->frame.args_size))
6965 cfun->machine->frame.args_size)));
6987 /* Do any necessary cleanup after a function to restore stack, frame,
7060 /* Split the frame into two. STEP1 is the amount of stack we should
7065 step1 = cfun->machine->frame.total_size;
7068 /* Work out which register holds the frame address. Account for the
7069 frame pointer offset used by mips16 code. */
7076 step1 -= cfun->machine->frame.args_size;
7081 if ((cfun->machine->frame.mask | cfun->machine->frame.fmask) != 0)
7119 mips_for_each_saved_reg (cfun->machine->frame.total_size - step2,
7122 /* Deallocate the final bit of the frame. */
7149 if (TARGET_MIPS16 && (cfun->machine->frame.mask & RA_MASK) != 0)
7186 if (cfun->machine->frame.initialized)
7187 return cfun->machine->frame.total_size == 0;