I'v reviewed your code and applied the patch to 0.12.0.rc1. After fixing some 
small bugs I run it on my debian/alpha platform, and it hung after running 
abort 3 TBs. I'll continue to trace your code.

The bugs that are fixed are listed as follow:
1. adding constraints for operation mov_i32/movi_i32/mov_i64/movi_i64
2. replacing "goto do_arith" with "break" for INDEX_op_not_i32/i64 case 
handling in tcg_out_op
3. removing the redundant declaration for "alpha_tb_set_jmp_target()" at tail 
of tcg-target.c, it has been declared in exec-all.h

I just find that a suspect bug in tcg_out_brcond() and have not tried yet.

if ( opc == 0) {
    opc = cmp_opc[cond];
    if ( const_arg2) {          /* should be if (const_arg2 && arg2 & ~0xff == 
0) ?
        tcg_out_fmt_opi(s, opc, ...)
...

Your code is more skilled and I learn a lot from it, but I haven't yet 
recognized the key difference between your version and mine. In last mail, 
you've said that "Mainly, tcg_target_long was used places that could be holding 
HOST values, which means that the host values would have been truncated to 32 
bits.", and I can't fully understand it, may you put it more clearly.

BTW, there is no internet access in my daily working environment, so forgive me 
for not being able to check my mail regularly.

Dong Weiyu.



      ___________________________________________________________ 
  好玩贺卡等你发,邮箱贺卡全新上线! 
http://card.mail.cn.yahoo.com/

Reply via email to