Lines Matching defs:as

8    it under the terms of the GNU General Public License as published by
127 /* Known address spaces. The order must be the same as in the respective
214 /* RTXs for all general purpose registers as QImode */
243 or to address space __flash* or __memx. Only used as singletons inside
318 /* Access some RTX as INT_MODE. If X is a CONST_FIXED we can get
381 /* Set `avr_arch' as specified by `-mmcu='.
399 happen as options are provided by device-specs. It could be a
673 /* Return nonzero if FUNC is an interrupt function as specified
682 /* Return nonzero if FUNC is a signal function as specified
734 /* Too much attributes make no sense as they request conflicting features. */
778 that the name of the function is "__vector_NN" so as to catch
856 /* Do not push/pop __tmp_reg__, __zero_reg__, as well as
1281 We use the X register as scratch. This is save because in X
1322 will print the above diagnostic as expected. */
1734 /* Restore RAMPZ/Y/X/D using tmp_reg as scratch.
1735 The conditions to restore them must be tha same as in prologue. */
1768 /* Restore SREG using tmp_reg as scratch. */
1817 avr_mode_dependent_address_p (const_rtx addr ATTRIBUTE_UNUSED, addr_space_t as)
1826 return !ADDR_SPACE_GENERIC_P (as);
1833 avr_reg_ok_for_addr_p (rtx reg, addr_space_t as,
1838 as, outer_code, UNKNOWN)
2142 /* Return a pointer register name as a string. */
2159 /* Return the condition name as a string.
2194 /* Output ADDR to FILE as address. */
2263 /* Output X as assembler operand to file FILE.
2956 /* Fixme: This is a hack because secondary reloads don't works as expected.
2958 Find an unused d-register to be used as scratch in INSN.
2997 Prologue/epilogue will care for it as needed. */
3122 addr_space_t as = MEM_ADDR_SPACE (src);
3148 segment = avr_addrspace[as].segment;
3150 /* Set RAMPZ as needed. */
3433 /* Same as out_movqi_r_mr, but TINY does not have ADIW or SBIW */
3518 /* Same as movhi_r_mr, but TINY does not have ADIW, SBIW and LDD */
3542 /* Same as movhi_r_mr, but TINY does not have ADIW, SBIW and LDD */
3571 /* Same as movhi_r_mr, but TINY does not have ADIW, SBIW and LDD */
5282 XOP[2] is an 8-bit scratch register as needed.
5414 Notice that compare instructions do the same as respective subtract
5542 OPERANDS[2] is the shift count as CONST_INT, MEM or REG.
5598 /* Hack to save one word: use __zero_reg__ as loop counter.
7324 + as a + b | add | C == 1 | const, reg | u+ = 0xff | [1u]
7325 + as a - (-b) | sub | C == 0 | const | u+ = 0xff | [2u]
7326 - as a - b | sub | C == 1 | const, reg | u- = 0 | [3u]
7327 - as a + (-b) | add | C == 0 | const | u- = 0 | [4u]
7333 + as a + b | add | V == 1 | const, reg | s+ | [1s]
7334 + as a - (-b) | sub | V == 1 | const | s+ | [2s]
7335 - as a - b | sub | V == 1 | const, reg | s- | [3s]
7336 - as a + (-b) | add | V == 1 | const | s- | [4s]
7562 INSN is a single_set insn or an insn pattern with a binary operation as
7568 scratch as XOP[3].
7824 as printed with PLEN == NULL. */
7912 This includes converting between any fixed point type, as well
7913 as converting to any integer type. Conversion between integer
8298 grab it as a temporary. */
8313 /* Fall back to use __zero_reg__ as a temporary. */
8378 /* Step 3: Sign-extend or zero-extend the destination as needed.
8553 /* HImode byte swap, using xor. This is as quick as using scratch. */
8587 The first move is a conflict as it must wait until second is
8946 /* Handle a "progmem" attribute; arguments as in
8985 /* Handle an attribute requiring a FUNCTION_DECL; arguments as in
9186 addr_space_t as;
9202 as = TYPE_ADDR_SPACE (target);
9204 if (!ADDR_SPACE_GENERIC_P (as)
9206 || avr_addrspace[as].segment >= avr_n_flash
9208 || (!AVR_HAVE_LPM && avr_addrspace[as].pointer_size > 2)))
9210 return as;
9224 be detected and complained about as early as possible. */
9231 addr_space_t as = ADDR_SPACE_GENERIC;
9233 gcc_assert (as == 0);
9244 if (as = avr_nonconst_pointer_addrspace (TREE_TYPE (node)), as)
9249 if (as = avr_nonconst_pointer_addrspace (TREE_TYPE (node)), as)
9254 if (as = avr_nonconst_pointer_addrspace (TREE_TYPE (node)), as)
9259 if (as = avr_nonconst_pointer_addrspace (TREE_TYPE (TREE_TYPE (node))),
9260 as)
9265 if (as = avr_nonconst_pointer_addrspace (node), as)
9272 if (avr_addrspace[as].segment >= avr_n_flash)
9276 node, avr_addrspace[as].name, 64 * avr_n_flash);
9279 reason, node, avr_addrspace[as].name, 64 * avr_n_flash);
9285 avr_addrspace[as].name, node);
9289 avr_addrspace[as].name, reason, node);
9308 addr_space_t as;
9321 as = TYPE_ADDR_SPACE (TREE_TYPE (node));
9323 if (avr_addrspace[as].segment >= avr_n_flash)
9326 "of %d KiB", node, avr_addrspace[as].name, 64 * avr_n_flash);
9328 else if (!AVR_HAVE_LPM && avr_addrspace[as].pointer_size > 2)
9332 node, avr_addrspace[as].name, avr_arch->name);
9340 if (!ADDR_SPACE_GENERIC_P (as))
9341 reason = avr_addrspace[as].name;
9507 but treat function-associated data-like jump tables as code
9508 rather than as user defined data. AVR has no constant pools. */
9561 addr_space_t as = (flags & AVR_SECTION_PROGMEM) / SECTION_MACH_DEP;
9563 const char *new_prefix = avr_addrspace[as].section_name;
9609 addr_space_t as = TYPE_ADDR_SPACE (TREE_TYPE (decl));
9612 Set section flags as if it was in __flash to get the right
9615 if (ADDR_SPACE_GENERIC_P (as))
9616 as = ADDR_SPACE_FLASH;
9618 flags |= as * SECTION_MACH_DEP;
9660 addr_space_t as = TYPE_ADDR_SPACE (type);
9666 as = ADDR_SPACE_FLASH;
9668 AVR_SYMBOL_SET_ADDR_SPACE (sym, as);
9690 is external, treat the address as only a tentative definition
9709 addr_space_t as = TYPE_ADDR_SPACE (TREE_TYPE (decl));
9714 if (ADDR_SPACE_GENERIC_P (as))
9715 as = ADDR_SPACE_FLASH;
9721 const char * new_prefix = avr_addrspace[as].section_name;
9731 if (!progmem_section[as])
9733 progmem_section[as]
9735 avr_addrspace[as].section_name);
9738 return progmem_section[as];
9958 /* Immediate constants are as cheap as registers. */
10795 addr_space_t as ATTRIBUTE_UNUSED,
10918 as binary decision tree. For example code see PR 49903.
11330 for such registers can lead to performance degradation as mentioned
11331 in PR53595. Thus, report invalid hard registers as FALSE. */
11349 addr_space_t as, RTX_CODE outer_code,
11352 if (!ADDR_SPACE_GENERIC_P (as))
11369 addr_space_t as ATTRIBUTE_UNUSED,
11375 if (!ADDR_SPACE_GENERIC_P (as))
11437 The effect on cc0 is as follows:
11550 /* Don't use CLR so that cc0 is set as expected. */
11777 /* Set R0-R17 as fixed registers. Reset R0-R17 in call used register list
11787 /* Set R18 to R21 as callee saved registers
11809 /* Returns true if SCRATCH are safe to be allocated as a scratch
11998 avr_addr_space_address_mode (addr_space_t as)
12000 return avr_addrspace[as].pointer_size == 3 ? PSImode : HImode;
12007 avr_addr_space_pointer_mode (addr_space_t as)
12009 return avr_addr_space_address_mode (as);
12041 bool strict, addr_space_t as)
12045 switch (as)
12123 machine_mode mode, addr_space_t as)
12125 if (ADDR_SPACE_GENERIC_P (as))
12278 /* PR63633: The middle-end might come up with hard regs as input operands.
12345 /* PR63633: The middle-end might come up with hard regs as output operands.
12353 Emit the insn sequence as generated by GEN() with all elements of OPMASK
12369 representation as supplied by define_expand. */
12388 XOP[0] Destination as MEM:BLK
12400 addr_space_t as = MEM_ADDR_SPACE (xop[1]);
12419 gcc_assert (as == ADDR_SPACE_MEMX);
12430 int segment = avr_addrspace[as].segment;
12438 else if (!ADDR_SPACE_GENERIC_P (as))
12440 as = ADDR_SPACE_FLASH;
12449 xas = GEN_INT (as);
12462 load and store as separate insns. Instead, we perform the copy
12467 if (as != ADDR_SPACE_MEMX)
12487 set_mem_addr_space (SET_SRC (XVECEXP (insn, 0, 0)), as);
12504 addr_space_t as = (addr_space_t) INTVAL (op[0]);
12522 switch (as)
12714 Used as constraint helper for C0f and Cxf. */
12735 nibble of the result, we can just as well rotate the bits before inserting
12780 /* Try to decompose F as F = (F o G^-1) o G as described above.
12878 /* Same position: No need to copy as requested by FIXP_P. */
13293 SUBTARGET may be used as the target for computing one of EXP's operands.
13338 " as first argument", bname);
13511 /* No constant as first argument: Don't fold this and run into
13535 we can just as well pass 0. */
13613 shifting in a non-usable value (0) as with logic right-shift. */