tcg/ppc32: implement deposit_i32

Signed-off-by: malc <av1474@comtv.ru>
This commit is contained in:
malc 2011-08-22 14:39:00 +04:00
parent 64ba39af27
commit 350dba6ce6
2 changed files with 13 additions and 1 deletions

View File

@ -1790,6 +1790,16 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, const TCGArg *args,
}
break;
case INDEX_op_deposit_i32:
tcg_out32 (s, RLWIMI
| RA (args[0])
| RS (args[2])
| SH (args[3])
| MB (32 - args[3] - args[4])
| ME (31 - args[3])
);
break;
default:
tcg_dump_ops (s, stderr);
tcg_abort ();
@ -1885,6 +1895,8 @@ static const TCGTargetOpDef ppc_op_defs[] = {
{ INDEX_op_ext16s_i32, { "r", "r" } },
{ INDEX_op_ext16u_i32, { "r", "r" } },
{ INDEX_op_deposit_i32, { "r", "0", "r" } },
{ -1 },
};

View File

@ -92,7 +92,7 @@ enum {
#define TCG_TARGET_HAS_eqv_i32 1
#define TCG_TARGET_HAS_nand_i32 1
#define TCG_TARGET_HAS_nor_i32 1
#define TCG_TARGET_HAS_deposit_i32 0
#define TCG_TARGET_HAS_deposit_i32 1
#define TCG_AREG0 TCG_REG_R27