All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Frysinger <vapier@gentoo.org>
To: parisc-linux@lists.parisc-linux.org
Subject: [parisc-linux] input constraints in atomic.h too loose ?
Date: Fri, 2 Feb 2007 22:15:50 -0500	[thread overview]
Message-ID: <200702022215.50914.vapier__33994.1175342121$1416624274$gmane$org@gentoo.org> (raw)


[-- Attachment #1.1: Type: text/plain, Size: 903 bytes --]

while building glibc-2.5/cvs with gcc-4.1.1, i hit an error about invalid 
operands in the locking code ... looks like the declared constraints for the 
inputs in atomic.h are too loose ?

$ hppa2.0-unknown-linux-gnu-gcc -O1 -fPIC vfprintf.i -c
/tmp/ccvCRbqg.s: Assembler messages:
/tmp/ccvCRbqg.s:41: Error: bad expression
/tmp/ccvCRbqg.s:41: Error: bad expression
/tmp/ccvCRbqg.s:41: Error: bad expression
/tmp/ccvCRbqg.s:41: Error: bad expression
/tmp/ccvCRbqg.s:41: Error: bad expression
/tmp/ccvCRbqg.s:41: Error: bad expression
/tmp/ccvCRbqg.s:41: Error: Invalid operands 
/tmp/ccvCRbqg.s:43: Error: bad expression
/tmp/ccvCRbqg.s:43: Error: bad expression
/tmp/ccvCRbqg.s:43: Error: bad expression
/tmp/ccvCRbqg.s:43: Error: bad expression
/tmp/ccvCRbqg.s:43: Error: bad expression
/tmp/ccvCRbqg.s:43: Error: bad expression
/tmp/ccvCRbqg.s:43: Error: Invalid operands 
-mike

[-- Attachment #1.2: Type: application/pgp-signature, Size: 827 bytes --]

[-- Attachment #2: vfprintf.i --]
[-- Type: text/x-objcsrc, Size: 834 bytes --]

static void __lll_mutex_lock(int *futex)
{
	int lws_errno = 14; 
	int lws_ret;
	asm (
"0:					\n\t" 
"copy	%3, %%r26			\n\t" 
"copy	%4, %%r25			\n\t" 
"copy	%5, %%r24			\n\t" 
"ble	" "0xb0" "(%%sr2, %%r0)		\n\t" 
"ldi	" "0" ", %%r20		\n\t" 
"cmpib,=,n " "11" ",%%r21,0b	\n\t" 
"nop					\n\t" 
"stw	%%r28, %0			\n\t" 
"sub	%%r0, %%r21, %%r21		\n\t" 
"stw	%%r21, %1			\n\t"
: "=m" (lws_ret), "=m"(lws_errno), "=m"(*futex)
: "r"(futex), "r"(0), "r"(1)
:"r1", "r26", "r25", "r24", "r23", "r22", "r21", "r20", "r28", "r31", "memory"
);
}
typedef struct {
	char *_IO_write_end;
	int lock;
} _IO_FILE;
__attribute__ ((__nothrow__)) __attribute__ ((noinline))
static int buffered_vfprintf(_IO_FILE *s)
{
	char buf[8192];
	_IO_FILE *hp;
	hp->_IO_write_end = buf;
	__lll_mutex_lock(&s->lock);
}
void foo(_IO_FILE *s)
{
	buffered_vfprintf(s);
}

[-- Attachment #3: vfprintf.s --]
[-- Type: text/plain, Size: 1348 bytes --]

	.LEVEL 1.1
	.text
	.align 4
	.type	buffered_vfprintf, @function
buffered_vfprintf:
	.PROC
	.CALLINFO FRAME=8320,CALLS,SAVE_RP,ENTRY_GR=7
	.ENTRY
	stw %r2,-20(%r30)
	addil L'8320,%r30
	ldo R'8320(%r1),%r30
	stw %r8,-112(%r30)
	stw %r7,-108(%r30)
	stw %r6,-104(%r30)
	stw %r5,-100(%r30)
	stw %r4,-96(%r30)
	stw %r19,-32(%r30)
	copy %r26,%r8
	ldil L'-16384,%r28
	ldo 8072(%r28),%r28
	addl %r30,%r28,%r6
	stw %r6,0(%r28)
	ldo 4(%r26),%r5
	ldil L'8192,%r7
	addl %r6,%r7,%r20
	ldi 14,%r28
	stw %r28,0(%r20)
	ldi 0,%r2
	ldi 1,%r29
	ldil L'16384,%r4
	ldo -8188(%r4),%r4
#APP
	0:					
	copy	%r5, %r26			
	copy	%r2, %r25			
	copy	%r29, %r24			
	ble	0xb0(%sr2, %r0)		
	ldi	0, %r20		
	cmpib,=,n 11,%r21,0b	
	nop					
	stw	%r28, %r6(%r4)			
	sub	%r0, %r21, %r21		
	stw	%r21, %r6(%r7)			
	
#NO_APP
	ldw -112(%r30),%r8
	ldw -108(%r30),%r7
	ldw -104(%r30),%r6
	ldw -100(%r30),%r5
	ldw -96(%r30),%r4
	addil L'-8320,%r30
	ldo R'-8320(%r1),%r30
	ldw -20(%r30),%r2
	bv,n %r0(%r2)
	.EXIT
	.PROCEND
	.size	buffered_vfprintf, .-buffered_vfprintf
	.align 4
.globl foo
	.type	foo, @function
foo:
	.PROC
	.CALLINFO FRAME=64,CALLS,SAVE_RP,ENTRY_GR=3
	.ENTRY
	stw %r2,-20(%r30)
	stwm %r4,64(%r30)
	bl buffered_vfprintf,%r2
	stw %r19,-32(%r30)
	ldw -84(%r30),%r2
	bv %r0(%r2)
	ldwm -64(%r30),%r4
	.EXIT
	.PROCEND
	.size	foo, .-foo
	.ident	"GCC: (GNU) 4.1.1 (Gentoo 4.1.1-r3)"

[-- Attachment #4: Type: text/plain, Size: 169 bytes --]

_______________________________________________
parisc-linux mailing list
parisc-linux@lists.parisc-linux.org
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux

             reply	other threads:[~2007-02-03  3:15 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-03  3:15 Mike Frysinger [this message]
     [not found] <200702022215.50914.vapier@gentoo.org>
2007-02-10 21:01 ` [parisc-linux] input constraints in atomic.h too loose ? John David Anglin
     [not found] <200702102101.l1AL11Ai017315@hiauly1.hia.nrc.ca>
2007-02-11  4:42 ` Mike Frysinger
     [not found] <119aab440702110918k1aca7744rc8abb50949a22069@mail.gmail.com>
2007-02-11 17:36 ` John David Anglin
     [not found] <119aab440702110947u418c907eu19c3044230874df4@mail.gmail.com>
2007-02-11 17:59 ` John David Anglin
     [not found] <119aab440702111029h147c9ad5u602262ede5ea64d6@mail.gmail.com>
2007-02-11 18:48 ` John David Anglin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='200702022215.50914.vapier__33994.1175342121$1416624274$gmane$org@gentoo.org' \
    --to=vapier@gentoo.org \
    --cc=parisc-linux@lists.parisc-linux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.