diff options
author | DJ Delorie <dj@redhat.com> | 2010-06-25 23:30:19 -0400 |
---|---|---|
committer | DJ Delorie <dj@gcc.gnu.org> | 2010-06-25 23:30:19 -0400 |
commit | f6052f8680a5510f3f29c51fb69dd2ec3765925a (patch) | |
tree | 029a9ae4281f830a057e8a006a023187ac8c6199 /gcc/doc/extend.texi | |
parent | 19bbf2c4b8041b1ecb367187fe2555243a70d341 (diff) | |
download | gcc-f6052f8680a5510f3f29c51fb69dd2ec3765925a.zip gcc-f6052f8680a5510f3f29c51fb69dd2ec3765925a.tar.gz gcc-f6052f8680a5510f3f29c51fb69dd2ec3765925a.tar.bz2 |
m32c-protos.h (m32c_note_pragma_address): Declare.
* config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
(m32c_output_aligned_common): Likewise.
* config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
(ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
* config/m32c/m32c-pragma.c (m32c_pragma_address): New.
(m32c_register_pragmas): Register it.
* config/m32c/m32c.c (m32c_get_pragma_address): New.
(m32c_insert_attributes): Set #pragma address decls volatile.
(pragma_entry_eq): New.
(pragma_entry_hash): New.
(m32c_note_pragma_address): New.
(m32c_get_pragma_address): New.
(m32c_output_aligned_common): New.
* doc/extend.texi: Document the new pragma.
* config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
also.
* config/m32c/predicates.md (m32c_any_operand): Check the code
instead of memory_operand so as to allow matching volatile MEMs.
(m32c_nonimmediate_operand): Likewise.
(mra_operand): Allow volatiles.
From-SVN: r161425
Diffstat (limited to 'gcc/doc/extend.texi')
-rw-r--r-- | gcc/doc/extend.texi | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 795b6bf..86de226 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -12266,7 +12266,7 @@ subsequent functions. @subsection M32C Pragmas @table @code -@item memregs @var{number} +@item GCC memregs @var{number} @cindex pragma, memregs Overrides the command-line option @code{-memregs=} for the current file. Use with care! This pragma must be before any function in the @@ -12275,6 +12275,21 @@ make them incompatible. This pragma is useful when a performance-critical function uses a memreg for temporary values, as it may allow you to reduce the number of memregs used. +@item ADDRESS @var{name} @var{address} +@cindex pragma, address +For any declared symbols matching @var{name}, this does three things +to that symbol: it forces the symbol to be located at the given +address (a number), it forces the symbol to be volatile, and it +changes the symbol's scope to be static. This pragma exists for +compatibility with other compilers, but note that the common +@code{1234H} numeric syntax is not supported (use @code{0x1234} +instead). Example: + +@example +#pragma ADDRESS port3 0x103 +char port3; +@end example + @end table @node MeP Pragmas |