tcg-target.c.inc (e64cf4d569f6461d6b9072e00d6e78d0ab8bd4a7) tcg-target.c.inc (d2f3066eb2af5d6867974493833834e2aaa427f7)
1/*
2 * Tiny Code Generator for QEMU
3 *
4 * Copyright (c) 2018 SiFive, Inc
5 * Copyright (c) 2008-2009 Arnaud Patard <arnaud.patard@rtp-net.org>
6 * Copyright (c) 2009 Aurelien Jarno <aurelien@aurel32.net>
7 * Copyright (c) 2008 Fabrice Bellard
8 *

--- 1448 unchanged lines hidden (view full) ---

1457 tcg_out_opc_reg(s, OPC_REMUW, a0, a1, a2);
1458 break;
1459 case INDEX_op_remu_i64:
1460 tcg_out_opc_reg(s, OPC_REMU, a0, a1, a2);
1461 break;
1462
1463 case INDEX_op_shl_i32:
1464 if (c2) {
1/*
2 * Tiny Code Generator for QEMU
3 *
4 * Copyright (c) 2018 SiFive, Inc
5 * Copyright (c) 2008-2009 Arnaud Patard <arnaud.patard@rtp-net.org>
6 * Copyright (c) 2009 Aurelien Jarno <aurelien@aurel32.net>
7 * Copyright (c) 2008 Fabrice Bellard
8 *

--- 1448 unchanged lines hidden (view full) ---

1457 tcg_out_opc_reg(s, OPC_REMUW, a0, a1, a2);
1458 break;
1459 case INDEX_op_remu_i64:
1460 tcg_out_opc_reg(s, OPC_REMU, a0, a1, a2);
1461 break;
1462
1463 case INDEX_op_shl_i32:
1464 if (c2) {
1465 tcg_out_opc_imm(s, OPC_SLLIW, a0, a1, a2);
1465 tcg_out_opc_imm(s, OPC_SLLIW, a0, a1, a2 & 0x1f);
1466 } else {
1467 tcg_out_opc_reg(s, OPC_SLLW, a0, a1, a2);
1468 }
1469 break;
1470 case INDEX_op_shl_i64:
1471 if (c2) {
1466 } else {
1467 tcg_out_opc_reg(s, OPC_SLLW, a0, a1, a2);
1468 }
1469 break;
1470 case INDEX_op_shl_i64:
1471 if (c2) {
1472 tcg_out_opc_imm(s, OPC_SLLI, a0, a1, a2);
1472 tcg_out_opc_imm(s, OPC_SLLI, a0, a1, a2 & 0x3f);
1473 } else {
1474 tcg_out_opc_reg(s, OPC_SLL, a0, a1, a2);
1475 }
1476 break;
1477
1478 case INDEX_op_shr_i32:
1479 if (c2) {
1473 } else {
1474 tcg_out_opc_reg(s, OPC_SLL, a0, a1, a2);
1475 }
1476 break;
1477
1478 case INDEX_op_shr_i32:
1479 if (c2) {
1480 tcg_out_opc_imm(s, OPC_SRLIW, a0, a1, a2);
1480 tcg_out_opc_imm(s, OPC_SRLIW, a0, a1, a2 & 0x1f);
1481 } else {
1482 tcg_out_opc_reg(s, OPC_SRLW, a0, a1, a2);
1483 }
1484 break;
1485 case INDEX_op_shr_i64:
1486 if (c2) {
1481 } else {
1482 tcg_out_opc_reg(s, OPC_SRLW, a0, a1, a2);
1483 }
1484 break;
1485 case INDEX_op_shr_i64:
1486 if (c2) {
1487 tcg_out_opc_imm(s, OPC_SRLI, a0, a1, a2);
1487 tcg_out_opc_imm(s, OPC_SRLI, a0, a1, a2 & 0x3f);
1488 } else {
1489 tcg_out_opc_reg(s, OPC_SRL, a0, a1, a2);
1490 }
1491 break;
1492
1493 case INDEX_op_sar_i32:
1494 if (c2) {
1488 } else {
1489 tcg_out_opc_reg(s, OPC_SRL, a0, a1, a2);
1490 }
1491 break;
1492
1493 case INDEX_op_sar_i32:
1494 if (c2) {
1495 tcg_out_opc_imm(s, OPC_SRAIW, a0, a1, a2);
1495 tcg_out_opc_imm(s, OPC_SRAIW, a0, a1, a2 & 0x1f);
1496 } else {
1497 tcg_out_opc_reg(s, OPC_SRAW, a0, a1, a2);
1498 }
1499 break;
1500 case INDEX_op_sar_i64:
1501 if (c2) {
1496 } else {
1497 tcg_out_opc_reg(s, OPC_SRAW, a0, a1, a2);
1498 }
1499 break;
1500 case INDEX_op_sar_i64:
1501 if (c2) {
1502 tcg_out_opc_imm(s, OPC_SRAI, a0, a1, a2);
1502 tcg_out_opc_imm(s, OPC_SRAI, a0, a1, a2 & 0x3f);
1503 } else {
1504 tcg_out_opc_reg(s, OPC_SRA, a0, a1, a2);
1505 }
1506 break;
1507
1508 case INDEX_op_add2_i32:
1509 tcg_out_addsub2(s, a0, a1, a2, args[3], args[4], args[5],
1510 const_args[4], const_args[5], false, true);

--- 403 unchanged lines hidden ---
1503 } else {
1504 tcg_out_opc_reg(s, OPC_SRA, a0, a1, a2);
1505 }
1506 break;
1507
1508 case INDEX_op_add2_i32:
1509 tcg_out_addsub2(s, a0, a1, a2, args[3], args[4], args[5],
1510 const_args[4], const_args[5], false, true);

--- 403 unchanged lines hidden ---