From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757529Ab0COSdG (ORCPT ); Mon, 15 Mar 2010 14:33:06 -0400 Received: from mail-fx0-f219.google.com ([209.85.220.219]:47095 "EHLO mail-fx0-f219.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752640Ab0COSdD (ORCPT ); Mon, 15 Mar 2010 14:33:03 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; b=W6ccRGc0w6La6AW7nEmJW29tqye4xHE5LBgERTKkO8k09NNZg7weVM7n9YxiLcEV91 aR+CUpQkl/sllVB7EbncJM/jQ8qDTXmKBg5jSaEn4KMnHvPT70SIuQI+3BZrVUheyagb Z/jxRqDj4zMsRj9G7WmsV5xNH30SR9RW/bF6s= Date: Tue, 16 Mar 2010 00:02:58 +0530 From: Rabin Vincent To: Catalin Marinas Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Steven Rostedt , Frederic Weisbecker , Ingo Molnar , Abhishek Sagar , Uwe =?iso-8859-1?Q?Kleine-K=F6nig?= Subject: Re: [PATCH 06/10] ARM: ftrace: add Thumb-2 support Message-ID: <20100315183258.GA2141@debian> References: <1268462987-8271-1-git-send-email-rabin@rab.in> <1268462987-8271-7-git-send-email-rabin@rab.in> <1268605815.2168.6.camel@e102109-lin.cambridge.arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1268605815.2168.6.camel@e102109-lin.cambridge.arm.com> User-Agent: Mutt/1.5.20 (2009-06-14) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Mar 14, 2010 at 10:30:15PM +0000, Catalin Marinas wrote: > On Sat, 2010-03-13 at 06:49 +0000, Rabin Vincent wrote: > > - The problem with the "mov lr, pc", is that it does not set the lsb when > > storing the pc in lr. The called function returns with "bx lr", and the > > mode changes to ARM. The blx is to avoid this. > > I'm not familiar with ftrace but why does the called function returns > using "bx lr". Is this generated by the compiler? I had the impression > that if we don't enable interworking, we wouldn't get this instruction > (but haven't tried this yet). There's nothing special about the called function: it's just a regular C function. GCC uses "bx lr" for the return. Rabin