mirror of
				https://github.com/yuzu-emu/unicorn.git
				synced 2025-11-04 03:24:47 +00:00 
			
		
		
		
	tcg: Synchronize with qemu
This commit is contained in:
		
							parent
							
								
									006a13026a
								
							
						
					
					
						commit
						3996153514
					
				| 
						 | 
				
			
			@ -2159,11 +2159,15 @@ static void liveness_pass_1(TCGContext *s)
 | 
			
		|||
                        goto do_not_remove;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                goto do_remove;
 | 
			
		||||
            }
 | 
			
		||||
            goto do_not_remove;
 | 
			
		||||
 | 
			
		||||
        do_remove:
 | 
			
		||||
            tcg_op_remove(s, op);
 | 
			
		||||
            } else {
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        do_not_remove:
 | 
			
		||||
                /* output args are dead */
 | 
			
		||||
            for (i = 0; i < nb_oargs; i++) {
 | 
			
		||||
                ts = arg_temp(op->args[i]);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2182,7 +2186,9 @@ static void liveness_pass_1(TCGContext *s)
 | 
			
		|||
            }
 | 
			
		||||
 | 
			
		||||
            /* If end of basic block, update.  */
 | 
			
		||||
                if (def->flags & TCG_OPF_BB_END) {
 | 
			
		||||
            if (def->flags & TCG_OPF_BB_EXIT) {
 | 
			
		||||
                la_func_end(s, nb_globals, nb_temps);
 | 
			
		||||
            } else if (def->flags & TCG_OPF_BB_END) {
 | 
			
		||||
                // Unicorn: do not optimize dead temps on brcond,
 | 
			
		||||
                // this causes problem because check_exit_request() inserts
 | 
			
		||||
                // brcond instruction in the middle of the TB,
 | 
			
		||||
| 
						 | 
				
			
			@ -2211,6 +2217,7 @@ static void liveness_pass_1(TCGContext *s)
 | 
			
		|||
                    arg_life |= DEAD_ARG << i;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            /* Input arguments are live for preceding opcodes.  */
 | 
			
		||||
            for (i = nb_oargs; i < nb_oargs + nb_iargs; i++) {
 | 
			
		||||
                ts = arg_temp(op->args[i]);
 | 
			
		||||
| 
						 | 
				
			
			@ -2255,8 +2262,6 @@ static void liveness_pass_1(TCGContext *s)
 | 
			
		|||
                    *pset = set;
 | 
			
		||||
                }
 | 
			
		||||
                break;
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue