Date: Tue, 23 Apr 2013 09:38:18 +0000 (UTC) From: Warner Losh <imp@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r249790 - in head/sys/mips: include mips Message-ID: <201304230938.r3N9cIV0047961@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: imp Date: Tue Apr 23 09:38:18 2013 New Revision: 249790 URL: http://svnweb.freebsd.org/changeset/base/249790 Log: Update trapframe to be consistent with the changes made to regnum.h. This should fix the booting problems people have been seeing. Modified: head/sys/mips/include/frame.h head/sys/mips/include/regnum.h head/sys/mips/mips/db_interface.c head/sys/mips/mips/trap.c head/sys/mips/mips/vm_machdep.c Modified: head/sys/mips/include/frame.h ============================================================================== --- head/sys/mips/include/frame.h Tue Apr 23 06:37:50 2013 (r249789) +++ head/sys/mips/include/frame.h Tue Apr 23 09:38:18 2013 (r249790) @@ -37,6 +37,8 @@ #ifndef _MACHINE_FRAME_H_ #define _MACHINE_FRAME_H_ +/* Note: This must also match regnum.h and regdef.h */ + struct trapframe { register_t zero; register_t ast; @@ -46,6 +48,16 @@ struct trapframe { register_t a1; register_t a2; register_t a3; +#if defined(__mips_n32) || defined(__mips_n64) + register_t a4; + register_t a5; + register_t a6; + register_t a7; + register_t t0; + register_t t1; + register_t t2; + register_t t3; +#else register_t t0; register_t t1; register_t t2; @@ -54,6 +66,7 @@ struct trapframe { register_t t5; register_t t6; register_t t7; +#endif register_t s0; register_t s1; register_t s2; Modified: head/sys/mips/include/regnum.h ============================================================================== --- head/sys/mips/include/regnum.h Tue Apr 23 06:37:50 2013 (r249789) +++ head/sys/mips/include/regnum.h Tue Apr 23 09:38:18 2013 (r249790) @@ -87,10 +87,10 @@ #define T1 9 #define T2 10 #define T3 11 -#define TA0 12 -#define TA1 13 -#define TA2 14 -#define TA3 15 +#define T4 12 +#define T5 13 +#define T6 14 +#define T7 15 #endif #define S0 16 #define S1 17 Modified: head/sys/mips/mips/db_interface.c ============================================================================== --- head/sys/mips/mips/db_interface.c Tue Apr 23 06:37:50 2013 (r249789) +++ head/sys/mips/mips/db_interface.c Tue Apr 23 09:38:18 2013 (r249790) @@ -77,6 +77,16 @@ struct db_variable db_regs[] = { { "a1", DB_OFFSET(a1), db_frame }, { "a2", DB_OFFSET(a2), db_frame }, { "a3", DB_OFFSET(a3), db_frame }, +#if defined(__mips_n32) || defined(__mips_n64) + { "a4", DB_OFFSET(a4), db_frame }, + { "a5", DB_OFFSET(a5), db_frame }, + { "a6", DB_OFFSET(a6), db_frame }, + { "a7", DB_OFFSET(a7), db_frame }, + { "t0", DB_OFFSET(t0), db_frame }, + { "t1", DB_OFFSET(t1), db_frame }, + { "t2", DB_OFFSET(t2), db_frame }, + { "t3", DB_OFFSET(t3), db_frame }, +#else { "t0", DB_OFFSET(t0), db_frame }, { "t1", DB_OFFSET(t1), db_frame }, { "t2", DB_OFFSET(t2), db_frame }, @@ -85,6 +95,7 @@ struct db_variable db_regs[] = { { "t5", DB_OFFSET(t5), db_frame }, { "t6", DB_OFFSET(t6), db_frame }, { "t7", DB_OFFSET(t7), db_frame }, +#endif { "s0", DB_OFFSET(s0), db_frame }, { "s1", DB_OFFSET(s1), db_frame }, { "s2", DB_OFFSET(s2), db_frame }, Modified: head/sys/mips/mips/trap.c ============================================================================== --- head/sys/mips/mips/trap.c Tue Apr 23 06:37:50 2013 (r249789) +++ head/sys/mips/mips/trap.c Tue Apr 23 09:38:18 2013 (r249790) @@ -363,10 +363,10 @@ cpu_fetch_syscall_args(struct thread *td /* * Non-o32 ABIs support more arguments in registers. */ - sa->args[3] = locr0->t4; - sa->args[4] = locr0->t5; - sa->args[5] = locr0->t6; - sa->args[6] = locr0->t7; + sa->args[3] = locr0->t0; + sa->args[4] = locr0->t1; + sa->args[5] = locr0->t2; + sa->args[6] = locr0->t3; nsaved += 4; #ifdef COMPAT_FREEBSD32 } @@ -389,10 +389,10 @@ cpu_fetch_syscall_args(struct thread *td /* * Non-o32 ABIs support more arguments in registers. */ - sa->args[4] = locr0->t4; - sa->args[5] = locr0->t5; - sa->args[6] = locr0->t6; - sa->args[7] = locr0->t7; + sa->args[4] = locr0->t0; + sa->args[5] = locr0->t1; + sa->args[6] = locr0->t2; + sa->args[7] = locr0->t3; nsaved += 4; #ifdef COMPAT_FREEBSD32 } @@ -1294,12 +1294,19 @@ log_frame_dump(struct trapframe *frame) log(LOG_ERR, "\ta0: %#jx\ta1: %#jx\ta2: %#jx\ta3: %#jx\n", (intmax_t)frame->a0, (intmax_t)frame->a1, (intmax_t)frame->a2, (intmax_t)frame->a3); +#if defined(__mips_n32) || defined(__mips_n64) + log(LOG_ERR, "\ta4: %#jx\ta5: %#jx\ta6: %#jx\ta6: %#jx\n", + (intmax_t)frame->a4, (intmax_t)frame->a5, (intmax_t)frame->a6, (intmax_t)frame->a7); + + log(LOG_ERR, "\tt0: %#jx\tt1: %#jx\tt2: %#jx\tt3: %#jx\n", + (intmax_t)frame->t0, (intmax_t)frame->t1, (intmax_t)frame->t2, (intmax_t)frame->t3); +#else log(LOG_ERR, "\tt0: %#jx\tt1: %#jx\tt2: %#jx\tt3: %#jx\n", (intmax_t)frame->t0, (intmax_t)frame->t1, (intmax_t)frame->t2, (intmax_t)frame->t3); log(LOG_ERR, "\tt4: %#jx\tt5: %#jx\tt6: %#jx\tt7: %#jx\n", (intmax_t)frame->t4, (intmax_t)frame->t5, (intmax_t)frame->t6, (intmax_t)frame->t7); - +#endif log(LOG_ERR, "\tt8: %#jx\tt9: %#jx\ts0: %#jx\ts1: %#jx\n", (intmax_t)frame->t8, (intmax_t)frame->t9, (intmax_t)frame->s0, (intmax_t)frame->s1); @@ -1334,13 +1341,19 @@ trap_frame_dump(struct trapframe *frame) printf("\ta0: %#jx\ta1: %#jx\ta2: %#jx\ta3: %#jx\n", (intmax_t)frame->a0, (intmax_t)frame->a1, (intmax_t)frame->a2, (intmax_t)frame->a3); +#if defined(__mips_n32) || defined(__mips_n64) + printf("\ta4: %#jx\ta5: %#jx\ta6: %#jx\ta7: %#jx\n", + (intmax_t)frame->a4, (intmax_t)frame->a5, (intmax_t)frame->a6, (intmax_t)frame->a7); printf("\tt0: %#jx\tt1: %#jx\tt2: %#jx\tt3: %#jx\n", (intmax_t)frame->t0, (intmax_t)frame->t1, (intmax_t)frame->t2, (intmax_t)frame->t3); +#else + printf("\tt0: %#jx\tt1: %#jx\tt2: %#jx\tt3: %#jx\n", + (intmax_t)frame->t0, (intmax_t)frame->t1, (intmax_t)frame->t2, (intmax_t)frame->t3); printf("\tt4: %#jx\tt5: %#jx\tt6: %#jx\tt7: %#jx\n", (intmax_t)frame->t4, (intmax_t)frame->t5, (intmax_t)frame->t6, (intmax_t)frame->t7); - +#endif printf("\tt8: %#jx\tt9: %#jx\ts0: %#jx\ts1: %#jx\n", (intmax_t)frame->t8, (intmax_t)frame->t9, (intmax_t)frame->s0, (intmax_t)frame->s1); Modified: head/sys/mips/mips/vm_machdep.c ============================================================================== --- head/sys/mips/mips/vm_machdep.c Tue Apr 23 06:37:50 2013 (r249789) +++ head/sys/mips/mips/vm_machdep.c Tue Apr 23 09:38:18 2013 (r249790) @@ -613,6 +613,16 @@ dump_trapframe(struct trapframe *trapfra DB_PRINT_REG(trapframe, a1); DB_PRINT_REG(trapframe, a2); DB_PRINT_REG(trapframe, a3); +#if defined(__mips_n32) || defined(__mips_n64) + DB_PRINT_REG(trapframe, a4); + DB_PRINT_REG(trapframe, a5); + DB_PRINT_REG(trapframe, a6); + DB_PRINT_REG(trapframe, a7); + DB_PRINT_REG(trapframe, t0); + DB_PRINT_REG(trapframe, t1); + DB_PRINT_REG(trapframe, t2); + DB_PRINT_REG(trapframe, t3); +#else DB_PRINT_REG(trapframe, t0); DB_PRINT_REG(trapframe, t1); DB_PRINT_REG(trapframe, t2); @@ -621,6 +631,7 @@ dump_trapframe(struct trapframe *trapfra DB_PRINT_REG(trapframe, t5); DB_PRINT_REG(trapframe, t6); DB_PRINT_REG(trapframe, t7); +#endif DB_PRINT_REG(trapframe, s0); DB_PRINT_REG(trapframe, s1); DB_PRINT_REG(trapframe, s2);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201304230938.r3N9cIV0047961>