From: Petar Jovanovic Date: Mon, 8 Sep 2014 01:03:17 +0000 (+0000) Subject: mips64: use generic MK_(guess_and_register_stack) X-Git-Tag: svn/VALGRIND_3_10_0~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e33a00c1f8534d2e1e978349f8a5725f402db5a8;p=thirdparty%2Fvalgrind.git mips64: use generic MK_(guess_and_register_stack) Follow up to Philippe's change in r14392 which does a cleanup and makes all architectures use the same code to guess and register stack. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14490 --- diff --git a/coregrind/m_syswrap/syswrap-mips64-linux.c b/coregrind/m_syswrap/syswrap-mips64-linux.c index 3d5cb7df3e..799836d377 100644 --- a/coregrind/m_syswrap/syswrap-mips64-linux.c +++ b/coregrind/m_syswrap/syswrap-mips64-linux.c @@ -205,7 +205,6 @@ static SysRes do_clone ( ThreadId ptid, ThreadState * ctst = VG_ (get_ThreadState) (ctid); UInt ret = 0; UWord * stack; - NSegment const *seg; SysRes res; vki_sigset_t blockall, savedmask; @@ -230,23 +229,8 @@ static SysRes do_clone ( ThreadId ptid, ctst->tmp_sig_mask = ptst->sig_mask; ctst->os_state.threadgroup = ptst->os_state.threadgroup; - seg = VG_(am_find_nsegment)((Addr)sp); - - // FIXME mips64: the below differs significantly from the code - // factorised in syswrap-generic.c e.g. does not round sp ???? - if (seg && seg->kind != SkResvn) { - ctst->client_stack_highest_byte = sp; - ctst->client_stack_szB = ctst->client_stack_highest_byte - seg->start + 1; - VG_(register_stack)(seg->start, ctst->client_stack_highest_byte); - if (debug) - VG_(printf)("tid %d: guessed client stack range %#lx-%#lx\n", - ctid, seg->start, sp /* VG_PGROUNDUP (sp) */ ); - } else { - VG_(message)(Vg_UserMsg, - "!? New thread %d starts with sp+%#lx) unmapped\n", - ctid, sp); - ctst->client_stack_szB = 0; - } + + ML_(guess_and_register_stack) (sp, ctst); VG_TRACK(pre_thread_ll_create, ptid, ctid); if (flags & VKI_CLONE_SETTLS) {