Subject: in_cksum asm chunks.
To: None <port-arm@netbsd.org>
From: Chris Gilbert <chris@paradox.demon.co.uk>
List: port-arm
Date: 08/31/2001 00:09:23
Hi,

I've just been looking over the asm chunks in in_chksum_arm.c, and noticed 
that we don't say that they overwrite the condition codes, I was wondering if 
any knew if this isn't needed on arm?  I was also pondering if there's a way 
to really make sure that all the inputs are seperate registers, I was 
wondering if you could infact have multiple outputs, eg:

#define ADD4	__asm __volatile("	\n\
	ldr	%1,[%3],#4		\n\
	adds	%0,%0,%1		\n\
	adcs	%0,%0,#0\n"		\
	: "=r" (sum), "=r" (tmp1)	\
	: "0" (sum), "r" (w)		\
	: "cc")

The docs on asm don't seem to make this very clear.

Cheers,
Chris