Revision 2958620f target-alpha/translate.c

b/target-alpha/translate.c
1392 1392
        tcg_temp_free(tmp1);                                          \
1393 1393
    }                                                                 \
1394 1394
}
1395
ARITH3(cmpbge)
1396
ARITH3(addlv)
1397
ARITH3(sublv)
1398
ARITH3(addqv)
1399
ARITH3(subqv)
1400 1395
ARITH3(umulh)
1401
ARITH3(mullv)
1402
ARITH3(mulqv)
1396
ARITH3(cmpbge)
1403 1397
ARITH3(minub8)
1404 1398
ARITH3(minsb8)
1405 1399
ARITH3(minuw4)
......
1410 1404
ARITH3(maxsw4)
1411 1405
ARITH3(perr)
1412 1406

  
1407
/* Code to call arith3 helpers */
1408
#define ARITH3_EX(name)                                                 \
1409
    static inline void glue(gen_, name)(int ra, int rb, int rc,         \
1410
                                        int islit, uint8_t lit)         \
1411
    {                                                                   \
1412
        if (unlikely(rc == 31)) {                                       \
1413
            return;                                                     \
1414
        }                                                               \
1415
        if (ra != 31) {                                                 \
1416
            if (islit) {                                                \
1417
                TCGv tmp = tcg_const_i64(lit);                          \
1418
                gen_helper_ ## name(cpu_ir[rc], cpu_env,                \
1419
                                    cpu_ir[ra], tmp);                   \
1420
                tcg_temp_free(tmp);                                     \
1421
            } else {                                                    \
1422
                gen_helper_ ## name(cpu_ir[rc], cpu_env,                \
1423
                                    cpu_ir[ra], cpu_ir[rb]);            \
1424
            }                                                           \
1425
        } else {                                                        \
1426
            TCGv tmp1 = tcg_const_i64(0);                               \
1427
            if (islit) {                                                \
1428
                TCGv tmp2 = tcg_const_i64(lit);                         \
1429
                gen_helper_ ## name(cpu_ir[rc], cpu_env, tmp1, tmp2);   \
1430
                tcg_temp_free(tmp2);                                    \
1431
            } else {                                                    \
1432
                gen_helper_ ## name(cpu_ir[rc], cpu_env, tmp1, cpu_ir[rb]); \
1433
            }                                                           \
1434
            tcg_temp_free(tmp1);                                        \
1435
        }                                                               \
1436
    }
1437
ARITH3_EX(addlv)
1438
ARITH3_EX(sublv)
1439
ARITH3_EX(addqv)
1440
ARITH3_EX(subqv)
1441
ARITH3_EX(mullv)
1442
ARITH3_EX(mulqv)
1443

  
1413 1444
#define MVIOP2(name)                                    \
1414 1445
static inline void glue(gen_, name)(int rb, int rc)     \
1415 1446
{                                                       \

Also available in: Unified diff