extend.texi (AVR Built-in Functions): Document __builtin_avr_nops.
* doc/extend.texi (AVR Built-in Functions): Document __builtin_avr_nops. * config/avr/builtins.def (NOPS): New. * config/avr/avr.c (avr_expand_nops): New static function. (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS. From-SVN: r238947
This commit is contained in:
parent
7481147265
commit
ee52b11b30
@ -1,3 +1,11 @@
|
||||
2016-08-01 Georg-Johann Lay <avr@gjlay.de>
|
||||
|
||||
* doc/extend.texi (AVR Built-in Functions): Document
|
||||
__builtin_avr_nops.
|
||||
* config/avr/builtins.def (NOPS): New.
|
||||
* config/avr/avr.c (avr_expand_nops): New static function.
|
||||
(avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.
|
||||
|
||||
2016-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||
|
||||
* config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
|
||||
|
@ -12714,6 +12714,18 @@ avr_expand_delay_cycles (rtx operands0)
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
avr_expand_nops (rtx operands0)
|
||||
{
|
||||
unsigned HOST_WIDE_INT n_nops = UINTVAL (operands0) & GET_MODE_MASK (HImode);
|
||||
|
||||
while (n_nops--)
|
||||
{
|
||||
emit_insn (gen_nopv (const1_rtx));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Compute the image of x under f, i.e. perform x --> f(x) */
|
||||
|
||||
static int
|
||||
@ -13388,6 +13400,19 @@ avr_expand_builtin (tree exp, rtx target,
|
||||
return NULL_RTX;
|
||||
}
|
||||
|
||||
case AVR_BUILTIN_NOPS:
|
||||
{
|
||||
arg0 = CALL_EXPR_ARG (exp, 0);
|
||||
op0 = expand_expr (arg0, NULL_RTX, VOIDmode, EXPAND_NORMAL);
|
||||
|
||||
if (!CONST_INT_P (op0))
|
||||
error ("%s expects a compile time integer constant", bname);
|
||||
else
|
||||
avr_expand_nops (op0);
|
||||
|
||||
return NULL_RTX;
|
||||
}
|
||||
|
||||
case AVR_BUILTIN_INSERT_BITS:
|
||||
{
|
||||
arg0 = CALL_EXPR_ARG (exp, 0);
|
||||
|
@ -51,6 +51,7 @@ DEF_BUILTIN (FMULSU, 2, int_ftype_char_uchar, fmulsu, NULL)
|
||||
/* More complex stuff that cannot be mapped 1:1 to an instruction. */
|
||||
|
||||
DEF_BUILTIN (DELAY_CYCLES, -1, void_ftype_ulong, nothing, NULL)
|
||||
DEF_BUILTIN (NOPS, -1, void_ftype_ulong, nothing, NULL)
|
||||
DEF_BUILTIN (INSERT_BITS, 3, uchar_ftype_ulong_uchar_uchar, insert_bits, NULL)
|
||||
DEF_BUILTIN (FLASH_SEGMENT, 1, char_ftype_const_memx_ptr, flash_segment, NULL)
|
||||
|
||||
|
@ -12552,6 +12552,14 @@ __builtin_avr_insert_bits (0xffff3210, bits, val)
|
||||
__builtin_avr_insert_bits (0x01234567, bits, 0)
|
||||
@end smallexample
|
||||
|
||||
@smallexample
|
||||
void __builtin_avr_nops (unsigned count)
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
Insert @code{count} @code{NOP} instructions.
|
||||
The number of instructions must be a compile-time integer constant.
|
||||
|
||||
@node Blackfin Built-in Functions
|
||||
@subsection Blackfin Built-in Functions
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user