Thanks for the fast response, I really appreciate it. I implemented all of your suggestions and now it all works perfectly!
On Mon, Dec 23, 2013 at 3:02 AM, Peter Maydell <[email protected]>wrote: > On 23 December 2013 03:45, Lauren E Guckert <[email protected]> wrote: > > IN TRANSLATE.C: > > DISAS_INSN FUNCTION: > > > > ++ TCGv t0 = tcg_temp_new(); > > ++ TCGv t1 = tcg_temp_new(); > > ++ t0= pc_start; t1 = b; > > ++ tcg_gen_helper_fast_trace(t0,t1); > > The TCGv type represents a TCG value. You have to > use the TCG functions to manipulate them. If you just > assign a random value like 'b' to them then things are > obviously going to go wrong. Look at other code which > passes constant values to helper functions (hint, it > will use tcg_const_i32() or tcg_const_i64() to create > the TCGv.) > > > IN TCG/TCG-OP.H ADDED (here if I pass 0 args, it executes fine and prints > > dummy message correct number of times): > > static inline void tcg_gen_helper_fast_trace(target_ulong pc,int op) > > { > > int sizemask = 0; > > TCGArg args[2]; > > #ifdef TARGET_X86_64 > > sizemask |= tcg_gen_sizemask(0,0,0); > > sizemask |= tcg_gen_sizemask(1,1,0); > > sizemask |= tcg_gen_sizemask(2,1,0); > > args[0] = GET_TCGV_I64(pc); > > args[1] = GET_TCGV_I64(op); > > tcg_gen_helperN(tcg_helper_fast_trace64, 0, sizemask, ((TCGArg)(-1)),2 , > > args); > > Why are you doing this rather than just using a simple helper > declared in helper.h like everything else? Why is yours special? > > thanks > -- PMM >
