diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ee3047beb59..a3ddc7195ce 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2002-01-13 Geoffrey Keating + + * doc/md.texi (Modifiers): Document the '*' constraint for the + user. + + * doc/md.texi (Machine Constraints): Add constraints for xstormy16. + * doc/extend.texi (Function Attributes): 'interrupt' is valid + for xstormy16 too. + 2002-01-13 Richard Henderson * reload.c (find_reloads): Use a hard reg destination as reload reg diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 6266964686c..5b2802ca347 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -2283,10 +2283,10 @@ this option to work correctly. @item interrupt @cindex interrupt handler functions -Use this option on the ARM, AVR and M32R/D ports to indicate that the -specified function is an interrupt handler. The compiler will generate -function entry and exit sequences suitable for use in an interrupt -handler when this attribute is present. +Use this option on the ARM, AVR, M32R/D and Xstormy16 ports to indicate +that the specified function is an interrupt handler. The compiler will +generate function entry and exit sequences suitable for use in an +interrupt handler when this attribute is present. Note, interrupt handlers for the H8/300, H8/300H and SH processors can be specified via the @code{interrupt_handler} attribute. diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi index 86fc8a525dc..77331927d4a 100644 --- a/gcc/doc/md.texi +++ b/gcc/doc/md.texi @@ -1261,13 +1261,13 @@ Says that all following characters, up to the next comma, are to be ignored as a constraint. They are significant only for choosing register preferences. -@ifset INTERNALS @cindex @samp{*} in constraint @item * Says that the following character should be ignored when choosing register preferences. @samp{*} has no effect on the meaning of the constraint as a constraint, and no effect on reloading. +@ifset INTERNALS Here is an example: the 68000 has an instruction to sign-extend a halfword in a data register, and can also sign-extend a value by copying it into an address register. While either kind of register is @@ -2001,6 +2001,73 @@ Symbolic constant suitable for use with the @code{larl} instruction @end table +@item Xstormy16---@file{stormy16.h} +@table @code +@item a +Register r0. + +@item b +Register r1. + +@item c +Register r2. + +@item d +Register r8. + +@item e +Registers r0 through r7. + +@item t +Registers r0 and r1. + +@item y +The carry register. + +@item z +Registers r8 and r9. + +@item I +A constant between 0 and 3 inclusive. + +@item J +A constant that has exactly one bit set. + +@item K +A constant that has exactly one bit clear. + +@item L +A constant between 0 and 255 inclusive. + +@item M +A constant between -255 and 0 inclusive. + +@item N +A constant between -3 and 0 inclusive. + +@item O +A constant between 1 and 4 inclusive. + +@item P +A constant between -4 and -1 inclusive. + +@item Q +A memory reference that is a stack push. + +@item R +A memory reference that is a stack pop. + +@item S +A memory reference that refers to an constant address of known value. + +@item T +The register indicated by Rx (not implemented yet). + +@item U +A constant that is not between 2 and 15 inclusive. + +@end table + @end table @ifset INTERNALS