Commit graph

43 commits

Author SHA1 Message Date
cinap_lenrek
1c0427e6dd libmach: remove newline 2019-05-09 10:27:17 +02:00
cinap_lenrek
a065270fd7 libmach: support for MOVP instruction disassembly for arm64 2019-05-09 10:24:37 +02:00
cinap_lenrek
14b69dcde0 libmach: initial arm64 support 2019-05-03 21:00:17 +02:00
cinap_lenrek
da9f1ccc28 libmach: change amd64 szreg to 8 (thanks charles forsyth) 2018-11-24 22:38:00 +01:00
cinap_lenrek
e534c4147e libmach: substitute /dev/zero for /proc/$pid/fpregs when missing (for snapfs) 2018-09-08 23:31:30 +02:00
cinap_lenrek
1eb3739454 libmach: fix format for 8db sse shift ops 2017-11-19 21:11:41 +01:00
aiju
6104ebc9b6 libmach: support disassembling from memory 2017-08-24 13:02:27 +00:00
aiju
5fb666453a libmach: add INVEPT and INVVPID instructions 2017-05-24 00:59:14 +00:00
aiju
82f91a895a libmach: fix wrong offset bug (thanks cinap); add VMX instructions 2017-05-22 00:40:18 +00:00
ftrvxmtrx
ed76659c05 /sys/src/lib*: clean up 2016-11-17 22:58:16 +01:00
cinap_lenrek
2e120a29db libmach: fix RORREG, right shift with shift count 0 means >>32 2016-09-03 16:47:51 +02:00
cinap_lenrek
fb790a51f4 libmach: more alpha 2016-05-04 17:10:26 +02:00
cinap_lenrek
53c73dedec libmach: remove alpha stuff 2016-05-04 17:00:45 +02:00
cinap_lenrek
986886f2b8 retire the dec alpha port 2016-05-04 16:11:48 +02:00
glenda
c4fdc6bfdb fix fuckup 2015-08-25 09:35:10 +00:00
mischief
6b402b83cf import E script from bell labs 2015-08-25 02:07:46 -07:00
mischief
23215e14d0 libmach: remove redundant check for big endian 2015-08-05 06:37:02 -07:00
mischief
8e78804fc0 libmach: remove useless error check from previous commit 2015-08-05 06:30:57 -07:00
mischief
7844dafe62 libmach: set correct endianness with little endian ELF32 mips binaries 2015-08-05 06:26:23 -07:00
cinap_lenrek
8caec8564d vl, libmach, kernel: mips has 16K alignment for segments (for bigpages) 2015-03-22 17:49:28 +01:00
cinap_lenrek
e53511ef4c libmach: fix break point instruction for little endian MIPS (from sources)
fix break point instruction for little endian MIPS in
libmach. (patch /n/sources/patch/libmach-mipsle-bpinst)
2014-07-13 01:24:55 +02:00
cinap_lenrek
f02f05ca6a libmach: fix printing of amd64 modrm byte register with rex prefix 2014-04-15 00:37:01 +02:00
cinap_lenrek
62ffb9c16e libmach: pragma pack 32bit Ureg structs for amd64
when libmach is compiled with 6c, unions in the 32bit Uregs
cause fields to be wronly aligned. use #pragma pack arround
the #include "/$objtype/include/ureg.h" statement.
2014-03-09 02:04:08 +01:00
cinap_lenrek
6b146c70c2 pc64: handle negative file offsets when accessing kernel memory with devproc
file offset is 64 bit signed integer, negative offsets
are invalid and rejected by the kernel. to still access
kernel memory on amd64, we unconditionally clear the sign
bit of the 64 bit offset in libmach and devproc sign
extends the offset back to a 64 bit address.
2014-02-08 03:50:41 +01:00
cinap_lenrek
fefc7b526d libmach: change mach pgsize back from 4K to 2MB for amd64
the Mach page size is used to calculate segment alignment. its
not the real effective page size used by the kernel.

this fixes acid.
2014-02-03 22:39:07 +01:00
cinap_lenrek
090fd6ec0c libmach: pc64 uses 4K pages, IP -> PC 2014-02-01 09:55:34 +01:00
cinap_lenrek
02a2eb6676 libmach: fix wrong operand order of MOVLQSX instruction disassembly 2014-01-17 21:09:17 +01:00
cinap_lenrek
f163d0014a libmach: fix wrong formating for arm LDRH/STRH/LDRSB/LDRSH (MOVHU/MOVBU) instructions 2013-10-02 20:52:13 +02:00
cinap_lenrek
f536320698 TEQ with S bit = 0 would be pointless, so ARM uses this case to encode "miscellaneous"
instructions like BKPT, BX and BLX.  Decoding these correctly allows db/acid to
single step through BX and BLX on armv5t+, and to show a breakpoint instruction
as 'BKPT $#0' instead of 'TEQ R0@>R0,R0'.
2013-08-10 16:40:36 +02:00
cinap_lenrek
a269ced358 apply richard millers arm debug fixes (from sources)
From richard:

A couple of patches applied yesterday should make debugging on ARM a
bit more reliable.  Using db or acid on ARM, you may have noticed that
a program being debugged would sometimes execute through a breakpoint
without stopping, or run away while being single stepped.  It turns out,
as often happens, that one symptom had two separate causes.  For details:
	/n/sources/patch/applied/5db-condcode/readme
	/n/sources/patch/applied/arm-bkpt-cond/readme

To take advantage of the patches, rebuild libmach.a, then acid and db.
On machines with a kw kernel (sheevaplug et al), you'll also want to
rebuild /arm/9plug; otherwise breakpoints will stop working at all.
The new 9plug will, however, still work with the old libmach; and
the bcm and teg2 kernels are already compatible with the new libmach.
2013-08-04 01:52:46 +02:00
cinap_lenrek
c1b55b0328 libmach: add EMMS for disassembly (8db.c, thanks mischief) 2013-06-12 19:38:14 +02:00
jpathy
de46340848 ARM: kernel changes make teg2 procfork() call fpuprocfork() and acid fixes for vfp instruction 2013-06-10 18:07:16 +05:30
cinap_lenrek
580a467f63 libmach: fix reversed F0-F7 register order 2013-05-30 23:01:59 +02:00
cinap_lenrek
257c7e958e keep fpregs always in sse (FXSAVE) format, adapt libmach and acid files for new format
we now always use the new FXSAVE format in FPsave structure and fpregs
file, converting back and forth in fpx87save() and fpx87restore().

document that fprestore() is a destructive operation now.

change fp register definition in libmach and adapt fpr() acid funciton.

avoid unneccesary copy of fpstate and fpsave in sysfork(). functions
including syscalls do not preserve the fp registers and copying fpstate
from the current process would mean we had to fpsave(&up->fpsave); first.
simply not doing it, new process starts in FPinit state.
2013-05-26 22:41:40 +02:00
cinap_lenrek
3e8a38dfb3 libmach: update mips disassembler (from sources) 2013-05-04 18:40:05 +02:00
cinap_lenrek
18e480ceb2 bio: use UTFmax for Bungetsize and fix libmach to include <libc.h> before <bio.h> (from sources) 2013-05-04 18:30:49 +02:00
cinap_lenrek
ea0f580909 add arm vfp support to compiler and linker (from sources) 2013-01-26 18:03:45 +01:00
cinap_lenrek
2f416353df libmach: fix file permission for map.c 2012-11-22 00:56:32 +01:00
cinap_lenrek
e15b523a6c libmach: fix acid -k regression (was broken in r5eeb36d3ddd0) 2012-08-07 03:48:56 +02:00
cinap_lenrek
4f33c88a51 import updated compilers from sources 2012-07-30 19:11:16 +02:00
cinap_lenrek
6cb7ba7ed5 libmach: use correct kernel base, kprof: use kernel base from libmach (from applied/kprof patch) 2012-02-13 06:06:13 +01:00
Taru Karttunen
a9060cc06b Import sources from 2011-03-30 iso image - lib 2011-03-30 19:35:09 +03:00
Taru Karttunen
e5888a1ffd Import sources from 2011-03-30 iso image 2011-03-30 15:46:40 +03:00