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