TARGET_PROMOTE_QI_REGS)) \ (MODE) = SImode; \ } while (0) /* Specify the machine mode that pointers have. After generation of rtl, the compiler makes no further distinction between pointers and any other objects of this machine mode. */ #define Pmode (ix86_pmode == PMODE_DI ? DImode : SImode) /* Supply a definition of STACK_SAVEAREA_MODE for emit_stack_save. NONLOCAL needs space to save both shadow stack and stack pointers. FIXME: We only need to save and restore stack pointer in ptr_mode. But expand_builtin_setjmp_setup and expand_builtin_longjmp use Pmode to save and restore stack pointer. See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84150 */ #define STACK_SAVEAREA_MODE(LEVEL) \ ((LEVEL) == SAVE_NONLOCAL ? (TARGET_64BIT ? TImode : DImode) : Pmode) /* Specify the machine_mode of the size increment operand of an 'allocate_stack' named pattern. */ #define STACK_SIZE_MODE Pmode /* A C expression whose value is zero if pointers that need to be extended from being `POINTER_SIZE' bits wide to `Pmode' are sign-extended and greater then zero if they are zero-extended and less then zero if the ptr_extend instruction should be used. */ #define POINTERS_EXTEND_UNSIGNED 1 /* A function address in a call instruction is a byte address (for indexing purposes) so give the MEM rtx a byte's mode. */ #define FUNCTION_MODE QImode