Commit Graph

371 Commits

Author SHA1 Message Date
gwr ea3925f508 FIXUP_PC_AFTER_BREAK now takes an arg of type db_regs_t * 1997-02-06 21:16:28 +00:00
scottr 6d39698236 db_expr_t is now a long. 1997-02-05 05:10:24 +00:00
gwr 599d8811dc Adapt to changed definition of struct db_variable. 1997-02-04 18:15:18 +00:00
thorpej de70c1051d prototype mappedcopy{in,out}(), {copy,zero}page(). 1997-02-02 06:56:57 +00:00
thorpej 9568fcee35 Build mappedcopy.c conditional on "options MAPPEDCOPY" 1997-02-02 06:55:15 +00:00
thorpej e9eba07a8f Add the Utah mappedcopyin/mappedcopyout functions to a common m68k
area.  These functions are designed to improve performance of large
copyin/copyout operations by mapping the user page in to the kernel
address space and using bcopy(), rather then copying across protection
boundaries.

XXX This doesn't work yet -- the way it's called doesn't obey C calling
XXX conventions.  That will be fixed soon.
1997-02-02 06:54:10 +00:00
thorpej 7dae9fb29b Add two optimized functions used by pmap.c:
- copypage() -- a single page-aligned NBPG-byte copy.
- zeropage() -- a single page-aligned NBPG-byte zero.
These functions don't play around with alignment, etc.  Their use
causes a measureable performance improvement in pmap_copy_page()
and pmap_copy_page().

A few m68k ports already had copypage() in their locore.s.  It has
been moved here so it can be shared.
1997-02-02 06:50:06 +00:00
thorpej 5885fe6b78 This file is now obsolete. 1997-01-30 17:29:23 +00:00
gwr c7fd1435c6 Update for new struct member names in db_regs_t. 1997-01-27 23:07:04 +00:00
gwr b0f4781a3d Include <machine/frame.h> and typedef db_regs_t using struct trapframe
(instead of replicating trapframe here by a different name).  Update the
macros that refer to members of db_regs_t to use the trapframe members.
1997-01-27 23:02:55 +00:00
gwr 09fa19ebb5 Protect this agains multiple includes so it can be included by db_machdep.h 1997-01-27 22:58:45 +00:00
gwr 6e961cf5de Use db_regs_t instead of struct mc68020_saved_state 1997-01-15 23:11:46 +00:00
veego fd4d6f207d Add '-I${.CURDIR} ${.CURDIR}/' before netbsd.S to compile it with
object dirs.
1996-12-31 22:44:13 +00:00
scottr 3ac126bc23 Work around another uninitialized variable warning 1996-12-18 05:44:31 +00:00
gwr b8c288d184 Fix warnings. 1996-12-17 19:27:51 +00:00
gwr 661c8f1ae0 CTL_MACHDEP definitions. (Common to all m68k ports.)
This should be included by each m68k port's cpu.h so
/usr/sbin/sysctl can be shared on all of them.
1996-12-17 19:26:51 +00:00
gwr a25e8be772 Add prototypes for process_read_regs, etc. (fix warnings) 1996-12-17 19:24:31 +00:00
jtc 9da5f60715 PROF -> GPROF 1996-11-30 02:48:57 +00:00
jtc 16b48272c4 Define _BSD_CLOCKID_T_ and _BSD_TIMER_T_ 1996-11-15 22:38:45 +00:00
is e4d7a09a2a Bug fix for FSINCOS: wouldn't handle FPc == FP1 earlier. 1996-10-30 14:44:47 +00:00
is a747e15eed Add the 68060 bus control register to the list of known cpu superisor mode
registers.
1996-10-30 08:22:39 +00:00
is be08e182af In my earlier patch to the m68k fmovem disassembler, I repaired the register
naming for fmovem, while breaking it for fmove. We probably never will
see normal fmove in the kernel, nevertheless it should be corrected while
somebody remembers.
Besides, the correct patch is smaller and thus easier to verify than the
origininal one.
1996-10-30 08:11:21 +00:00
scottr 531802b5dd cpp -> ${CPP} 1996-10-29 00:11:27 +00:00
is 072b7020c4 * Fix a few wrong fallthroughs in switch cases:
- add a missing return; at the end of a case, leading to wrong disassembly
  of the next few instructions after fmovem.
- while we're here, correct the same bug in PBcc.

  XXX there are a few other dubious fallthroughs in this file (which are
  not explicitly marked with /* FALLTHROUGH */), which I didn't yet analyze.

* Fix other FMOVEM interpretation bugs:
- correct printing of FP data register lists if all are used (only FP0
  would be mentioned)
- correct printing of FP data register lists in the case the list is reversed
  (would have printed nothing)
- correct mapping of fp0-fp7 to register list bits (was reversed)
- correct printing of FP control register lists (this list is never reversed)
- correct printing of FMOVEM with FP control registers (the data direction
  was interpreted the wrong way)

* While we're here, enhance the comments in MOVC's list of cpu control
  registers
1996-10-28 08:43:18 +00:00
is 6e74f35ac9 First small hack at 68060 support: processor configuration register.
(We don't use the new instructions lpstop and plpa in our kernel, so no hurry.)
1996-10-24 18:30:17 +00:00
scottr fb42630e15 Eliminate fusword() prototype, as it's now in <sys/systm.h> 1996-10-16 06:27:05 +00:00
christos 9dc680b6a4 backout previous kprintf change 1996-10-13 03:19:10 +00:00
christos cabe1f09ff use in_addr_t and in_port_t 1996-10-13 02:59:54 +00:00
christos 60dd5ceebe printf -> kprintf, sprintf -> ksprintf 1996-10-11 00:06:28 +00:00
cgd 472889f8e4 moved to aout_machdep.h (via repository copy) 1996-10-08 12:57:37 +00:00
scottr f8b0c86aa8 The 68LC040 generates a format 4 stack frame for floating point
exceptions, which puts the address of the instruction we faulted
on in a different location.  Copy it and handle as we normally would,
restoring the saved PC before returning.

The FPE should probably be reworked to take advantage of the 68LC040's
precalculated effective address, at some point.
1996-10-07 03:16:47 +00:00
scottr d12b257695 Fix FMOVEM emulation; postincrement modes use different ordering than
predecrement modes, per 68K Programmer's Manual p. 5-88.  Pointed out
by Takeshi Nakayama <takeshi@sakabe.nuie.nagoya-u.ac.jp>, verified by me.
1996-10-04 18:07:24 +00:00
ws 5804d3f648 PowerPC port 1996-09-30 16:34:14 +00:00
jtc d137b0e8ba Added new macro _PROF_PROLOG which contains the code sequence needed
to call mcount().  This is needed because the ``link a6,#0'' insn used
trips up gcc's ANSI preprocessor (A # in a function-type macro must be
followed by a macro argument).  _PROF_PROLOG is also used in the i386
asm.h.

Solaris' asm_linkage.h has a MCOUNT macro similar to _PROF_PROLOG
except it expands to different code sequences based on whether a
function is being compiled with "prof" or "gprof" instrumentation.

I also discovered that the m68k ALTENTRY is very different than the
implementation used by other NetBSD ports.  Usually ALTENTRY simply
provides an alternate function entry point.  The m68k version takes a
second argument and jumps inside the second function when profiling is
enabled.  The m68k behavior is similar to the ENTRY2 macro found in
solaris.

Providing ENTRY2 and changing all the code that uses ALTENTRY to use
it would be a desirable change.
1996-09-24 00:05:55 +00:00
leo 2eccad6548 Add macro's that do bclr/bset in a single instruction. 1996-09-16 06:03:58 +00:00
thorpej 22adc20819 Add an FPU_UNKNOWN constant; just a placeholder for any unknown FPU. 1996-09-12 02:52:34 +00:00
thorpej 521a717f6d Factor out common Motorola 68k CPU definitions from the m68k port
cpu.h header files.

Some more work could be done here, but it's a good start.
1996-09-11 00:08:52 +00:00
thorpej 73a5b90800 Pull in the COMPAT_M68K4K stuff when appropriate. 1996-09-10 22:07:10 +00:00
thorpej c5e5dec3b7 All of the m68k ports' exec.h's were essentially the same. Merge them.
Override the N_PAGSIZ() macro; this one checks the MID of the executable
and returns the appropriate page size.
1996-09-08 00:57:29 +00:00
thorpej f124a6aaa9 Back out previous; this is a bigger problem than I expected. 1996-08-14 00:32:53 +00:00
thorpej a05a1045f7 The htonl(), htons(), etc. functions return u_long and u_short. Add
casts to the big-endian versions of these calls so that the compiler
won't complain when they're passed as arguments to printf().
1996-08-14 00:07:35 +00:00
jtc d69119311f Provide alternate memmove() entrypoint for memcpy(). This will help
in the transition from b*() to mem*().
1996-07-20 01:53:42 +00:00
is 51e832dc49 Fix a few off-by-one errors in bitnumbers used by print_fcode.
ptestX fc,<ea>,M used to be printed with the wrong semantics of the fc
field, and could panic the kernel if fc was interpreted as a register number.
1996-06-12 20:22:42 +00:00
is cb5f8c53ac Now that our as pretends to understand the M68060 cpu, use -m68060 instead
of -m68040 to avoid confusion.
1996-05-20 13:31:40 +00:00
is d3ad3efef5 3 more constants for 68060 access error trap stack frames. 1996-05-16 16:51:30 +00:00
is 3b8b982891 Naive translation of text to assembler had caused some assembler syntax
errors. Fixed them. Thanks to Bernd Ernesti for the early report.
1996-05-16 15:37:49 +00:00
is 8fea0bb1e5 fix typo 1996-05-15 21:16:44 +00:00
is 89e428b280 Initial commit of the machine independend part of the glue code for
the 68060 software support package.
1996-05-15 21:06:18 +00:00
is 0a68161069 RCS ID police 1996-05-15 19:47:31 +00:00
is 508069c020 Initial import of the Motorola M68060 Software Package Production
Release, revision P1.01.
1996-05-15 18:17:45 +00:00
leo be7b319e1b Fix "might be used uninitialized" warnings. 1996-05-15 07:31:55 +00:00
gwr 0f9ef81648 Fix "prototype disagrees about inline" error. 1996-05-06 20:05:24 +00:00
veego e637bae39d Added an include for the sunos_sendsig prototyp 1996-05-05 16:11:31 +00:00
briggs 9cdce38dd0 Bring back Step9 and fix an oversight from Ken Nakata <kenn@remus.rutgers.edu> 1996-04-30 12:02:54 +00:00
briggs 6d6bfccb69 Clean up a few printf format strings. 1996-04-30 11:57:49 +00:00
briggs 9602c596f5 Prototype oc_cksum(). 1996-04-30 11:57:05 +00:00
briggs 41f393e6b8 Update for -Wall -Wstrict-prototypes -Wmissing-prototypes -Wno-uninitialized. 1996-04-30 11:52:09 +00:00
leo dc05f2d48c Prototype + -Wall fixes. 1996-04-29 20:50:08 +00:00
briggs 1fa595a2f1 Clean up for higher warning level. 1996-04-01 01:35:48 +00:00
briggs efa0c4d683 Make NTOH[SL] and HTON[SL] (void) (x) instead of (x) to get around
compiler warnings.  Followed the lead set in the sparc port.
1996-03-29 01:40:31 +00:00
mhitch ae815da330 change Debugger() from an int function to a void function to match the
prototype in sys/systm.h.
1996-03-16 18:45:44 +00:00
jtc 2ce5f1478b Add _BSD_WINT_T_ definition so we can handle wint_t type added in NA1. 1996-03-16 01:31:45 +00:00
is 905b10d4bc M68060 additional frame formats and bits. Closes PR 1174.
This shouldn't break anything; I find ... grep ... all the relevant
kernel sources subdirecotry trees I could think of for the defines
that don't use the new FSLW or FPF6 prefix. But in case it does anyway,
tell me immediately.
1996-03-12 22:21:51 +00:00
leo 2273338717 Add the include files and the atari kernel support for new format panic
dumps.
1996-03-10 21:54:44 +00:00
briggs 6969bbbc1c Add ns_cksum.c. 1996-02-24 12:59:47 +00:00
gwr 19d5694f93 Remove the hack that faked up an "ssp" value. It is now up to
locore.s to put the right sp in the frame.  Also move memory
access code into db_memrw.c so it can be taken separately.
1996-02-22 23:23:23 +00:00
gwr 64a13b9a7b Remove ns_cksum.c (now in sys/conf/files) 1996-02-14 15:59:57 +00:00
gwr 15dae05834 Oops, label_t does not have implicit pointer type like jmp_buf 1996-02-13 17:34:46 +00:00
gwr f4cc5b017a eliminate setjmp.h 1996-02-09 21:51:39 +00:00
briggs 674ef2b6f2 sys/types.h -> sys/param.h and remove include of stddef.h. 1996-02-04 02:17:42 +00:00
briggs 592866ff5d sys/types.h -> sys/param.h and remove include of stddef.h. 1996-02-04 02:17:38 +00:00
mycroft 213c4dbb89 Use CPPFLAGS, not COPTS. 1996-02-03 01:23:54 +00:00
mycroft fc9d84fb46 assym.s -> assym.h
(Some ports did this already.)
1996-02-02 02:34:09 +00:00
thorpej a11ff465eb Factor out the common (to all m68k ports) sigreturn routine. 1996-01-31 02:22:15 +00:00
briggs 4881a5d2a0 Remove explicit #define of DEBUG, per PR #1931. 1996-01-12 04:23:54 +00:00
jtc 2fce159ff8 Changed name of sigaltstack's ss_base field to ss_sp to match XPG4.2 and
traditional usage.
1996-01-04 22:21:33 +00:00
mycroft cd8fe86bcb Make the type of __builtin_va_list a long. 1995-12-26 01:16:24 +00:00
mycroft 0c00214737 Use __builtin_va_alist. 1995-12-26 00:19:09 +00:00
mycroft fa887628d8 Stylistic changes. 1995-12-25 23:15:31 +00:00
mycroft d1de691efb Stylistic changes. 1995-12-25 22:22:02 +00:00
mycroft 0199e002ad Update for GCC 2.7, and fix bugs. 1995-12-25 21:41:08 +00:00
thorpej de6dad9228 Move bcopy/ovbcopy/memcpy into m68/m68k/copy.s, which is used by all
m68k ports already anyhow.  No use in keeping 6 identical copies of this
function around.
1995-12-11 02:37:55 +00:00
briggs f028be21e6 Update from Ken Nakata. 1995-11-05 04:23:00 +00:00
briggs 8b79bcb9e7 Fixes from Ken Nakata. Mainly renaming debug_level to fpu_debug_level. 1995-11-05 00:35:09 +00:00
briggs cc272f90a1 Add in NetBSD id string. 1995-11-03 04:51:51 +00:00
briggs 526615e592 Add NetBSD id string and update instructions. 1995-11-03 04:48:22 +00:00
briggs fc8793fb3d Still incomplete, but much more complete FPE from Ken Nakata
<kenn@remus.rutgers.edu>.  This emulator does not yet emulate
the following functions:
	FSINH, FETOXM1, FTANH, FATAN, FASIN, FATANH, FSIN, FTAN,
	FETOX, FTWOTOX, FTENTOX, FCOSH, FACOS, FCOS, FSINCOS
It is sufficient, however, to allow programs like df, w, and newfs,
to run to completion with correct results.
Portions of this code were based on the sparc fpe and on initial
work by gwr.
1995-11-03 04:46:55 +00:00
gwr b797d6e69d Cosmetic: Kill trailing whitespace, etc. 1995-10-10 21:18:01 +00:00
mycroft 245f292fed Prefix names of system call implementation functions with `sys_'. 1995-10-07 06:25:19 +00:00
briggs fc919965e8 Make sunos_sigreturn() match prototype. 1995-09-21 11:41:04 +00:00
jtc f269c3f49e Fix bug when the second argument of va_start was a char, short or float.
(ie. not promoted); fixes PR# 1193.  Thanks to Bernd Ernesti and Markus
Wild.
1995-09-07 01:20:15 +00:00
mycroft 29053c58b2 SA_ONSTACK --> SS_ONSTACK 1995-09-01 20:05:59 +00:00
mycroft 36a94a031a Lock the process in core before operating on it. 1995-08-13 09:05:51 +00:00
cgd 479fb9e45b add <sys/cdefs.h> inclusions. namsspace-protect physadr, label_t
def'ns against _POSIX_SOURCE and _ANSI_SOURCE.
1995-07-06 03:39:32 +00:00
jtc 55fbbc705d Wrap with #ifndef _XXX_FLOAT_H_/#define _XXX_FLOAT_H_/ ... /#endif. 1995-06-20 20:45:22 +00:00
jtc 1d65cdd4ab #include <sys/cdefs.h>.
Wrap __flt_rounds() declaration with __BEGIN_DECLS/__END_DECLS.
1995-06-20 20:32:22 +00:00
leo 56dc7b26ad Atari no longer uses the default db_read/write functions. 1995-06-09 20:03:05 +00:00
gwr ea63c8d798 Fix range check for kernel stack pointers. 1995-05-24 20:23:34 +00:00
gwr 31870d2eec Compute value of ssp correctly. 1995-05-24 20:23:05 +00:00
mycroft 3d833a1ab1 Conditionalize the code in process_frame() on the existance of
cpu_set_init_frame().
1995-05-12 12:47:45 +00:00
mycroft c52debae3f Redefine the first part of struct frame to be a struct trapframe, and add a
struct switchframe.
1995-05-12 12:45:24 +00:00
chopps 4567f74662 add stdframe (4-word frame) 1995-05-12 00:01:05 +00:00
chopps 2526492410 fix typo 1995-05-11 23:49:56 +00:00
chopps 1ba39fdfd1 conditional use of kstack, specifically there is no kstack on the amiga 1995-05-11 23:15:13 +00:00
cgd 9b7c37148b new-config files list. missed this yesterday. 1995-04-30 02:44:44 +00:00
cgd 0e59975fac rename files files for new config/config.old naming 1995-04-28 08:19:12 +00:00
chopps 10eb24c459 add needed signal debug stuff so it will compile with DEBUG 1995-04-23 18:22:14 +00:00
briggs 11632db942 Make this actually compile... 1995-04-23 00:27:48 +00:00
christos 00e1cff41a Shared sunos_machdep.c 1995-04-22 23:43:07 +00:00
mycroft 4b5c13c2c7 Shift the bit positions. 1995-04-09 23:29:22 +00:00
mycroft e957423a98 Move fp_except and fp_rnd definitions to machine/include. 1995-04-09 21:31:58 +00:00
jtc 7a5da7fda2 Changed FLT_ROUNDS from constant to a call to __flt_rounds(), so that the
current rounding mode is accurately reported.
1995-04-07 00:44:37 +00:00
briggs 71a63538b8 KERNEL -> _KERNEL 1995-03-26 17:08:36 +00:00
jtc f86410093b Changed name of __weak_reference() to __indr_reference(). They really
are indirect references, and I want to add a real __weak_reference()
macro to <machine/cdefs.h> soon.
1995-03-23 19:58:48 +00:00
gwr d0dba9b2d2 Add missing break in switch (not that it mattered 8^) 1995-03-10 01:43:05 +00:00
gwr 6ca3d5b258 First cut at an mc68881 emulator. Works only for fmovem right now. 1995-03-01 04:56:27 +00:00
chopps 70d3768555 add amiga in here too 1995-02-13 00:44:33 +00:00
mycroft aa166654e0 Fix typos copied from i386 code. 1995-02-11 21:59:29 +00:00
gwr 664fc712cc Make most of the labels local (start with "L")
Remove sun3-specific code (no longer necessary)
Add diagnostic to verify correct sfc/dfc (applies to all m68k).
1995-02-11 20:54:11 +00:00
mycroft bc743704d0 Change comment style to match the rest of locore. 1995-02-08 17:38:03 +00:00
mycroft 989a13ef22 Oops. Change the su*() functions back to using d0, to avoid conflict with
the Sun 3 code.
1995-02-08 17:32:13 +00:00
mycroft 601e2d1b77 Add fu/su functions from hp300, modified for Sun 3. 1995-02-08 14:50:38 +00:00
mycroft 56c0e01a38 The count argument is always unsigned. 1995-02-08 14:26:10 +00:00
mycroft f42e0c3e36 Pull in necessary include files to make the stand-alone. 1995-02-08 14:19:37 +00:00
mycroft 5cd0312141 Minor change. 1995-02-08 14:14:26 +00:00
mycroft b6363586fd Copy hp300 version, with Sun 3 sfc/dfc frobnication added. 1995-02-08 14:11:50 +00:00
jtc 830a53e394 ANSI says that <stdarg.h>'s va_end macro must expand to a void expression.
For consistancy, I'm changing <varargs.h> too.
1995-01-28 01:51:46 +00:00
mycroft 0460b0fe44 Fix syntax errors. 1995-01-26 21:28:09 +00:00
mycroft 70442b438d Add struct fpreg. 1995-01-26 19:48:48 +00:00
mycroft e3a9f05f7d Add PT_[GS]ETFPREGS. 1995-01-26 19:47:10 +00:00
mycroft 3f74df614e Add process_{read,write}_fpregs(). 1995-01-26 19:46:17 +00:00
mycroft 1783c9f972 Rearrange struct reg to match what the rest of the world expects. 1995-01-26 18:26:01 +00:00
jtc 9540190d45 This file, which will be included by <sys/cdefs.h>, will contain macros
such as __warn_references() and __weak_reference() which are actually
machine dependant.  This will make it easier for ports that are being
bootstraped with ELF and ECOFF based toolchains.

This change also introduces a new macro, _C_LABEL(x).  _C_LABEL expands
its argument, an identifier, to a character string of the identifier
name as it is represented in an object file.

For most ports, _C_LABEL(x) will expand to "_x", for ELF based ports
_C_LABEL(x) will expand to "x".
1995-01-19 01:38:36 +00:00
gwr cea77bf837 Make kdb_trap return zero for traps that have not been "handled". 1995-01-18 17:10:47 +00:00
mycroft 93cd120f4e Faster version from Michael Schr"oder. 1995-01-15 22:32:35 +00:00
jtc d7a8b2964f Only define sig_atomic_t when _ANSI_SOURCE is defined. 1995-01-10 19:01:00 +00:00
cgd 7b8535b554 do the right thing with strange-sized varargs objects. 1994-12-28 22:45:42 +00:00
cgd e5049f4d59 make the definition of _JBLEN mach. dep. header-dependent. 1994-12-20 10:36:27 +00:00
gwr c2466a5ffa The sun3 port now has its own db_read_bytes() too. 1994-11-28 19:29:14 +00:00
gwr 81839ca1f7 The sun3 needs its own version of db_write_bytes() so just
added #ifndef sun3 around it for now.  This function should
probably be provided by each port (like sun3/db_write.c).
1994-11-17 05:04:35 +00:00
gwr 2e0e96ea27 Fix disassembly of 8-bit branch displacements (sign extend).
Fix invalid array references disassembling float instructions.
Make the system stack pointer visible in show regs.
Make "sr" a proper short, remove some junk...
1994-11-14 20:53:52 +00:00
cgd 57fb77a14e new RCS ID format. 1994-10-26 07:48:18 +00:00
cgd 5aea0d3fd2 update for new syscall args description mechanism 1994-10-20 04:46:23 +00:00
cgd f501e4e128 make <stdarg.h> a symlink, and clean up ports' stdarg.h and varargs.h files. 1994-10-15 04:57:29 +00:00
mycroft cbe87dbb9c Remove BYTE_MSF. 1994-10-09 09:21:53 +00:00
chopps 241af64f6d fix typo. 1994-10-06 20:32:04 +00:00
jtc badcc17a6d Add constants required by XPG3 1994-10-05 17:16:29 +00:00
cgd cefdccbf31 changes for the new sys_process.c, and some cleanup 1994-08-15 16:37:04 +00:00
chopps 37330ed064 mama always said to protect those macro args.. 1994-08-05 23:21:31 +00:00
cgd 3fbc338a62 define __BIT_TYPES_DEFINED__ for compatibility with things like BIND and nvi 1994-07-20 05:44:19 +00:00