diff options
Diffstat (limited to 'gcc/doc/md.texi')
-rw-r--r-- | gcc/doc/md.texi | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi index 92c1b28..c4eb355 100644 --- a/gcc/doc/md.texi +++ b/gcc/doc/md.texi @@ -3576,6 +3576,154 @@ Register B14 (aka DP). @end table +@item TILE-Gx---@file{config/tilegx/constraints.md} +@table @code +@item R00 +@itemx R01 +@itemx R02 +@itemx R03 +@itemx R04 +@itemx R05 +@itemx R06 +@itemx R07 +@itemx R08 +@itemx R09 +@itemx R010 +Each of these represents a register constraint for an individual +register, from r0 to r10. + +@item I +Signed 8-bit integer constant. + +@item J +Signed 16-bit integer constant. + +@item K +Unsigned 16-bit integer constant. + +@item L +Integer constant that fits in one signed byte when incremented by one +(@minus{}129 @dots{} 126). + +@item m +Memory operand. If used together with @samp{<} or @samp{>}, the +operand can have postincrement which requires printing with @samp{%In} +and @samp{%in} on TILE-Gx. For example: + +@smallexample +asm ("st_add %I0,%1,%i0" : "=m<>" (*mem) : "r" (val)); +@end smallexample + +@item M +A bit mask suitable for the BFINS instruction. + +@item N +Integer constant that is a byte tiled out eight times. + +@item O +The integer zero constant. + +@item P +Integer constant that is a sign-extended byte tiled out as four shorts. + +@item Q +Integer constant that fits in one signed byte when incremented +(@minus{}129 @dots{} 126), but excluding -1. + +@item S +Integer constant that has all 1 bits consecutive and starting at bit 0. + +@item T +A 16-bit fragment of a got, tls, or pc-relative reference. + +@item U +Memory operand except postincrement. This is roughly the same as +@samp{m} when not used together with @samp{<} or @samp{>}. + +@item W +An 8-element vector constant with identical elements. + +@item Y +A 4-element vector constant with identical elements. + +@item Z0 +The integer constant 0xffffffff. + +@item Z1 +The integer constant 0xffffffff00000000. + +@end table + +@item TILEPro---@file{config/tilepro/constraints.md} +@table @code +@item R00 +@itemx R01 +@itemx R02 +@itemx R03 +@itemx R04 +@itemx R05 +@itemx R06 +@itemx R07 +@itemx R08 +@itemx R09 +@itemx R010 +Each of these represents a register constraint for an individual +register, from r0 to r10. + +@item I +Signed 8-bit integer constant. + +@item J +Signed 16-bit integer constant. + +@item K +Nonzero integer constant with low 16 bits zero. + +@item L +Integer constant that fits in one signed byte when incremented by one +(@minus{}129 @dots{} 126). + +@item m +Memory operand. If used together with @samp{<} or @samp{>}, the +operand can have postincrement which requires printing with @samp{%In} +and @samp{%in} on TILEPro. For example: + +@smallexample +asm ("swadd %I0,%1,%i0" : "=m<>" (mem) : "r" (val)); +@end smallexample + +@item M +A bit mask suitable for the MM instruction. + +@item N +Integer constant that is a byte tiled out four times. + +@item O +The integer zero constant. + +@item P +Integer constant that is a sign-extended byte tiled out as two shorts. + +@item Q +Integer constant that fits in one signed byte when incremented +(@minus{}129 @dots{} 126), but excluding -1. + +@item T +A symbolic operand, or a 16-bit fragment of a got, tls, or pc-relative +reference. + +@item U +Memory operand except postincrement. This is roughly the same as +@samp{m} when not used together with @samp{<} or @samp{>}. + +@item W +A 4-element vector constant with identical elements. + +@item Y +A 2-element vector constant with identical elements. + +@end table + @item Xtensa---@file{config/xtensa/constraints.md} @table @code @item a |