diff options
author | dj <dj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-05-14 21:27:21 +0000 |
---|---|---|
committer | dj <dj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-05-14 21:27:21 +0000 |
commit | 9f70b545196bd27d5502299f7cdcc911d3496153 (patch) | |
tree | 6164dc3c18ebd6f66884acadd7a0ee343469b3ba /gcc/doc | |
parent | 6077c03597551d3809a6a95298ee1bb9115f8afb (diff) | |
download | gcc-9f70b545196bd27d5502299f7cdcc911d3496153.tar.gz |
* config/msp430/msp430.c (msp430_builtin): Add
MSP430_BUILTIN_DELAY_CYCLES.
(msp430_init_builtins): Register void __delay_cycles(long long).
(msp430_builtin_decl): Add it.
(cg_magic_constant): New.
(msp430_expand_delay_cycles): New.
(msp430_expand_builtin): Call it.
(msp430_print_operand_raw): Change integer printing from "int" to
HOST_WIDE_INT.
* config/msp430/msp430.md (define_constants): Add delay_cycles tags.
(delay_cycles_start): New.
(delay_cycles_end): New.
(delay_cycles_32): New.
(delay_cycles_32x): New.
(delay_cycles_16): New.
(delay_cycles_16x): New.
(delay_cycles_2): New.
(delay_cycles_1): New.
* doc/extend.texi: Document __delay_cycles().
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210441 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/extend.texi | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 3dee5cb8e79..6e99d81f509 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -13194,6 +13194,15 @@ This sets the indicated bits in the saved copy of the status register currently residing on the stack. This only works inside interrupt handlers and the changes to the status register will only take affect once the handler returns. + +@item __delay_cycles (long long @var{cycles}) +This inserts an instruction sequence that takes exactly @var{cycles} +cycles (between 0 and about 17E9) to complete. The inserted sequence +may use jumps, loops, or no-ops, and does not interfere with any other +instructions. Note that @var{cycles} must be a compile-time constant +integer - that is, you must pass a number, not a variable that may be +optimized to a constant later. The number of cycles delayed by this +builtin is exact. @end table @node NDS32 Built-in Functions |