From owner-p4-projects@FreeBSD.ORG Fri Oct 31 08:23:43 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E7EA91065672; Fri, 31 Oct 2008 08:23:42 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AC55B106564A for ; Fri, 31 Oct 2008 08:23:42 +0000 (UTC) (envelope-from peter-gmail@wemm.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9EF8B8FC0C for ; Fri, 31 Oct 2008 08:23:42 +0000 (UTC) (envelope-from peter-gmail@wemm.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id m9V8Ng6e002122 for ; Fri, 31 Oct 2008 08:23:42 GMT (envelope-from peter-gmail@wemm.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id m9V8Nguo002120 for perforce@freebsd.org; Fri, 31 Oct 2008 08:23:42 GMT (envelope-from peter-gmail@wemm.org) Date: Fri, 31 Oct 2008 08:23:42 GMT Message-Id: <200810310823.m9V8Nguo002120@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter-gmail@wemm.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 152254 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Oct 2008 08:23:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=152254 Change 152254 by peter@peter_overcee on 2008/10/31 08:23:15 Fix the !@^#!$@^!@# bug that I've been looking for over the last 5 days. Add 8 bytes of padding to fake the return address for syscalls that have memory args. Basic valgrind functionality on 64 bit! (runs /bin/ls etc!) Affected files ... .. //depot/projects/valgrind/coregrind/m_syscall.c#8 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_syscall.c#8 (text+ko) ==== @@ -349,14 +349,15 @@ " movq 24(%rsp), %rcx\n" /* a8 from stack */ " pushq %rcx\n" " pushq %r11\n" +" subq $8,%rsp\n" /* fake return addr */ " syscall\n" " jb 1f\n" -" addq $16,%rsp\n" +" addq $24,%rsp\n" " movq 40(%rsp),%rsi\n" " movq %rdx, (%rsi)\n" " ret\n" "1:\n" -" addq $16,%rsp\n" +" addq $24,%rsp\n" " movq 32(%rsp), %rsi\n" " movl $1,(%rsi)\n" " ret\n"