summaryrefslogtreecommitdiff
path: root/sys/src/libmach
AgeCommit message (Collapse)Author
2017-11-19libmach: fix format for 8db sse shift opscinap_lenrek
2017-08-24libmach: support disassembling from memoryaiju
2017-05-24libmach: add INVEPT and INVVPID instructionsaiju
2017-05-22libmach: fix wrong offset bug (thanks cinap); add VMX instructionsaiju
2016-11-17/sys/src/lib*: clean upftrvxmtrx
2016-09-03libmach: fix RORREG, right shift with shift count 0 means >>32cinap_lenrek
2016-05-04libmach: more alphacinap_lenrek
2016-05-04libmach: remove alpha stuffcinap_lenrek
2016-05-04retire the dec alpha portcinap_lenrek
2015-08-25fix fuckupglenda
2015-08-25import E script from bell labsmischief
2015-08-05libmach: remove redundant check for big endianmischief
2015-08-05libmach: remove useless error check from previous commitmischief
2015-08-05libmach: set correct endianness with little endian ELF32 mips binariesmischief
2015-03-22vl, libmach, kernel: mips has 16K alignment for segments (for bigpages)cinap_lenrek
2014-07-13libmach: fix break point instruction for little endian MIPS (from sources)cinap_lenrek
fix break point instruction for little endian MIPS in libmach. (patch /n/sources/patch/libmach-mipsle-bpinst)
2014-04-15libmach: fix printing of amd64 modrm byte register with rex prefixcinap_lenrek
2014-03-09libmach: pragma pack 32bit Ureg structs for amd64cinap_lenrek
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-02-08pc64: handle negative file offsets when accessing kernel memory with devproccinap_lenrek
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-03libmach: change mach pgsize back from 4K to 2MB for amd64cinap_lenrek
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-01libmach: pc64 uses 4K pages, IP -> PCcinap_lenrek
2014-01-17libmach: fix wrong operand order of MOVLQSX instruction disassemblycinap_lenrek
2013-10-02libmach: fix wrong formating for arm LDRH/STRH/LDRSB/LDRSH (MOVHU/MOVBU) ↵cinap_lenrek
instructions
2013-08-10TEQ with S bit = 0 would be pointless, so ARM uses this case to encode ↵cinap_lenrek
"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-04apply richard millers arm debug fixes (from sources)cinap_lenrek
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-06-12libmach: add EMMS for disassembly (8db.c, thanks mischief)cinap_lenrek
2013-06-10ARM: kernel changes make teg2 procfork() call fpuprocfork() and acid fixes ↵jpathy
for vfp instruction
2013-05-30libmach: fix reversed F0-F7 register ordercinap_lenrek
2013-05-26keep fpregs always in sse (FXSAVE) format, adapt libmach and acid files for ↵cinap_lenrek
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-04libmach: update mips disassembler (from sources)cinap_lenrek
2013-05-04bio: use UTFmax for Bungetsize and fix libmach to include <libc.h> before ↵cinap_lenrek
<bio.h> (from sources)
2013-01-26add arm vfp support to compiler and linker (from sources)cinap_lenrek
2012-11-22libmach: fix file permission for map.ccinap_lenrek
2012-08-07libmach: fix acid -k regression (was broken in r5eeb36d3ddd0)cinap_lenrek
2012-07-30import updated compilers from sourcescinap_lenrek
2012-02-13libmach: use correct kernel base, kprof: use kernel base from libmach (from ↵cinap_lenrek
applied/kprof patch)
2011-03-30Import sources from 2011-03-30 iso image - libTaru Karttunen
2011-03-30Import sources from 2011-03-30 iso imageTaru Karttunen