Revision d8992825 target-mips/dsp_helper.c

b/target-mips/dsp_helper.c
2902 2902
    return (target_ulong)rd;
2903 2903
}
2904 2904

  
2905
#define BIT_INSV(name, posfilter, sizefilter, ret_type)         \
2905
#define BIT_INSV(name, posfilter, ret_type)                     \
2906 2906
target_ulong helper_##name(CPUMIPSState *env, target_ulong rs,  \
2907 2907
                           target_ulong rt)                     \
2908 2908
{                                                               \
2909 2909
    uint32_t pos, size, msb, lsb;                               \
2910
    target_ulong filter;                                        \
2911
    target_ulong temp, temprs, temprt;                          \
2910
    uint32_t const sizefilter = 0x3F;                           \
2911
    target_ulong temp;                                          \
2912 2912
    target_ulong dspc;                                          \
2913 2913
                                                                \
2914 2914
    dspc = env->active_tc.DSPControl;                           \
......
2923 2923
        return rt;                                              \
2924 2924
    }                                                           \
2925 2925
                                                                \
2926
    filter = ((int64_t)0x01 << size) - 1;                       \
2927
    filter = filter << pos;                                     \
2928
    temprs = (rs << pos) & filter;                              \
2929
    temprt = rt & ~filter;                                      \
2930
    temp = temprs | temprt;                                     \
2926
    temp = deposit64(rt, pos, size, rs);                        \
2931 2927
                                                                \
2932 2928
    return (target_long)(ret_type)temp;                         \
2933 2929
}
2934 2930

  
2935
BIT_INSV(insv, 0x1F, 0x3F, int32_t);
2931
BIT_INSV(insv, 0x1F, int32_t);
2936 2932
#ifdef TARGET_MIPS64
2937
BIT_INSV(dinsv, 0x7F, 0x3F, target_long);
2933
BIT_INSV(dinsv, 0x7F, target_long);
2938 2934
#endif
2939 2935

  
2940 2936
#undef BIT_INSV

Also available in: Unified diff