From f6052f8680a5510f3f29c51fb69dd2ec3765925a Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Fri, 25 Jun 2010 23:30:19 -0400 Subject: 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 --- gcc/doc/extend.texi | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'gcc/doc/extend.texi') 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 -- cgit v1.1