Commit Graph

132 Commits

Author SHA1 Message Date
bjh21 9b6de1da90 Move cpu_coredump() from arm32/arm32/vm_machdep.c to arm/arm/vm_machdep_arm.c.
Also ANSIfy it and use it on arm26.
2001-02-13 22:54:25 +00:00
simonb e07c392eed Fix typo in header filename. 2001-02-13 14:11:30 +00:00
bjh21 284047a2b2 Move sendsig() and sys___sigreturn14() from arm26/arm26/vm_machdep.c and
arm32/arm32/machdep.c into arm/arm/sig_machdep.c, merging and ANSIfying in
the process.

The code is based on the arm32 version, so I don't think anything should break
there.
2001-02-13 13:19:52 +00:00
bjh21 a4e55e0f13 Shared ARM ptrace(2) implementation. Mostly the same as the arm32
version, but with some #ifdefs for arm26.

Also, don't define PT_STEP, since we don't implement it.  This should
reduce code size a little.
2001-02-11 17:03:04 +00:00
bjh21 9826a76781 Common <arm/reg.h> (and hence common struct reg) for ARM.
This is theoretically backward-incompatible on arm26, but GDB doesn't work there
yet anyway.
2001-02-11 14:51:55 +00:00
bjh21 1178bf4219 Initial potentially sharable <arm/armreg.h>. Used by all arm26 code. 2001-01-22 22:10:39 +00:00
bjh21 8805bd8b56 Unify arm26 and arm32 trapframe structures. The unified trapframe is the same
shape as the old arm32 one, but there are a few #defines to keep arm26 code
happy.  Anything that depends on the precise shape of the trapframe,
and especially on being able to treat it as an array of registers, has been
updated.
2001-01-20 17:14:19 +00:00
bjh21 2c20803b63 Add extra constants defined by ARM ELF revision B01. 2001-01-18 23:50:50 +00:00
bjh21 48f4b0ea72 Tidy up some comments. 2001-01-18 21:54:28 +00:00
bjh21 2c89ce7e74 Add <arm/frame.h>, for shared stack frame structures. Currently, only sigframes
are common.
2001-01-18 21:48:25 +00:00
bjh21 6b017eaa04 Add ARMv5 instructions: BLX, CLZ, BKPT, MCR2, MRC2, CDP2, LDC2, STC2.
Also correct a comment.
2001-01-18 21:41:09 +00:00
bjh21 e1e042445c A bit of extra discussion based on the latest ARM ARM. 2001-01-18 20:42:03 +00:00
bjh21 8df387473f Move <machine/signal.h> into shared directory. 2001-01-13 17:02:36 +00:00
bjh21 70d40a123c Make db_disasm_interface const. 2001-01-13 16:53:27 +00:00
bjh21 f52101bc64 Make all the disasm_interface_t arguments const, thus allowing us to
allocate them statically in the text segment.  Do so for disassemble().
2001-01-13 16:52:01 +00:00
bjh21 792b8500bc ANSIfy, un-__Pify, and in the case of disassem.c, add an RCSID. 2001-01-13 16:44:25 +00:00
bjh21 78c0ba909e Separate out sigcode into its own file, since it's shared by arm26 and arm32. 2001-01-13 00:06:50 +00:00
bjh21 e4cacac41c Storing four-byte pointers to two-character strings is silly. All the
auxilliary tables used by the disassembler are now char[][].

The main table still uses pointers because:
 - the longest instruction name, "imbrange" is >7 characters long, which would
   make the field length wasteful.
 - GCC spots that most of the formats are shared and makes them pointers to the
   same string, so turning them into char[8] would be counter-productive.
2001-01-12 23:33:07 +00:00
bjh21 ca0f6df99d Move all the nasty big tables into the text segment. This isn't much use in
the kernel at present, but maybe one day when we have a ROMmable kernel...
2001-01-12 22:44:08 +00:00
bjh21 cdae07e857 Correct comments (the code does support LDF, STF, LDC, STC).
Support BX (for completeness).
Correct spelling of SWP.
2001-01-12 22:19:15 +00:00
bjh21 e9bb2a7916 Correct immediate constant handling: bits [11:8] are a rotation, not a shift.
Also add support for the "P" modifier to TEQ, TST, CMP and CMN, and don't
bother displaying the "S" bit for these instructions.

Together, these correct the disassembly of 0xe33ff3c2 (an instruction in
arm26 irq_handler() from "teqs r15, #0x08000000" to "teqp r15, 0x08000003".
2001-01-12 21:56:18 +00:00
bjh21 d6928b5422 Prototypes for disassemble_readword() and disassemble_printaddr(). 2001-01-12 21:35:48 +00:00
bjh21 a5ef6e1f81 Move db_disasm.c into sys/arch/arm/arm. Use arm26 version, since it should
generate smaller compiled code.
2001-01-12 21:31:51 +00:00
bjh21 a4047bf10c Move the generic ARM disassembler from arm32/arm32 to arm/arm. 2001-01-12 13:43:11 +00:00
bjh21 6fa98146d5 Start merging actual code in arm32 and arm26:
arm32/arm32/in_cksum_arm32.c -> arm/arm/in_cksum_arm.c

Also move specification of other checksum stuff to files.arm, even though we
use the MI code for that.
2001-01-11 23:27:26 +00:00
bjh21 5159a10d97 Share <machine/elf_machdep.h> between arm26 and arm32. 2001-01-11 22:28:06 +00:00
bjh21 dc037466f5 Install all the headers (arm32 does). 2001-01-11 21:05:03 +00:00
bjh21 1add2fd369 Remove <arm/endian_machdep.h>, since we might get a big-endian ARM port
some time.
2001-01-11 21:03:10 +00:00
bjh21 0cc28d54b1 ... this one's utterly pointless though. 2001-01-10 19:05:46 +00:00
bjh21 29de7da78b Header files which don't differ between arm32 and arm26 and can thus be
shared.
2001-01-10 19:02:05 +00:00
bjh21 9e0af76a89 Empty file to keep config happy. 2001-01-10 18:33:47 +00:00
bjh21 f4774e6659 Skeleton ARM include infrastructure. 2001-01-10 18:23:02 +00:00