# HG changeset patch # User tobaru # Date 1522897821 -32400 # Node ID bf2f70fa8852db438bb161da60b9a8af7c059125 # Parent d058830337d93d5ded5b0431f5a28893eac550e2 fix proc.c not generate memcpy4 diff -r d058830337d9 -r bf2f70fa8852 Todo --- a/Todo Mon Mar 05 19:31:28 2018 +0900 +++ b/Todo Thu Apr 05 12:10:21 2018 +0900 @@ -1,11 +1,11 @@ Fri Feb 16 16:38:49 JST 2018 - xv6arm をつくる + * xv6arm をつくる * cbclangの-arm - CbC_gcc のarmくろすこんぱいら - cbclang らいぶらりとインクルード - gccbc ライブラリとインクルード - できたxv6をKVMでうごかす + * CbC_gcc のarmくろすこんぱいら + * cbclang らいぶらりとインクルード + * gccbc ライブラリとインクルード + * できたxv6をKVMでうごかす 実際にxv6の一部をCbCで書き直す efi boot を書く diff -r d058830337d9 -r bf2f70fa8852 src/entry.S --- a/src/entry.S Mon Mar 05 19:31:28 2018 +0900 +++ b/src/entry.S Thu Apr 05 12:10:21 2018 +0900 @@ -14,8 +14,8 @@ 1: CMP r1, r2 - STMLTIA r1!, {r3} -# STMIALT r1!, {r3} +# STMLTIA r1!, {r3} + STMIALT r1!, {r3} BLT 1b # initialize stack pointers for svc modes diff -r d058830337d9 -r bf2f70fa8852 src/proc.c --- a/src/proc.c Mon Mar 05 19:31:28 2018 +0900 +++ b/src/proc.c Thu Apr 05 12:10:21 2018 +0900 @@ -196,7 +196,8 @@ np->sz = proc->sz; np->parent = proc; - *np->tf = *proc->tf; + // *np->tf = *proc->tf; // This generate memcpy4 which is not in libgcc.a + memmove(np->tf, proc->tf, sizeof(*np->tf)); // Clear r0 so that fork returns 0 in the child. np->tf->r0 = 0;