int find_itlb_entry(CPUState * env, target_ulong address,

		    int use_asid, int update)

{

    int e, n;



    e = find_tlb_entry(env, address, env->itlb, ITLB_SIZE, use_asid);

    if (e == MMU_DTLB_MULTIPLE)

	e = MMU_ITLB_MULTIPLE;

    else if (e == MMU_DTLB_MISS && update) {

	e = find_tlb_entry(env, address, env->utlb, UTLB_SIZE, use_asid);

	if (e >= 0) {

	    n = itlb_replacement(env);

	    env->itlb[n] = env->utlb[e];

	    e = n;

	} else if (e == MMU_DTLB_MISS)

	    e = MMU_ITLB_MISS;

    } else if (e == MMU_DTLB_MISS)

	e = MMU_ITLB_MISS;

    if (e >= 0)

	update_itlb_use(env, e);

    return e;

}

int find_itlb_entry(CPUState * env, target_ulong address,

		    int use_asid, int update)

{

    int e, n;



    e = find_tlb_entry(env, address, env->itlb, ITLB_SIZE, use_asid);

    if (e == MMU_DTLB_MULTIPLE)

	e = MMU_ITLB_MULTIPLE;

    else if (e == MMU_DTLB_MISS && update) {

	e = find_tlb_entry(env, address, env->utlb, UTLB_SIZE, use_asid);

	if (e >= 0) {

	    n = itlb_replacement(env);

	    env->itlb[n] = env->utlb[e];

	    e = n;

	} else if (e == MMU_DTLB_MISS)

	    e = MMU_ITLB_MISS;

    } else if (e == MMU_DTLB_MISS)

	e = MMU_ITLB_MISS;

    if (e >= 0)

	update_itlb_use(env, e);

    return e;

}

	    env->itlb[n] = env->utlb[e];
int FUNC_0(CPUState * VAR_0, target_ulong VAR_1,

		    int VAR_2, int VAR_3)

{

    int VAR_4, VAR_5;



    VAR_4 = find_tlb_entry(VAR_0, VAR_1, VAR_0->itlb, ITLB_SIZE, VAR_2);

    if (VAR_4 == MMU_DTLB_MULTIPLE)

	VAR_4 = MMU_ITLB_MULTIPLE;

    else if (VAR_4 == MMU_DTLB_MISS && VAR_3) {

	VAR_4 = find_tlb_entry(VAR_0, VAR_1, VAR_0->utlb, UTLB_SIZE, VAR_2);

	if (VAR_4 >= 0) {

	    VAR_5 = itlb_replacement(VAR_0);

	    VAR_0->itlb[VAR_5] = VAR_0->utlb[VAR_4];

	    VAR_4 = VAR_5;

	} else if (VAR_4 == MMU_DTLB_MISS)

	    VAR_4 = MMU_ITLB_MISS;

    } else if (VAR_4 == MMU_DTLB_MISS)

	VAR_4 = MMU_ITLB_MISS;

    if (VAR_4 >= 0)

	update_itlb_use(VAR_0, VAR_4);

    return VAR_4;

}

int FUNC_0(CPUState * VAR_0, target_ulong VAR_1,
int VAR_2, int VAR_3)
{ int VAR_4, VAR_5; VAR_4 = find_tlb_entry(VAR_0, VAR_1, VAR_0->itlb, ITLB_SIZE, VAR_2); if (VAR_4 == MMU_DTLB_MULTIPLE)
VAR_4 = MMU_ITLB_MULTIPLE; else if (VAR_4 == MMU_DTLB_MISS && VAR_3) { VAR_4 = find_tlb_entry(VAR_0, VAR_1, VAR_0->utlb, UTLB_SIZE, VAR_2); if (VAR_4 >= 0) { VAR_5 = itlb_replacement(VAR_0); VAR_0->itlb[VAR_5] = VAR_0->utlb[VAR_4]; VAR_4 = VAR_5; } else if (VAR_4 == MMU_DTLB_MISS) VAR_4 = MMU_ITLB_MISS; } else if (VAR_4 == MMU_DTLB_MISS) VAR_4 = MMU_ITLB_MISS; if (VAR_4 >= 0)
update_itlb_use(VAR_0, VAR_4); return VAR_4; }