Compile at -O2. Fix various GCC3-isms
XXX mem.c still fails to assemble.
This commit is contained in:
parent
8f8952e2b1
commit
1dc67abbb1
@ -1,4 +1,4 @@
|
|||||||
# $NetBSD: Makefile.hp700,v 1.4 2003/10/10 20:08:00 jdolecek Exp $
|
# $NetBSD: Makefile.hp700,v 1.5 2003/11/01 18:23:37 matt Exp $
|
||||||
|
|
||||||
# Makefile for NetBSD
|
# Makefile for NetBSD
|
||||||
#
|
#
|
||||||
@ -32,8 +32,6 @@ GENASSYM= ${HP700}/hp700/genassym.cf
|
|||||||
## (2) compile settings
|
## (2) compile settings
|
||||||
##
|
##
|
||||||
CPPFLAGS+= -Dhppa -Dhp700
|
CPPFLAGS+= -Dhppa -Dhp700
|
||||||
# XXX fredette - the compiler blows up with -O2:
|
|
||||||
COPTS+= -O0
|
|
||||||
.if ${IDENT:M-DDDB} != ""
|
.if ${IDENT:M-DDDB} != ""
|
||||||
COPTS+= -fno-omit-frame-pointer
|
COPTS+= -fno-omit-frame-pointer
|
||||||
.endif
|
.endif
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: mem.c,v 1.6 2003/07/15 02:29:24 lukem Exp $ */
|
/* $NetBSD: mem.c,v 1.7 2003/11/01 18:23:37 matt Exp $ */
|
||||||
|
|
||||||
/* $OpenBSD: mem.c,v 1.5 2001/05/05 20:56:36 art Exp $ */
|
/* $OpenBSD: mem.c,v 1.5 2001/05/05 20:56:36 art Exp $ */
|
||||||
|
|
||||||
@ -78,7 +78,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: mem.c,v 1.6 2003/07/15 02:29:24 lukem Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: mem.c,v 1.7 2003/11/01 18:23:37 matt Exp $");
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/systm.h>
|
#include <sys/systm.h>
|
||||||
@ -130,7 +130,7 @@ const struct cdevsw mem_cdevsw = {
|
|||||||
static caddr_t zeropage;
|
static caddr_t zeropage;
|
||||||
|
|
||||||
/* A lock for the vmmap, 16-byte aligned as PA-RISC semaphores must be. */
|
/* A lock for the vmmap, 16-byte aligned as PA-RISC semaphores must be. */
|
||||||
static int32_t vmmap_lock __attribute__ ((aligned (16))) = 1;
|
static __cpu_simple_lock_t vmmap_lock;
|
||||||
|
|
||||||
int
|
int
|
||||||
memmatch(parent, cf, aux)
|
memmatch(parent, cf, aux)
|
||||||
@ -277,11 +277,7 @@ mmrw(dev, uio, flags)
|
|||||||
* acquire it.
|
* acquire it.
|
||||||
*/
|
*/
|
||||||
while (!lockheld) {
|
while (!lockheld) {
|
||||||
__asm __volatile(
|
lockheld = __cpu_simple_lock_try(&vmmap_lock);
|
||||||
" ldcw %1, %0 \n"
|
|
||||||
" comb,=,n %%r0, %0, 0 \n"
|
|
||||||
" sync \n"
|
|
||||||
: "=r" (lockheld), "+m" (vmmap_lock));
|
|
||||||
if (lockheld)
|
if (lockheld)
|
||||||
break;
|
break;
|
||||||
error = tsleep((caddr_t)&vmmap_lock,
|
error = tsleep((caddr_t)&vmmap_lock,
|
||||||
@ -350,10 +346,7 @@ use_kmem:
|
|||||||
|
|
||||||
/* If we hold the vmmap lock, release it. */
|
/* If we hold the vmmap lock, release it. */
|
||||||
if (lockheld) {
|
if (lockheld) {
|
||||||
__asm __volatile(
|
__cpu_simple_unlock(&vmmap_lock);
|
||||||
" sync \n"
|
|
||||||
" stw %1, %0 \n"
|
|
||||||
: "+m" (vmmap_lock) : "r" (1));
|
|
||||||
wakeup((caddr_t)&vmmap_lock);
|
wakeup((caddr_t)&vmmap_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: pdc.c,v 1.9 2003/07/15 02:29:24 lukem Exp $ */
|
/* $NetBSD: pdc.c,v 1.10 2003/11/01 18:23:37 matt Exp $ */
|
||||||
|
|
||||||
/* $OpenBSD: pdc.c,v 1.14 2001/04/29 21:05:43 mickey Exp $ */
|
/* $OpenBSD: pdc.c,v 1.14 2001/04/29 21:05:43 mickey Exp $ */
|
||||||
|
|
||||||
@ -33,7 +33,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: pdc.c,v 1.9 2003/07/15 02:29:24 lukem Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: pdc.c,v 1.10 2003/11/01 18:23:37 matt Exp $");
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/systm.h>
|
#include <sys/systm.h>
|
||||||
@ -198,7 +198,8 @@ pdcopen(dev, flag, mode, p)
|
|||||||
} else if ((tp->t_state&TS_XCLUDE) && suser(p->p_ucred, &p->p_acflag)) {
|
} else if ((tp->t_state&TS_XCLUDE) && suser(p->p_ucred, &p->p_acflag)) {
|
||||||
splx(s);
|
splx(s);
|
||||||
return EBUSY;
|
return EBUSY;
|
||||||
}
|
} else
|
||||||
|
setuptimeout = 0;
|
||||||
tp->t_state |= TS_CARR_ON;
|
tp->t_state |= TS_CARR_ON;
|
||||||
|
|
||||||
splx(s);
|
splx(s);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: disksubr.c,v 1.6 2003/08/07 16:27:44 agc Exp $ */
|
/* $NetBSD: disksubr.c,v 1.7 2003/11/01 18:23:37 matt Exp $ */
|
||||||
|
|
||||||
/* $OpenBSD: disksubr.c,v 1.6 2000/10/18 21:00:34 mickey Exp $ */
|
/* $OpenBSD: disksubr.c,v 1.6 2000/10/18 21:00:34 mickey Exp $ */
|
||||||
|
|
||||||
@ -83,7 +83,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: disksubr.c,v 1.6 2003/08/07 16:27:44 agc Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: disksubr.c,v 1.7 2003/11/01 18:23:37 matt Exp $");
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/systm.h>
|
#include <sys/systm.h>
|
||||||
@ -777,6 +777,8 @@ writedisklabel(dev, strat, lp, osdep)
|
|||||||
* think it might be useful to reprobe if someone has written
|
* think it might be useful to reprobe if someone has written
|
||||||
* a newer disklabel of another type with disklabel(8) and -r.
|
* a newer disklabel of another type with disklabel(8) and -r.
|
||||||
*/
|
*/
|
||||||
|
labeloffset = -1;
|
||||||
|
endian = BIG_ENDIAN;
|
||||||
for (tp = probe_order; msg && *tp != -1; tp++) {
|
for (tp = probe_order; msg && *tp != -1; tp++) {
|
||||||
dl = *lp;
|
dl = *lp;
|
||||||
switch (*tp) {
|
switch (*tp) {
|
||||||
@ -816,9 +818,12 @@ writedisklabel(dev, strat, lp, osdep)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
panic("unrecognized disklabel tag %d", *tp);
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (labeloffset == -1) {
|
||||||
|
return EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
if (msg) {
|
if (msg) {
|
||||||
if (partoff == -1)
|
if (partoff == -1)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: intr.c,v 1.5 2003/06/16 20:01:00 thorpej Exp $ */
|
/* $NetBSD: intr.c,v 1.6 2003/11/01 18:23:37 matt Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2002 The NetBSD Foundation, Inc.
|
* Copyright (c) 2002 The NetBSD Foundation, Inc.
|
||||||
@ -41,7 +41,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: intr.c,v 1.5 2003/06/16 20:01:00 thorpej Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: intr.c,v 1.6 2003/11/01 18:23:37 matt Exp $");
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/malloc.h>
|
#include <sys/malloc.h>
|
||||||
@ -370,6 +370,7 @@ hp700_intr_init(void)
|
|||||||
*/
|
*/
|
||||||
cpl = -1;
|
cpl = -1;
|
||||||
ipending = 0;
|
ipending = 0;
|
||||||
|
eiem = 0;
|
||||||
for (idx = 0; idx < HP700_INT_BITS; idx++) {
|
for (idx = 0; idx < HP700_INT_BITS; idx++) {
|
||||||
int_reg = hp700_int_regs[idx];
|
int_reg = hp700_int_regs[idx];
|
||||||
if (int_reg == NULL)
|
if (int_reg == NULL)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: machdep.c,v 1.13 2003/08/31 01:26:32 chs Exp $ */
|
/* $NetBSD: machdep.c,v 1.14 2003/11/01 18:23:37 matt Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 2001, 2002 The NetBSD Foundation, Inc.
|
* Copyright (c) 2001, 2002 The NetBSD Foundation, Inc.
|
||||||
@ -70,7 +70,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.13 2003/08/31 01:26:32 chs Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.14 2003/11/01 18:23:37 matt Exp $");
|
||||||
|
|
||||||
#include "opt_cputype.h"
|
#include "opt_cputype.h"
|
||||||
#include "opt_ddb.h"
|
#include "opt_ddb.h"
|
||||||
@ -874,7 +874,7 @@ cpu_startup()
|
|||||||
* in that they usually occupy more virtual memory than physical.
|
* in that they usually occupy more virtual memory than physical.
|
||||||
*/
|
*/
|
||||||
size = MAXBSIZE * nbuf;
|
size = MAXBSIZE * nbuf;
|
||||||
if (uvm_map(kernel_map, (vaddr_t *) &buffers, round_page(size),
|
if (uvm_map(kernel_map, (vaddr_t *)(void *)&buffers, round_page(size),
|
||||||
NULL, UVM_UNKNOWN_OFFSET, 0, UVM_MAPFLAG(UVM_PROT_NONE, UVM_PROT_NONE,
|
NULL, UVM_UNKNOWN_OFFSET, 0, UVM_MAPFLAG(UVM_PROT_NONE, UVM_PROT_NONE,
|
||||||
UVM_INH_NONE, UVM_ADV_NORMAL, 0)) != 0)
|
UVM_INH_NONE, UVM_ADV_NORMAL, 0)) != 0)
|
||||||
panic("cpu_startup: cannot allocate VM for buffers");
|
panic("cpu_startup: cannot allocate VM for buffers");
|
||||||
@ -1197,6 +1197,7 @@ hppa_btlb_insert(pa_space_t space, vaddr_t va, paddr_t pa,
|
|||||||
*/
|
*/
|
||||||
btlb_slot_end = btlb_slots + btlb_slots_count;
|
btlb_slot_end = btlb_slots + btlb_slots_count;
|
||||||
total_mapped_frames = 0;
|
total_mapped_frames = 0;
|
||||||
|
btlb_slot_best_score = 0;
|
||||||
while (need_dbtlb || need_ibtlb) {
|
while (need_dbtlb || need_ibtlb) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: db_disasm.c,v 1.3 2003/08/31 01:26:34 chs Exp $ */
|
/* $NetBSD: db_disasm.c,v 1.4 2003/11/01 18:23:38 matt Exp $ */
|
||||||
|
|
||||||
/* $OpenBSD: db_disasm.c,v 1.9 2000/04/18 20:02:45 mickey Exp $ */
|
/* $OpenBSD: db_disasm.c,v 1.9 2000/04/18 20:02:45 mickey Exp $ */
|
||||||
|
|
||||||
@ -51,7 +51,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: db_disasm.c,v 1.3 2003/08/31 01:26:34 chs Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: db_disasm.c,v 1.4 2003/11/01 18:23:38 matt Exp $");
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/systm.h>
|
#include <sys/systm.h>
|
||||||
@ -257,9 +257,9 @@ struct ute {
|
|||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#ifdef BITFRL
|
#ifdef BITFRL
|
||||||
#define DeclBitfR(s,l,n) struct n { int:(HOSTWDSZ-(s)-(l)); unsigned n:l;};
|
#define DeclBitfR(s,l,n) struct n { int:(HOSTWDSZ-(s)-(l)); unsigned n:l;} n;
|
||||||
#else
|
#else
|
||||||
#define DeclBitfR(s,l,n) struct n { int:((s)+(HOSTWDSZ-32)); unsigned n:l;};
|
#define DeclBitfR(s,l,n) struct n { int:((s)+(HOSTWDSZ-32)); unsigned n:l;} n;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------
|
/*---------------------------------------------------------------------------
|
||||||
@ -274,7 +274,7 @@ struct ute {
|
|||||||
* correspond to the "s" and "l" arguments in DeclBitfR)
|
* correspond to the "s" and "l" arguments in DeclBitfR)
|
||||||
* Translates to a single instruction on both the VAX and the DEC-20.
|
* Translates to a single instruction on both the VAX and the DEC-20.
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
#define BitfR(i,s,l,n) (((struct n *)&i)->n)
|
#define BitfR(i,s,l,n) (i.n.n)
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------
|
/*---------------------------------------------------------------------------
|
||||||
* Bitfield$eXtract - Extract the specified field from an integer. Arguments
|
* Bitfield$eXtract - Extract the specified field from an integer. Arguments
|
||||||
@ -283,7 +283,7 @@ struct ute {
|
|||||||
* two instructions on the VAX, three on the DEC-20.
|
* two instructions on the VAX, three on the DEC-20.
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#define BitfX(i,s,l) (((i) >> (32-(s)-(l))) & ((1 << (l)) - 1))
|
#define BitfX(i,s,l) (((i.w) >> (32-(s)-(l))) & ((1 << (l)) - 1))
|
||||||
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------
|
/*---------------------------------------------------------------------------
|
||||||
@ -318,6 +318,8 @@ struct ute {
|
|||||||
* if the declarations are identical, all DeclBitfR invocations are
|
* if the declarations are identical, all DeclBitfR invocations are
|
||||||
* given here in one file. */
|
* given here in one file. */
|
||||||
|
|
||||||
|
union insn {
|
||||||
|
int w;
|
||||||
DeclBitfR(0,1,_b01)
|
DeclBitfR(0,1,_b01)
|
||||||
DeclBitfR(0,15,_b015)
|
DeclBitfR(0,15,_b015)
|
||||||
DeclBitfR(0,16,_b016)
|
DeclBitfR(0,16,_b016)
|
||||||
@ -385,6 +387,7 @@ DeclBitfR(29,1,_b291)
|
|||||||
DeclBitfR(30,1,_b301)
|
DeclBitfR(30,1,_b301)
|
||||||
DeclBitfR(30,2,_b302)
|
DeclBitfR(30,2,_b302)
|
||||||
DeclBitfR(31,1,_b311)
|
DeclBitfR(31,1,_b311)
|
||||||
|
};
|
||||||
|
|
||||||
/******************/
|
/******************/
|
||||||
/* Word subfields */
|
/* Word subfields */
|
||||||
@ -772,7 +775,7 @@ struct inst {
|
|||||||
u_int count; /* frequency counter for analysis */
|
u_int count; /* frequency counter for analysis */
|
||||||
char mnem[8]; /* ascii mnemonic */
|
char mnem[8]; /* ascii mnemonic */
|
||||||
/* disassembly function */
|
/* disassembly function */
|
||||||
int (*dasmfcn)(const struct inst *, OFS, int);
|
int (*dasmfcn)(const struct inst *, OFS, union insn);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -905,44 +908,44 @@ struct majoropcode {
|
|||||||
/*##################### Globals - Imports ##################################*/
|
/*##################### Globals - Imports ##################################*/
|
||||||
|
|
||||||
/* Disassembly functions */
|
/* Disassembly functions */
|
||||||
int fcoprDasm __P((int w, u_int op1, u_int));
|
int fcoprDasm __P((union insn, u_int, u_int));
|
||||||
char *edDCond __P((u_int cond));
|
char *edDCond __P((u_int cond));
|
||||||
char *unitDCond __P((u_int cond));
|
char *unitDCond __P((u_int cond));
|
||||||
char *addDCond __P((u_int cond));
|
char *addDCond __P((u_int cond));
|
||||||
char *subDCond __P((u_int cond));
|
char *subDCond __P((u_int cond));
|
||||||
int blDasm __P((const struct inst *i, OFS ofs, int w));
|
int blDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int ldDasm __P((const struct inst *, OFS, int));
|
int ldDasm __P((const struct inst *, OFS, union insn));
|
||||||
int stDasm __P((const struct inst *i, OFS, int));
|
int stDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int addDasm __P((const struct inst *i, OFS, int));
|
int addDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int unitDasm __P((const struct inst *i, OFS, int));
|
int unitDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int iaDasm __P((const struct inst *i, OFS, int));
|
int iaDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int shdDasm __P((const struct inst *i, OFS, int));
|
int shdDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int extrDasm __P((const struct inst *i, OFS, int));
|
int extrDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int vextrDasm __P((const struct inst *i, OFS, int));
|
int vextrDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int depDasm __P((const struct inst *i, OFS, int));
|
int depDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int vdepDasm __P((const struct inst *i, OFS, int));
|
int vdepDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int depiDasm __P((const struct inst *i, OFS, int));
|
int depiDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int vdepiDasm __P((const struct inst *i, OFS, int));
|
int vdepiDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int limmDasm __P((const struct inst *i, OFS, int));
|
int limmDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int brkDasm __P((const struct inst *i, OFS, int));
|
int brkDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int lpkDasm __P((const struct inst *i, OFS, int));
|
int lpkDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int fmpyaddDasm __P((const struct inst *i, OFS, int));
|
int fmpyaddDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int fmpysubDasm __P((const struct inst *i, OFS, int));
|
int fmpysubDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int floatDasm __P((const struct inst *i, OFS, int));
|
int floatDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int coprDasm __P((const struct inst *i, OFS, int));
|
int coprDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int diagDasm __P((const struct inst *i, OFS, int));
|
int diagDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int scDasm __P((const struct inst *i, OFS, int));
|
int scDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int mmgtDasm __P((const struct inst *i, OFS, int));
|
int mmgtDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int ldxDasm __P((const struct inst *i, OFS, int));
|
int ldxDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int stsDasm __P((const struct inst *i, OFS, int));
|
int stsDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int stbysDasm __P((const struct inst *i, OFS, int));
|
int stbysDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int brDasm __P((const struct inst *i, OFS, int));
|
int brDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int bvDasm __P((const struct inst *i, OFS, int));
|
int bvDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int beDasm __P((const struct inst *i, OFS, int));
|
int beDasm __P((const struct inst *i, OFS, union insn));
|
||||||
int cbDasm __P((const struct inst *i,OFS ofs, int));
|
int cbDasm __P((const struct inst *i,OFS ofs, union insn));
|
||||||
int cbiDasm __P((const struct inst *i,OFS ofs, int));
|
int cbiDasm __P((const struct inst *i,OFS ofs, union insn));
|
||||||
int bbDasm __P((const struct inst *i,OFS ofs, int));
|
int bbDasm __P((const struct inst *i,OFS ofs, union insn));
|
||||||
int ariDasm __P((const struct inst *i, OFS, int));
|
int ariDasm __P((const struct inst *i, OFS, union insn));
|
||||||
|
|
||||||
/*##################### Globals - Exports ##################################*/
|
/*##################### Globals - Exports ##################################*/
|
||||||
/*##################### Local Variables ####################################*/
|
/*##################### Local Variables ####################################*/
|
||||||
@ -1308,7 +1311,7 @@ int
|
|||||||
addDasm(i, ofs, w)
|
addDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
db_printf("%s\t%%r%d,%%r%d,%%r%d",addDCond(Cond4(w)),
|
db_printf("%s\t%%r%d,%%r%d,%%r%d",addDCond(Cond4(w)),
|
||||||
Rsa(w),Rsb(w),Rtc(w));
|
Rsa(w),Rsb(w),Rtc(w));
|
||||||
@ -1320,7 +1323,7 @@ int
|
|||||||
unitDasm(i, ofs, w)
|
unitDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
db_printf(unitDCond(Cond4(w)));
|
db_printf(unitDCond(Cond4(w)));
|
||||||
if (Match("dcor") || Match("idcor"))
|
if (Match("dcor") || Match("idcor"))
|
||||||
@ -1335,7 +1338,7 @@ int
|
|||||||
iaDasm(i, ofs, w)
|
iaDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
if (Match("addi"))
|
if (Match("addi"))
|
||||||
db_printf("%s\t%d,%%r%d,%%r%d",
|
db_printf("%s\t%d,%%r%d,%%r%d",
|
||||||
@ -1351,7 +1354,7 @@ int
|
|||||||
shdDasm(i, ofs, w)
|
shdDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
if (Match("vshd"))
|
if (Match("vshd"))
|
||||||
db_printf("%s\t%%r%d,%%r%d,%%r%d",
|
db_printf("%s\t%%r%d,%%r%d,%%r%d",
|
||||||
@ -1367,7 +1370,7 @@ int
|
|||||||
extrDasm(i, ofs, w)
|
extrDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
db_printf("%s\t%%r%d,%d,%d,%%r%d",
|
db_printf("%s\t%%r%d,%d,%d,%%r%d",
|
||||||
edDCond(Cond(w)),Rsb(w),Imd5(w),32 - Rsc(w),Rta(w));
|
edDCond(Cond(w)),Rsb(w),Imd5(w),32 - Rsc(w),Rta(w));
|
||||||
@ -1380,7 +1383,7 @@ int
|
|||||||
vextrDasm(i, ofs, w)
|
vextrDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
db_printf("%s\t%%r%d,%d,%%r%d",
|
db_printf("%s\t%%r%d,%d,%%r%d",
|
||||||
edDCond(Cond(w)),Rsb(w),32 - Rsc(w),Rta(w));
|
edDCond(Cond(w)),Rsb(w),32 - Rsc(w),Rta(w));
|
||||||
@ -1393,7 +1396,7 @@ int
|
|||||||
depDasm(i, ofs, w)
|
depDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
db_printf("%s\t%%r%d,%d,%d,%%r%d",
|
db_printf("%s\t%%r%d,%d,%d,%%r%d",
|
||||||
edDCond(Cond(w)),Rsa(w),31 - Imd5(w),32 - Rsc(w),Rtb(w));
|
edDCond(Cond(w)),Rsa(w),31 - Imd5(w),32 - Rsc(w),Rtb(w));
|
||||||
@ -1406,7 +1409,7 @@ int
|
|||||||
vdepDasm(i, ofs, w)
|
vdepDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
db_printf("%s\t%%r%d,%d,%%r%d",
|
db_printf("%s\t%%r%d,%d,%%r%d",
|
||||||
edDCond(Cond(w)),Rsa(w),32 - Rsc(w),Rtb(w));
|
edDCond(Cond(w)),Rsa(w),32 - Rsc(w),Rtb(w));
|
||||||
@ -1419,7 +1422,7 @@ int
|
|||||||
depiDasm(i, ofs, w)
|
depiDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
db_printf("%s\t%d,%d,%d,%%r%d",
|
db_printf("%s\t%d,%d,%d,%%r%d",
|
||||||
edDCond(Cond(w)),Ima5(w),31 - Imd5(w),32 - Imc5A(w),Rtb(w));
|
edDCond(Cond(w)),Ima5(w),31 - Imd5(w),32 - Imc5A(w),Rtb(w));
|
||||||
@ -1431,7 +1434,7 @@ int
|
|||||||
vdepiDasm(i, ofs, w)
|
vdepiDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
db_printf("%s\t%d,%d,%%r%d",edDCond(Cond(w)),Ima5(w),32-Imc5A(w),Rtb(w));
|
db_printf("%s\t%d,%d,%%r%d",edDCond(Cond(w)),Ima5(w),32-Imc5A(w),Rtb(w));
|
||||||
return (1);
|
return (1);
|
||||||
@ -1552,7 +1555,7 @@ int
|
|||||||
ldDasm(i, ofs, w)
|
ldDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
int d = Disp(w);
|
int d = Disp(w);
|
||||||
char s[2];
|
char s[2];
|
||||||
@ -1581,7 +1584,7 @@ int
|
|||||||
stDasm(i, ofs, w)
|
stDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
int d = Disp(w);
|
int d = Disp(w);
|
||||||
char s[2];
|
char s[2];
|
||||||
@ -1609,7 +1612,7 @@ int
|
|||||||
ldxDasm(i, ofs, w)
|
ldxDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
const char *p;
|
const char *p;
|
||||||
|
|
||||||
@ -1623,6 +1626,7 @@ ldxDasm(i, ofs, w)
|
|||||||
db_printf(",%sm", IndxShft(w)? "s":"");
|
db_printf(",%sm", IndxShft(w)? "s":"");
|
||||||
}
|
}
|
||||||
switch (CacheCtrl(w)) {
|
switch (CacheCtrl(w)) {
|
||||||
|
default:
|
||||||
case NOACTION: p = ""; break;
|
case NOACTION: p = ""; break;
|
||||||
case STACKREF: p = ",c"; break;
|
case STACKREF: p = ",c"; break;
|
||||||
case SEQPASS: p = ",q"; break;
|
case SEQPASS: p = ",q"; break;
|
||||||
@ -1645,13 +1649,14 @@ int
|
|||||||
stsDasm(i, ofs, w)
|
stsDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
const char *p;
|
const char *p;
|
||||||
if (Modify(w))
|
if (Modify(w))
|
||||||
db_printf(",m%s", ModBefore(w)? "b":"a");
|
db_printf(",m%s", ModBefore(w)? "b":"a");
|
||||||
|
|
||||||
switch (CacheCtrl(w)) {
|
switch (CacheCtrl(w)) {
|
||||||
|
default:
|
||||||
case NOACTION: p = ""; break;
|
case NOACTION: p = ""; break;
|
||||||
case STACKREF: p = ",c"; break;
|
case STACKREF: p = ",c"; break;
|
||||||
case SEQPASS: p = ",q"; break;
|
case SEQPASS: p = ",q"; break;
|
||||||
@ -1670,13 +1675,14 @@ int
|
|||||||
stbysDasm(i, ofs, w)
|
stbysDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
const char *p;
|
const char *p;
|
||||||
db_printf(ModBefore(w)? ",e":",b");
|
db_printf(ModBefore(w)? ",e":",b");
|
||||||
if (Modify(w))
|
if (Modify(w))
|
||||||
db_printf(",m");
|
db_printf(",m");
|
||||||
switch (CacheCtrl(w)) {
|
switch (CacheCtrl(w)) {
|
||||||
|
default:
|
||||||
case NOACTION: p = ""; break;
|
case NOACTION: p = ""; break;
|
||||||
case STACKREF: p = ",f"; break;
|
case STACKREF: p = ",f"; break;
|
||||||
case SEQPASS: p = ",r"; break;
|
case SEQPASS: p = ",r"; break;
|
||||||
@ -1695,7 +1701,7 @@ int
|
|||||||
limmDasm(i, ofs, w)
|
limmDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
db_printf("\tL'%X,%%r%d", Im21(w), Rtb(w));
|
db_printf("\tL'%X,%%r%d", Im21(w), Rtb(w));
|
||||||
return (1);
|
return (1);
|
||||||
@ -1707,7 +1713,7 @@ int
|
|||||||
blDasm(i, ofs, w)
|
blDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
OFS tgtofs = ofs + 8 + Bdisp(w);
|
OFS tgtofs = ofs + 8 + Bdisp(w);
|
||||||
u_int link = Rtb(w);
|
u_int link = Rtb(w);
|
||||||
@ -1731,7 +1737,7 @@ int
|
|||||||
brDasm(i, ofs, w)
|
brDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
db_printf("%s\t%%r%d,%%r%d", Nu(w)?",n":"", Rsa(w), Rtb(w));
|
db_printf("%s\t%%r%d,%%r%d", Nu(w)?",n":"", Rsa(w), Rtb(w));
|
||||||
return (1);
|
return (1);
|
||||||
@ -1742,7 +1748,7 @@ int
|
|||||||
bvDasm(i, ofs, w)
|
bvDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
db_printf("%s\t%%r%d(%%r%d)", Nu(w)?",n":"", Rsa(w), Rsb(w));
|
db_printf("%s\t%%r%d(%%r%d)", Nu(w)?",n":"", Rsa(w), Rsb(w));
|
||||||
return (1);
|
return (1);
|
||||||
@ -1753,7 +1759,7 @@ int
|
|||||||
beDasm(i, ofs, w)
|
beDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
int d = Bdisp(w);
|
int d = Bdisp(w);
|
||||||
const char *p;
|
const char *p;
|
||||||
@ -1778,7 +1784,7 @@ int
|
|||||||
cbDasm(i, ofs, w)
|
cbDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
OFS tgtofs = ofs + 8 + Cbdisp(w);
|
OFS tgtofs = ofs + 8 + Cbdisp(w);
|
||||||
|
|
||||||
@ -1798,7 +1804,7 @@ int
|
|||||||
cbiDasm(i, ofs, w)
|
cbiDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
OFS tgtofs = ofs + 8 + Cbdisp(w);
|
OFS tgtofs = ofs + 8 + Cbdisp(w);
|
||||||
|
|
||||||
@ -1818,7 +1824,7 @@ int
|
|||||||
bbDasm(i, ofs, w)
|
bbDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
OFS tgtofs = ofs + 8 + Cbdisp(w);
|
OFS tgtofs = ofs + 8 + Cbdisp(w);
|
||||||
const char *p;
|
const char *p;
|
||||||
@ -1838,7 +1844,7 @@ int
|
|||||||
ariDasm(i, ofs, w)
|
ariDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
if (Match("or") && Rsb(w) == 0 && Cond4(w) == NEV) {
|
if (Match("or") && Rsb(w) == 0 && Cond4(w) == NEV) {
|
||||||
if (Rsa(w) == 0 && Rtc(w) == 0)
|
if (Rsa(w) == 0 && Rtc(w) == 0)
|
||||||
@ -1856,7 +1862,7 @@ int
|
|||||||
scDasm(i, ofs, w)
|
scDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
if (Match("mtctl")) {
|
if (Match("mtctl")) {
|
||||||
if (Rtb(w) == 11)
|
if (Rtb(w) == 11)
|
||||||
@ -1890,7 +1896,7 @@ int
|
|||||||
mmgtDasm(i, ofs, w)
|
mmgtDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
if (Match("probe")) {
|
if (Match("probe")) {
|
||||||
if (ProbeI(w)) {
|
if (ProbeI(w)) {
|
||||||
@ -1950,7 +1956,7 @@ int
|
|||||||
brkDasm(i, ofs, w)
|
brkDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
db_printf("\t%d,%d",Bi1(w),Bi2(w));
|
db_printf("\t%d,%d",Bi1(w),Bi2(w));
|
||||||
return (1);
|
return (1);
|
||||||
@ -1960,7 +1966,7 @@ int
|
|||||||
floatDasm(i, ofs, w)
|
floatDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
u_int op1, r1, fmt, t;
|
u_int op1, r1, fmt, t;
|
||||||
u_int op2, r2, dfmt;
|
u_int op2, r2, dfmt;
|
||||||
@ -2030,12 +2036,16 @@ floatDasm(i, ofs, w)
|
|||||||
if ((dfmt & 1) == 0 && (Uid(w) & 1))
|
if ((dfmt & 1) == 0 && (Uid(w) & 1))
|
||||||
t++;
|
t++;
|
||||||
/* Opclass 1: 1 source, 1 destination conversions */
|
/* Opclass 1: 1 source, 1 destination conversions */
|
||||||
|
p = &"ff\0\0xf\0\0fx\0\0fxt\0"[((op1) >> 4) & 0x0c];
|
||||||
|
#if 0
|
||||||
switch((op1 >> 6) & 3) {
|
switch((op1 >> 6) & 3) {
|
||||||
|
default:
|
||||||
case 0: p = "ff"; break;
|
case 0: p = "ff"; break;
|
||||||
case 1: p = "xf"; break;
|
case 1: p = "xf"; break;
|
||||||
case 2: p = "fx"; break;
|
case 2: p = "fx"; break;
|
||||||
case 3: p = "fxt"; break;
|
case 3: p = "fxt"; break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
db_printf("%s,%s", p, fmtStrTbl[fmt]);
|
db_printf("%s,%s", p, fmtStrTbl[fmt]);
|
||||||
db_printf(",%s\t%%f%s,%%f%s",fmtStrTbl[dfmt],ST(r1),DT(t));
|
db_printf(",%s\t%%f%s,%%f%s",fmtStrTbl[dfmt],ST(r1),DT(t));
|
||||||
} else { /* class 0 */
|
} else { /* class 0 */
|
||||||
@ -2062,7 +2072,7 @@ floatDasm(i, ofs, w)
|
|||||||
|
|
||||||
int
|
int
|
||||||
fcoprDasm(w, op1, op2)
|
fcoprDasm(w, op1, op2)
|
||||||
int w;
|
union insn w;
|
||||||
u_int op1, op2;
|
u_int op1, op2;
|
||||||
{
|
{
|
||||||
u_int r1, r2, t, fmt, dfmt;
|
u_int r1, r2, t, fmt, dfmt;
|
||||||
@ -2100,12 +2110,15 @@ fcoprDasm(w, op1, op2)
|
|||||||
/* Opclass 1: 1 source, 1 destination conversions */
|
/* Opclass 1: 1 source, 1 destination conversions */
|
||||||
r1 = (op1 >> 12) & 0x1f; t = op2;
|
r1 = (op1 >> 12) & 0x1f; t = op2;
|
||||||
fmt = (op1 >> 2) & 3; dfmt = (op1 >> 4) & 3;
|
fmt = (op1 >> 2) & 3; dfmt = (op1 >> 4) & 3;
|
||||||
|
p = &"ff\0\0xf\0\0fx\0\0fxt\0"[((op1) >> 4) & 0x0c];
|
||||||
|
#if 0
|
||||||
switch((op1 >> 6) & 3) {
|
switch((op1 >> 6) & 3) {
|
||||||
case 0: p = "ff"; break;
|
case 0: p = "ff"; break;
|
||||||
case 1: p = "xf"; break;
|
case 1: p = "xf"; break;
|
||||||
case 2: p = "fx"; break;
|
case 2: p = "fx"; break;
|
||||||
case 3: p = "fxt"; break;
|
case 3: p = "fxt"; break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
db_printf("fcnv%s,%s,%s\t%%fr%d,%%fr%d",
|
db_printf("fcnv%s,%s,%s\t%%fr%d,%%fr%d",
|
||||||
p, fmtStrTbl[fmt], fmtStrTbl[dfmt], r1, t);
|
p, fmtStrTbl[fmt], fmtStrTbl[dfmt], r1, t);
|
||||||
break;
|
break;
|
||||||
@ -2146,12 +2159,12 @@ int
|
|||||||
coprDasm(i, ofs, w)
|
coprDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
u_int uid = Uid(w);
|
u_int uid = Uid(w);
|
||||||
int load = 0;
|
int load = 0;
|
||||||
char *pfx = uid > 1 ? "c" : "f";
|
char *pfx = uid > 1 ? "c" : "f";
|
||||||
int dreg;
|
int dreg = 0;
|
||||||
|
|
||||||
if (Match("copr")) {
|
if (Match("copr")) {
|
||||||
if (uid) {
|
if (uid) {
|
||||||
@ -2236,7 +2249,7 @@ int
|
|||||||
lpkDasm(i, ofs, w)
|
lpkDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Floating point STore Quad
|
* Floating point STore Quad
|
||||||
@ -2272,7 +2285,7 @@ int
|
|||||||
diagDasm(i, ofs, w)
|
diagDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
if (0x0b0 == BitfR(w,19,8,_b198)) /* mtcpu */
|
if (0x0b0 == BitfR(w,19,8,_b198)) /* mtcpu */
|
||||||
db_printf("mtcpu\t%%r%d,%%dr%d", Rsa(w), Rtb(w));
|
db_printf("mtcpu\t%%r%d,%%dr%d", Rsa(w), Rtb(w));
|
||||||
@ -2281,7 +2294,7 @@ diagDasm(i, ofs, w)
|
|||||||
else {
|
else {
|
||||||
db_printf(i->mnem);
|
db_printf(i->mnem);
|
||||||
if (Match("diag"))
|
if (Match("diag"))
|
||||||
db_printf("\t0x%X",w & 0x03ffffff);
|
db_printf("\t0x%X",w.w & 0x03ffffff);
|
||||||
else {
|
else {
|
||||||
db_printf("?????");
|
db_printf("?????");
|
||||||
return (0);
|
return (0);
|
||||||
@ -2294,7 +2307,7 @@ int
|
|||||||
fmpysubDasm(i, ofs, w)
|
fmpysubDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
if (SinglePrec(w))
|
if (SinglePrec(w))
|
||||||
db_printf("SUB,SGL\t%%f%s,%%f%s,%%f%s,%%f%s,%%f%s",
|
db_printf("SUB,SGL\t%%f%s,%%f%s,%%f%s,%%f%s,%%f%s",
|
||||||
@ -2311,7 +2324,7 @@ int
|
|||||||
fmpyaddDasm(i, ofs, w)
|
fmpyaddDasm(i, ofs, w)
|
||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
OFS ofs;
|
OFS ofs;
|
||||||
int w;
|
union insn w;
|
||||||
{
|
{
|
||||||
const char
|
const char
|
||||||
*ms1 = SinglePrec(w) ? fsreg[Ms1(w)] : fdreg[Ms1(w)],
|
*ms1 = SinglePrec(w) ? fsreg[Ms1(w)] : fdreg[Ms1(w)],
|
||||||
@ -2338,7 +2351,7 @@ db_disasm(loc, flag)
|
|||||||
const struct inst *i;
|
const struct inst *i;
|
||||||
const struct majoropcode *m;
|
const struct majoropcode *m;
|
||||||
u_int ext;
|
u_int ext;
|
||||||
int instruct;
|
union insn instruct;
|
||||||
OFS ofs = 0;
|
OFS ofs = 0;
|
||||||
|
|
||||||
iExInit();
|
iExInit();
|
||||||
@ -2346,12 +2359,12 @@ db_disasm(loc, flag)
|
|||||||
if (USERMODE(loc)) {
|
if (USERMODE(loc)) {
|
||||||
if (copyin((caddr_t)(loc &~ HPPA_PC_PRIV_MASK),
|
if (copyin((caddr_t)(loc &~ HPPA_PC_PRIV_MASK),
|
||||||
&instruct, sizeof(instruct)))
|
&instruct, sizeof(instruct)))
|
||||||
instruct = 0;
|
instruct.w = 0;
|
||||||
} else
|
} else
|
||||||
instruct = *(int *)loc;
|
instruct.w = *(int *)loc;
|
||||||
|
|
||||||
m = &majopcs[Opcode(instruct)];
|
m = &majopcs[Opcode(instruct)];
|
||||||
ext = OpExt(instruct, m);
|
ext = OpExt(instruct.w, m);
|
||||||
if (ext <= m->maxsubop) {
|
if (ext <= m->maxsubop) {
|
||||||
/* special hack for majopcs table layout */
|
/* special hack for majopcs table layout */
|
||||||
if (m->maxsubop == 1)
|
if (m->maxsubop == 1)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: lock.h,v 1.4 2003/10/06 05:27:19 matt Exp $ */
|
/* $NetBSD: lock.h,v 1.5 2003/11/01 18:23:38 matt Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
|
* Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
|
||||||
@ -44,20 +44,6 @@
|
|||||||
#ifndef _HPPA_LOCK_H_
|
#ifndef _HPPA_LOCK_H_
|
||||||
#define _HPPA_LOCK_H_
|
#define _HPPA_LOCK_H_
|
||||||
|
|
||||||
#ifdef _KERNEL_OPT
|
|
||||||
#include "opt_multiprocessor.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef MULTIPROCESSOR
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Semaphores must be aligned on 16-byte boundaries on the PA-RISC.
|
|
||||||
*/
|
|
||||||
typedef __volatile struct {
|
|
||||||
int32_t sem __attribute__ ((aligned (16)));
|
|
||||||
} __cpu_simple_lock_t;
|
|
||||||
|
|
||||||
|
|
||||||
static __inline void
|
static __inline void
|
||||||
__cpu_simple_lock_init(__cpu_simple_lock_t *alp)
|
__cpu_simple_lock_init(__cpu_simple_lock_t *alp)
|
||||||
{
|
{
|
||||||
@ -66,7 +52,7 @@ __cpu_simple_lock_init(__cpu_simple_lock_t *alp)
|
|||||||
" stw %1, %0 \n"
|
" stw %1, %0 \n"
|
||||||
" sync \n"
|
" sync \n"
|
||||||
" ; END __cpu_simple_lock_init"
|
" ; END __cpu_simple_lock_init"
|
||||||
: "=m" (*alp->sem)
|
: "=m" (*alp)
|
||||||
: "r" (__SIMPLELOCK_UNLOCKED));
|
: "r" (__SIMPLELOCK_UNLOCKED));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -93,7 +79,7 @@ __cpu_simple_lock(__cpu_simple_lock_t *alp)
|
|||||||
" ldw %1, %0 \n"
|
" ldw %1, %0 \n"
|
||||||
"2: sync \n"
|
"2: sync \n"
|
||||||
" ; END __cpu_simple_lock\n"
|
" ; END __cpu_simple_lock\n"
|
||||||
: "=r" (t0), "+m" (*alp->sem));
|
: "=r" (t0), "+m" (*alp));
|
||||||
}
|
}
|
||||||
|
|
||||||
static __inline int
|
static __inline int
|
||||||
@ -106,7 +92,7 @@ __cpu_simple_lock_try(__cpu_simple_lock_t *alp)
|
|||||||
" ldcw %1, %0 \n"
|
" ldcw %1, %0 \n"
|
||||||
" sync \n"
|
" sync \n"
|
||||||
" ; END __cpu_simple_lock_try"
|
" ; END __cpu_simple_lock_try"
|
||||||
: "=r" (t0), "+m" (*alp->sem));
|
: "=r" (t0), "+m" (*alp));
|
||||||
return (t0 != 0);
|
return (t0 != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,10 +104,8 @@ __cpu_simple_unlock(__cpu_simple_lock_t *alp)
|
|||||||
" sync \n"
|
" sync \n"
|
||||||
" stw %1, %0 \n"
|
" stw %1, %0 \n"
|
||||||
" ; END __cpu_simple_unlock"
|
" ; END __cpu_simple_unlock"
|
||||||
: "+m" (*alp->sem)
|
: "+m" (*alp)
|
||||||
: "r" (__SIMPLELOCK_UNLOCKED));
|
: "r" (__SIMPLELOCK_UNLOCKED));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* !MULTIPROCESSOR */
|
|
||||||
|
|
||||||
#endif /* _HPPA_LOCK_H_ */
|
#endif /* _HPPA_LOCK_H_ */
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: types.h,v 1.7 2003/10/06 05:27:19 matt Exp $ */
|
/* $NetBSD: types.h,v 1.8 2003/11/01 18:23:38 matt Exp $ */
|
||||||
|
|
||||||
/* $OpenBSD: types.h,v 1.6 2001/08/11 01:58:34 art Exp $ */
|
/* $OpenBSD: types.h,v 1.6 2001/08/11 01:58:34 art Exp $ */
|
||||||
|
|
||||||
@ -60,7 +60,10 @@ typedef unsigned long vm_size_t;
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef __volatile long __cpu_simple_lock_t;
|
/*
|
||||||
|
* Semaphores must be aligned on 16-byte boundaries on the PA-RISC.
|
||||||
|
*/
|
||||||
|
typedef __volatile unsigned long __cpu_simple_lock_t __attribute__ ((aligned (16)));
|
||||||
|
|
||||||
#define __SIMPLELOCK_LOCKED 1
|
#define __SIMPLELOCK_LOCKED 1
|
||||||
#define __SIMPLELOCK_UNLOCKED 0
|
#define __SIMPLELOCK_UNLOCKED 0
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: fcnvff.c,v 1.2 2003/07/15 02:29:42 lukem Exp $ */
|
/* $NetBSD: fcnvff.c,v 1.3 2003/11/01 18:23:38 matt Exp $ */
|
||||||
|
|
||||||
/* $OpenBSD: fcnvff.c,v 1.5 2001/03/29 03:58:18 mickey Exp $ */
|
/* $OpenBSD: fcnvff.c,v 1.5 2001/03/29 03:58:18 mickey Exp $ */
|
||||||
|
|
||||||
@ -42,7 +42,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: fcnvff.c,v 1.2 2003/07/15 02:29:42 lukem Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: fcnvff.c,v 1.3 2003/11/01 18:23:38 matt Exp $");
|
||||||
|
|
||||||
#include "../spmath/float.h"
|
#include "../spmath/float.h"
|
||||||
#include "../spmath/sgl_float.h"
|
#include "../spmath/sgl_float.h"
|
||||||
@ -151,7 +151,7 @@ unsigned int *status;
|
|||||||
register int src_exponent, dest_exponent, dest_mantissa;
|
register int src_exponent, dest_exponent, dest_mantissa;
|
||||||
register int inexact = FALSE, guardbit = FALSE, stickybit = FALSE;
|
register int inexact = FALSE, guardbit = FALSE, stickybit = FALSE;
|
||||||
register int lsb_odd = FALSE;
|
register int lsb_odd = FALSE;
|
||||||
int is_tiny;
|
int is_tiny = FALSE;
|
||||||
|
|
||||||
Dbl_copyfromptr(srcptr,srcp1,srcp2);
|
Dbl_copyfromptr(srcptr,srcp1,srcp2);
|
||||||
src_exponent = Dbl_exponent(srcp1);
|
src_exponent = Dbl_exponent(srcp1);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: setovfl.c,v 1.2 2003/07/15 02:29:42 lukem Exp $ */
|
/* $NetBSD: setovfl.c,v 1.3 2003/11/01 18:23:38 matt Exp $ */
|
||||||
|
|
||||||
/* $OpenBSD: setovfl.c,v 1.4 2001/03/29 03:58:19 mickey Exp $ */
|
/* $OpenBSD: setovfl.c,v 1.4 2001/03/29 03:58:19 mickey Exp $ */
|
||||||
|
|
||||||
@ -42,44 +42,45 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: setovfl.c,v 1.2 2003/07/15 02:29:42 lukem Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: setovfl.c,v 1.3 2003/11/01 18:23:38 matt Exp $");
|
||||||
|
|
||||||
#include "../spmath/float.h"
|
#include "../spmath/float.h"
|
||||||
#include "../spmath/sgl_float.h"
|
#include "../spmath/sgl_float.h"
|
||||||
#include "../spmath/dbl_float.h"
|
#include "../spmath/dbl_float.h"
|
||||||
|
|
||||||
sgl_floating_point sgl_setoverflow(sign)
|
sgl_floating_point
|
||||||
|
sgl_setoverflow(sign)
|
||||||
unsigned int sign;
|
unsigned int sign;
|
||||||
{
|
{
|
||||||
sgl_floating_point result;
|
sgl_floating_point result;
|
||||||
|
|
||||||
/* set result to infinity or largest number */
|
/* set result to infinity or largest number */
|
||||||
/* ignore for now
|
#if 0
|
||||||
switch (Rounding_mode()) {
|
switch (Rounding_mode()) {
|
||||||
case ROUNDPLUS:
|
case ROUNDPLUS:
|
||||||
if (sign) {
|
if (sign) {
|
||||||
Sgl_setlargestnegative(result);
|
Sgl_setlargestnegative(result);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
Sgl_setinfinitypositive(result);
|
Sgl_setinfinitypositive(result);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ROUNDMINUS:
|
case ROUNDMINUS:
|
||||||
if (sign==0) {
|
if (sign==0) {
|
||||||
Sgl_setlargestpositive(result);
|
Sgl_setlargestpositive(result);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
Sgl_setinfinitynegative(result);
|
Sgl_setinfinitynegative(result);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ROUNDNEAREST:
|
case ROUNDNEAREST:
|
||||||
Sgl_setinfinity(result,sign);
|
Sgl_setinfinity(result,sign);
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
case ROUNDZERO:
|
case ROUNDZERO:
|
||||||
Sgl_setlargest(result,sign);
|
Sgl_setlargest(result,sign);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
*/
|
#endif
|
||||||
|
Sgl_setinfinity(result,sign);
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user