[MPlayer-dev-eng] [Patch] swscale on gcc4+amd64

Ivan Kalvachev ikalvachev at gmail.com
Fri Jun 10 17:29:57 CEST 2005


On 6/8/05, Rich Felker <dalias at aerifal.cx> wrote:
> On Wed, Jun 08, 2005 at 01:36:40AM +0300, Ivan Kalvachev wrote:
> > I just want to make an uneducated quess.
> > In if I understand the patch right, these 2 variables are used as
> > offsets and are converted to long in order to fit in register.
> >
> > How about using constraint "p" ?
> 
> WTF is constraint "p"? Does it even exist in older gcc versions? I've
> never seen it.

info gcc:

`p'
     An operand that is a valid memory address is allowed.  This is for
     "load address" and "push address" instructions.

     `p' in the constraint must be accompanied by `address_operand' as
     the predicate in the `match_operand'.  This predicate interprets
     the mode specified in the `match_operand' as the mode of the memory
     reference for which the address would be valid.
-

It looks like it is invented for RISC, but is also usable on CISC and
x86 in particular.
The code generated looks identical as if `r` constraint is used (at
least on 3.3.5).

I tried it on gcc 2.95.x and it compiles fine. 

I guess that if it works on gcc-4 we could make an field test.

  Ivan Kalvachev
 iive




More information about the MPlayer-dev-eng mailing list