Previous 199869 Revisions Next

r25441 Thursday 26th September, 2013 at 21:42:57 UTC by Ryan Holtz
Fixed non-SIMD mode, nw
[src/emu/cpu/rsp]rspdrc.c

trunk/src/emu/cpu/rsp/rspdrc.c
r25440r25441
276276
277277#else
278278
279#define ACCUM_H(v, x)         rsp->accum[((x))].w[3]
280#define ACCUM_M(v, x)         rsp->accum[((x))].w[2]
281#define ACCUM_L(v, x)         rsp->accum[((x))].w[1]
279#define ACCUM_H(v, x)         (UINT16)rsp->accum[x].w[3]
280#define ACCUM_M(v, x)         (UINT16)rsp->accum[x].w[2]
281#define ACCUM_L(v, x)         (UINT16)rsp->accum[x].w[1]
282282
283#define SET_ACCUM_H(v, x)      ACCUM_H(-1, x) = v;
284#define SET_ACCUM_M(v, x)      ACCUM_M(-1, x) = v;
285#define SET_ACCUM_L(v, x)      ACCUM_L(-1, x) = v;
283#define SET_ACCUM_H(v, x)      rsp->accum[x].w[3] = v;
284#define SET_ACCUM_M(v, x)      rsp->accum[x].w[2] = v;
285#define SET_ACCUM_L(v, x)      rsp->accum[x].w[1] = v;
286286
287287#define SCALAR_GET_VS1(out, i)   out = VREG_S(VS1REG, i)
288288#define SCALAR_GET_VS2(out, i)   out = VREG_S(VS2REG, VEC_EL_2(EL, i))
r25440r25441
941941#else
942942    VREG_B(dest, index) = READ8(rsp, ea);
943943#endif
944
945944}
946945
947946static void cfunc_rsp_lsv(void *param)
r25440r25441
25292528{
25302529    rsp_state *rsp = (rsp_state*)param;
25312530    int op = rsp->impstate->arg0;
2531
25322532    // 31       25  24     20      15      10      5        0
25332533    // ------------------------------------------------------
25342534    // | 010010 | 1 | EEEE | SSSSS | TTTTT | DDDDD | 000111 |
r25440r25441
29972997        INT32 s1 = (UINT16)w1;
29982998        INT32 s2 = (INT32)(INT16)w2;
29992999
3000        INT64 q = (UINT64)ACCUM(i) & 0x000000000000ffffL;
3000        UINT64 q = (UINT64)ACCUM(i) & 0x000000000000ffffL;
30013001        q |= (((UINT64)ACCUM_L(rsp, i)) << 16);
30023002        q |= (((UINT64)ACCUM_M(rsp, i)) << 32);
30033003        q |= (((UINT64)ACCUM_H(rsp, i)) << 48);
r25440r25441
30183018{
30193019    rsp_state *rsp = (rsp_state*)param;
30203020    int op = rsp->impstate->arg0;
3021
30213022    // 31       25  24     20      15      10      5        0
30223023    // ------------------------------------------------------
30233024    // | 010010 | 1 | EEEE | SSSSS | TTTTT | DDDDD | 001111 |
r25440r25441
30763077{
30773078    rsp_state *rsp = (rsp_state*)param;
30783079    int op = rsp->impstate->arg0;
3080
30793081    // 31       25  24     20      15      10      5        0
30803082    // ------------------------------------------------------
30813083    // | 010010 | 1 | EEEE | SSSSS | TTTTT | DDDDD | 010000 |
r25440r25441
31273129{
31283130    rsp_state *rsp = (rsp_state*)param;
31293131    int op = rsp->impstate->arg0;
3132
31303133    // 31       25  24     20      15      10      5        0
31313134    // ------------------------------------------------------
31323135    // | 010010 | 1 | EEEE | SSSSS | TTTTT | DDDDD | 010001 |
r25440r25441
31793182{
31803183    rsp_state *rsp = (rsp_state*)param;
31813184    int op = rsp->impstate->arg0;
3185
31823186    // 31       25  24     20      15      10      5        0
31833187    // ------------------------------------------------------
31843188    // | 010010 | 1 | EEEE | SSSSS | TTTTT | DDDDD | 010011 |
r25440r25441
32353239{
32363240    rsp_state *rsp = (rsp_state*)param;
32373241    int op = rsp->impstate->arg0;
3242
32383243    // 31       25  24     20      15      10      5        0
32393244    // ------------------------------------------------------
32403245    // | 010010 | 1 | EEEE | SSSSS | TTTTT | DDDDD | 010100 |
r25440r25441
32883293{
32893294    rsp_state *rsp = (rsp_state*)param;
32903295    int op = rsp->impstate->arg0;
3296
32913297    // 31       25  24     20      15      10      5        0
32923298    // ------------------------------------------------------
32933299    // | 010010 | 1 | EEEE | SSSSS | TTTTT | DDDDD | 010101 |
r25440r25441
33513357{
33523358    rsp_state *rsp = (rsp_state*)param;
33533359    int op = rsp->impstate->arg0;
3360
33543361    // 31       25  24     20      15      10      5        0
33553362    // ------------------------------------------------------
33563363    // | 010010 | 1 | EEEE | SSSSS | TTTTT | DDDDD | 011101 |
r25440r25441
34043411{
34053412    rsp_state *rsp = (rsp_state*)param;
34063413    int op = rsp->impstate->arg0;
3414
34073415    //int i;
34083416    // 31       25  24     20      15      10      5        0
34093417    // ------------------------------------------------------
r25440r25441
42064214{
42074215    rsp_state *rsp = (rsp_state*)param;
42084216    int op = rsp->impstate->arg0;
4217
42094218    // 31       25  24     20      15      10      5        0
42104219    // ------------------------------------------------------
42114220    // | 010010 | 1 | EEEE | SSSSS | TTTTT | DDDDD | 100111 |
r25440r25441
46014610{
46024611    rsp_state *rsp = (rsp_state*)param;
46034612    int op = rsp->impstate->arg0;
4613
46044614    // 31       25  24     20      15      10      5        0
46054615    // ------------------------------------------------------
46064616    // | 010010 | 1 | EEEE | SSSSS | ?FFFF | DDDDD | 110010 |

Previous 199869 Revisions Next


© 1997-2024 The MAME Team