From patchwork Tue Apr 8 13:15:56 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Will Newton X-Patchwork-Id: 337656 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 80B5814008C for ; Tue, 8 Apr 2014 23:16:14 +1000 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id; q=dns; s= default; b=kOwb7entqA5WVIRWclKkpbG9ajHKEVPdwmbpcddvGCJS00TYuHC4o YKJO/EJ2kcYkC3Mcvxy3EkYggeC8qnya1csB4sywkLqUB5woml8u0UhcdYa1T+HM mpSXhqqGCBJaAlOf5fHI7fNvnzgiNJ0WB4dCMOatU+vcYvisG/ofKU= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id; s=default; bh=fx9UVQrI99gz8Nnkcimmn8eiENk=; b=kNzB/WetbdpDuWdtryewhzOpmP2e A1Dd5RF0f4reSdlrvdDaOxnLAahid2KOFdD1hI/ZFIlujGHVK1o9eaSo1DvAMgcZ QjVrhngUQGy3ptIjNw1XHAyxeeVTbNth7Ooo0BjeLb4GMx/L/hUkbiMDCZK+J57y ftn1+cOhRv80EXw= Received: (qmail 11178 invoked by alias); 8 Apr 2014 13:16:08 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 11161 invoked by uid 89); 8 Apr 2014 13:16:06 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-we0-f174.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id; bh=oQJQBMlASRZndY4M1+bzPOpOWeK6LsvHUzvdUmFfzgo=; b=cYORHLKs25mbZcXA29FFEt1Pn1UkGNRlvpuXEhe25fVCQ0E3iGSHyGi+bKb+wp93Ot FoZic2eOyDfJqjBD2JLWjw8chA3WxFCHJ8GXiNIbcTKX7aep86irsFrp6TmoipavImIo 8IqCg8B2vAOArWPh2qzlL5XnIWhI6PhOGMlUsqE9gQh2qYTzF58hPROFpCCPyqtfWeSz XcYZhnG2Cvo+rss7T03TgnVwyNLlDryQ/3AsLohW/R+C32DdOTbbP9I/4cUkJ2yzZrJR judQ+kB2ELb9quulAqH/0sQnLteVBChivaQR5jBcRUha1twOEFcwZc6dMq+sfsv0KI4y IHVw== X-Gm-Message-State: ALoCoQnpUqkWraXvsu+Wu+Im1OEivzfdrPID4hdzj7ikCGwrysZg8Gn7Z5AB0URquVSqYM80hFbB X-Received: by 10.180.98.67 with SMTP id eg3mr4556464wib.38.1396962962364; Tue, 08 Apr 2014 06:16:02 -0700 (PDT) From: Will Newton To: libc-alpha@sourceware.org Subject: [PATCH] aarch64: Add setjmp and longjmp SystemTap probes Date: Tue, 8 Apr 2014 14:15:56 +0100 Message-Id: <1396962956-28589-1-git-send-email-will.newton@linaro.org> From: Venkataramanan Kumar Add setjmp, longjmp and longjmp_target Systemtap probes. ChangeLog: 2014-04-08 Will Newton Venkataramanan Kumar * sysdeps/aarch64/__longjmp.S: Include stap-probe.h. (__longjmp): Add longjmp and longjmp_target SystemTap probes. * sysdeps/aarch64/setjmp.S: Include stap-probe.h. (__sigsetjmp): Add setjmp SystemTap probe. --- sysdeps/aarch64/__longjmp.S | 10 ++++++++++ sysdeps/aarch64/setjmp.S | 5 +++++ 2 files changed, 15 insertions(+) diff --git a/sysdeps/aarch64/__longjmp.S b/sysdeps/aarch64/__longjmp.S index 2d38bbf..1bb7be36 100644 --- a/sysdeps/aarch64/__longjmp.S +++ b/sysdeps/aarch64/__longjmp.S @@ -18,6 +18,7 @@ #include #include +#include /* __longjmp(jmpbuf, val) */ @@ -56,6 +57,10 @@ ENTRY (__longjmp) #else ldp x29, x30, [x0, #JB_X29<<3] #endif + /* longjmp probe takes 3 arguments, address of jump buffer as + first argument (8@x0), return value as second argument (-4@x1), + and target address (8@x30), respectively. */ + LIBC_PROBE (longjmp, 3, 8@x0, -4@x1, 8@x30) ldp d8, d9, [x0, #JB_D8<<3] ldp d10, d11, [x0, #JB_D10<<3] ldp d12, d13, [x0, #JB_D12<<3] @@ -98,6 +103,11 @@ ENTRY (__longjmp) ldr x5, [x0, #JB_SP<<3] #endif mov sp, x5 + + /* longjmp_target probe takes 3 arguments, address of jump buffer + as first argument (8@x0), return value as second argument (-4@x1), + and target address (8@x30), respectively. */ + LIBC_PROBE (longjmp_target, 3, 8@x0, -4@x1, 8@x30) cmp x1, #0 mov x0, #1 csel x0, x1, x0, ne diff --git a/sysdeps/aarch64/setjmp.S b/sysdeps/aarch64/setjmp.S index 5822abd..fd39319 100644 --- a/sysdeps/aarch64/setjmp.S +++ b/sysdeps/aarch64/setjmp.S @@ -18,6 +18,7 @@ #include #include +#include /* Keep traditional entry points in with sigsetjmp(). */ ENTRY (setjmp) @@ -46,6 +47,10 @@ ENTRY (__sigsetjmp) #else stp x29, x30, [x0, #JB_X29<<3] #endif + /* setjmp probe takes 3 arguments, address of jump buffer + first argument (8@x0), return value second argument (-4@x1), + and target address (8@x30), respectively. */ + LIBC_PROBE (setjmp, 3, 8@x0, -4@x1, 8@x30) stp d8, d9, [x0, #JB_D8<<3] stp d10, d11, [x0, #JB_D10<<3] stp d12, d13, [x0, #JB_D12<<3]