freebsd-skq/sys/i386/include
obrien d7ffc4c6e0 Fix clobbers so that GENERIC may compile with GCC 2.95.2.
Historically, the documentation of extended asm was lacking, namely you
should NOT specify the same register as an input, and a clobber.
If the register is clobbered, it should be specified as an output as well,
e.g., by linking input and output through the "number" notation.
(Beware of lvalues, some local variables needed...)

URL:http://egcs.cygnus.com/faq.html

In versions up to egcs-1.1.1, the compiler did not even warn about it,
but it was liable to output bad code. Newer egcs are pickier and simply
refuse to swallow such code.

Note, since *addr changes, it needs to be an output operand.
We might be excessive in saying that all memory has changed.

Obtained from:	OpenBSD
		w/extra thanks to Marc Espie <Marc.Espie@liafa.jussieu.fr>
1999-11-14 03:36:34 +00:00
..
pc $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
_limits.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ansi.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
apic.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
apicreg.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
apm_bios.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
apm_segments.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
asc_ioctl.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
asm.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
asmacros.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
asnames.h Add a per-signal flag to mark handlers registered with osigaction, so we 1999-10-11 20:33:17 +00:00
atomic.h Use the rev 1.1.2.1 code from RELENG_3 for atomic operations rather 1999-10-04 16:24:08 +00:00
bootinfo.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
bus_at386.h Fix clobbers so that GENERIC may compile with GCC 2.95.2. 1999-11-14 03:36:34 +00:00
bus_dma.h Fix clobbers so that GENERIC may compile with GCC 2.95.2. 1999-11-14 03:36:34 +00:00
bus_memio.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
bus_pc98.h Fix clobbers so that GENERIC may compile with GCC 2.95.2. 1999-11-14 03:36:34 +00:00
bus_pio.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
bus.h Fix clobbers so that GENERIC may compile with GCC 2.95.2. 1999-11-14 03:36:34 +00:00
cdk.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
clock.h i8254_restore is called from apm_default_resume() to reload 1999-10-30 14:56:01 +00:00
comstats.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
console.h The second phase of syscons reorganization. 1999-06-22 14:14:06 +00:00
cpu.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
cpufunc.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
cputypes.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
cronyx.h Don't declare prototypes for driver functions unless KERNEL is defined. 1998-02-03 20:07:02 +00:00
db_machdep.h Fix style bug: order includes 1999-10-04 13:55:35 +00:00
dvcfg.h Changed inline' to __inline' so that this file can be compiled by 1998-02-03 20:14:35 +00:00
elf.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
endian.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
exec.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
float.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
floatingpoint.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
frame.h sigset_t change (part 3 of 5) 1999-09-29 15:06:27 +00:00
globaldata.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
globals.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
gsc.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
i4b_cause.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
i4b_debug.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
i4b_ioctl.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
i4b_rbch_ioctl.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
i4b_tel_ioctl.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
i4b_trace.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ieeefp.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
if_wavelan_ieee.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
if_wl_wavelan.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
iic.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
in_cksum.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ioctl_bt848.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ioctl_ctx.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ioctl_fd.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ioctl_meteor.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
ipl.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
joystick.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
limits.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
lock.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
lpt.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
md_var.h Add a per-signal flag to mark handlers registered with osigaction, so we 1999-10-11 20:33:17 +00:00
mouse.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
mpapic.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
mptable.h Eliminate remaining part of incorrect PCI bus numbering sanity check on systems with more than one PCI bus. 1999-10-15 21:38:15 +00:00
mtpr.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
npx.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
param.h Back out a portion of the last commit. DFLTPHYS and MAXPHYS cannot 1999-09-22 05:48:31 +00:00
pcaudioio.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
pcb_ext.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
pcb.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
pci_cfgreg.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
pcpu.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
pcvt_ioctl.h Adopt syscons's recent change from key_t to keyent_t (this part of 1999-03-04 10:50:36 +00:00
perfmon.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
pmap.h Make pmap_mapdev() deal with non-page-aligned requests. 1999-09-11 20:31:32 +00:00
proc.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
profile.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
psl.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ptrace.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
random.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
reg.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
reloc.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
resource.h * Implement bus_set/get/delete_resource for pci. 1999-10-14 21:38:33 +00:00
segments.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
setjmp.h sigset_t change (part 3 of 5) 1999-09-29 15:06:27 +00:00
si.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
sigframe.h Change the type of sf_addr in struct {o}sigframe from char* to 1999-11-12 11:21:34 +00:00
signal.h Reserve space for FPU state in struct sigcontext. Fix some style bugs 1999-11-12 13:52:11 +00:00
smb.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
smp.h Fix from Tor so that if we enter the debugger in the tristate going to 1999-09-25 18:36:31 +00:00
smptests.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
speaker.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
specialreg.h Add the CR4 values for P3 SIMD enabling support. FXSR tells the cpu that 1999-09-10 15:51:44 +00:00
spigot.h Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
stdarg.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
sysarch.h Some reorganization of sysarch() interface: 1999-09-02 20:59:50 +00:00
trap.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
tss.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
types.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ucontext.h Add a per-signal flag to mark handlers registered with osigaction, so we 1999-10-11 20:33:17 +00:00
ultrasound.h Part 3 of the pcvt/voxware revival. 1999-01-01 08:23:23 +00:00
varargs.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
vm86.h Some reorganization of sysarch() interface: 1999-09-02 20:59:50 +00:00
vmparam.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
wtio.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00