Revision e46b9681 tcg/ppc64/tcg-target.c
b/tcg/ppc64/tcg-target.c | ||
---|---|---|
969 | 969 |
static void tcg_out_op (TCGContext *s, int opc, const TCGArg *args, |
970 | 970 |
const int *const_args) |
971 | 971 |
{ |
972 |
int c; |
|
973 |
|
|
972 | 974 |
switch (opc) { |
973 | 975 |
case INDEX_op_exit_tb: |
974 | 976 |
tcg_out_movi (s, TCG_TYPE_I64, TCG_REG_R3, args[0]); |
... | ... | |
1313 | 1315 |
tcg_out_qemu_st (s, args, 3); |
1314 | 1316 |
break; |
1315 | 1317 |
|
1318 |
case INDEX_op_ext8s_i32: |
|
1319 |
case INDEX_op_ext8s_i64: |
|
1320 |
c = EXTSB; |
|
1321 |
goto gen_ext; |
|
1322 |
case INDEX_op_ext16s_i32: |
|
1323 |
case INDEX_op_ext16s_i64: |
|
1324 |
c = EXTSH; |
|
1325 |
goto gen_ext; |
|
1326 |
case INDEX_op_ext32s_i64: |
|
1327 |
c = EXTSW; |
|
1328 |
goto gen_ext; |
|
1329 |
gen_ext: |
|
1330 |
tcg_out32 (s, c | RS (args[1]) | RA (args[0])); |
|
1331 |
break; |
|
1332 |
|
|
1316 | 1333 |
default: |
1317 | 1334 |
tcg_dump_ops (s, stderr); |
1318 | 1335 |
tcg_abort (); |
... | ... | |
1404 | 1421 |
{ INDEX_op_qemu_st32, { "K", "K" } }, |
1405 | 1422 |
{ INDEX_op_qemu_st64, { "M", "M", "M" } }, |
1406 | 1423 |
|
1424 |
{ INDEX_op_ext8s_i32, { "r", "r" } }, |
|
1425 |
{ INDEX_op_ext16s_i32, { "r", "r" } }, |
|
1426 |
{ INDEX_op_ext8s_i64, { "r", "r" } }, |
|
1427 |
{ INDEX_op_ext16s_i64, { "r", "r" } }, |
|
1428 |
{ INDEX_op_ext32s_i64, { "r", "r" } }, |
|
1429 |
|
|
1407 | 1430 |
{ -1 }, |
1408 | 1431 |
}; |
1409 | 1432 |
|
Also available in: Unified diff