On Mon, Jul 30, 2012 at 6:40 PM, Jose Cano Reyes <jc...@ac.upc.edu> 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