From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:52429) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SwCM4-0000Q3-3h for qemu-devel@nongnu.org; Tue, 31 Jul 2012 09:19:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SwCLy-0001L3-Fc for qemu-devel@nongnu.org; Tue, 31 Jul 2012 09:19:19 -0400 Received: from mail-vb0-f45.google.com ([209.85.212.45]:34513) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SwCLy-0001Kr-Aw for qemu-devel@nongnu.org; Tue, 31 Jul 2012 09:19:14 -0400 Received: by vbip1 with SMTP id p1so3269587vbi.4 for ; Tue, 31 Jul 2012 06:19:13 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <5016B8EE.9060203@ac.upc.edu> References: <5016B8EE.9060203@ac.upc.edu> Date: Tue, 31 Jul 2012 15:19:13 +0200 Message-ID: From: Laurent Desnogues Content-Type: text/plain; charset=ISO-8859-1 Subject: Re: [Qemu-devel] Adding a parameter to a helper List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jose Cano Reyes Cc: qemu-devel@nongnu.org On Mon, Jul 30, 2012 at 6:40 PM, Jose Cano Reyes wrote: > I am trying to add a new integer parameter to an existing helper and call > this helper in "targeti386/translate.c". I have several problems: > > 1) I cannot add an integer parameter to the helper, the compiler says that > it must be "TCGv_i32", despite I declare this new parameter as "int" in > "target-i386/helper.h". Why? Helpers only accept TCGv parameters. > 2) If I use the the function "tcg_const_i32" in order to convert my integer > to TCGv_i32 I always obtain the same output value, that is: > > tcg_const_i32(10) = 1074260520 > tcg_const_i32(22) = 1074260520 > tcg_const_i32(30) = 1074260520 > ... TCGv is an index, not the value it represents. Think of it as an id. tcg_const will allocate a TCGv and then emit a TCG mov instruction to assign it a value. > 3) Moreover, wen I pass this value in the helper call "gen_helper_flds_ST0", > that is: > > gen_helper_flds_ST0(cpu_tmp2_i32, tcg_const_i32(MY_INT_VALUE)); > > How can I use MY_INT_VALUE later in the function "tcg_gen_helperN" . > This function is called by DEF_HELPER_FLAGS2, which corresponds to > DEF_HELPER_2 (definition of my helper). Look at helper_aam, that should help :-) Laurent