Commit Diff


commit - e2f52703c2387a34f7edc86845a0b15f04830bb8
commit + 1369edef9f26a5a127b60b1163564c2570d9a7d9
blob - 8ebe03744e10597c62416a480943723755fe956e
blob + 53d1af99e49643bc1192684b64acedd445efdbbf
--- src/libmach/mkfile
+++ src/libmach/mkfile
@@ -41,6 +41,7 @@ OFILES=\
 	symelf.$O\
 	symmacho.$O\
 	symstabs.$O\
+	ureg386.$O\
 
 HFILES=mach.h
 
blob - /dev/null
blob + 09ef095db2596e94e60cb9a99823761810e4d6bd (mode 644)
--- /dev/null
+++ src/libmach/ureg386.c
@@ -0,0 +1,36 @@
+#include <u.h>
+#include <libc.h>
+#include <mach.h>
+#include <elf.h>
+#include "ureg386.h"
+
+
+Ureg*
+_linux2ureg386(UregLinux386 *l)
+{
+	Ureg *u;
+
+	u = malloc(sizeof(Ureg));
+	if(u == nil)
+		return nil;
+	u->di = l->edi;
+	u->si = l->esi;
+	u->bp = l->ebp;
+	u->nsp = l->esp;
+	u->bx = l->ebx;
+	u->dx = l->edx;
+	u->cx = l->ecx;
+	u->ax = l->eax;
+	u->gs = l->xgs;
+	u->fs = l->xfs;
+	u->es = l->xes;
+	u->ds = l->xds;
+	u->trap = ~0; // l->trapno;
+	u->ecode = ~0; // l->err;
+	u->pc = l->eip;
+	u->cs = l->xcs;
+	u->flags = l->eflags;
+	u->sp = l->esp;
+	u->ss = l->xss;
+	return u;
+}