This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: asm clobbers, !SMALL_REGISTER_CLASSES patch.
- To: Richard Henderson <rth at cygnus dot com>
- Subject: Re: asm clobbers, !SMALL_REGISTER_CLASSES patch.
- From: David Edelsohn <dje at watson dot ibm dot com>
- Date: Fri, 13 Feb 1998 12:47:00 -0500
- Cc: Geoffrey KEATING <geoffk at discus dot anu dot edu dot au>, egcs at cygnus dot com
>>>>> Richard Henderson writes:
On Thu, Feb 12, 1998 at 11:10:32PM -0500, David Edelsohn wrote:
>> This is a good effort and I am glad that you are continuing to
>> pursue this needed feature, but I am curious why you are choosing to
>> implement it this way instead of as a match_scratch of the appropriate
>> register class?
Richard> A SCRATCH only has a mode, not a register class. There is nowhere to
Richard> set a register class except in the output constraint of an asm_output.
Richard> So the obvious (clobber (scratch:XX )) doesn't do the trick.
SCRATCH only has a mode, but RTL match_scratch includes both a
mode and a register class constraint. For instance some of the AIX
common-mode calls effectively are inlined assembly and are defined with
(clobber (match_scratch:SI 0 "=l"))
and
(clobber (match_scratch:CC 1 "=x"))
i.e., clobbering both the link register and the default fields of the CC
register. I believe that these types of clobbers are what those writing
GCC inlined assembly would like to describe.
David