+2002-01-13 Geoffrey Keating <geoffk@redhat.com>
+
+ * 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 <rth@redhat.com>
* reload.c (find_reloads): Use a hard reg destination as reload reg
@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.
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
@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