qemu/target/microblaze/translate.c
/* Insns connected to FSL or AXI stream attached devices.  */
Insns connected to FSL or AXI stream attached devices.
Insns connected to FSL or AXI stream attached devices .
static void dec_stream(DisasContext *dc)
{
    TCGv_i32 t_id, t_ctrl;
    int ctrl;
    LOG_DIS("%s%s imm=%x\n", dc->rd ? "get" : "put",
            dc->type_b ? "" : "d", dc->imm);
    if (trap_userspace(dc, true)) {
        return;
    }
    t_id = tcg_temp_new_i32();
    if (dc->type_b) {
        tcg_gen_movi_i32(t_id, dc->imm & 0xf);
        ctrl = dc->imm >> 10;
    } else {
        tcg_gen_andi_i32(t_id, cpu_R[dc->rb], 0xf);
        ctrl = dc->imm >> 5;
    }
    t_ctrl = tcg_const_i32(ctrl);
    if (dc->rd == 0) {
        gen_helper_put(t_id, t_ctrl, cpu_R[dc->ra]);
    } else {
        gen_helper_get(cpu_R[dc->rd], t_id, t_ctrl);
    }
    tcg_temp_free_i32(t_id);
    tcg_temp_free_i32(t_ctrl);
}
static void dec_stream ( DisasContext * dc ) { TCGv_i32 t_id , t_ctrl ; int ctrl ; LOG_DIS ( " \n " , dc -> rd ? " " : " " , dc -> type_b ? " " : " " , dc -> imm ) ; if ( trap_userspace ( dc , true ) ) { return ; } t_id = tcg_temp_new_i32 ( ) ; if ( dc -> type_b ) { tcg_gen_movi_i32 ( t_id , dc -> imm & 0xf ) ; ctrl = dc -> imm >> 10 ; } else { tcg_gen_andi_i32 ( t_id , cpu_R [ dc -> rb ] , 0xf ) ; ctrl = dc -> imm >> 5 ; } t_ctrl = tcg_const_i32 ( ctrl ) ; if ( dc -> rd == 0 ) { gen_helper_put ( t_id , t_ctrl , cpu_R [ dc -> ra ] ) ; } else { gen_helper_get ( cpu_R [ dc -> rd ] , t_id , t_ctrl ) ; } tcg_temp_free_i32 ( t_id ) ; tcg_temp_free_i32 ( t_ctrl ) ; }
Insns connected to FSL or AXI stream attached devices.
Insns connected to FSL or AXI stream attached devices .