As promised the other week. I've cleaned up the patch set and re-based it on Blueswirl's areg0 patch set. For reference, the entire patch set is available at
git://repo.or.cz/qemu/rth.git rth/s390-reorg-3 Testing has mostly been on the gcc testsuite, where the execute test failures are reduced to FAIL: gcc.dg/attr-ifunc-1.c execution test FAIL: gcc.dg/attr-ifunc-3.c execution test FAIL: gcc.dg/attr-ifunc-4.c execution test FAIL: gcc.dg/attr-ifunc-5.c execution test FAIL: gcc.dg/cdce1.c execution test FAIL: gcc.dg/cleanup-11.c execution test FAIL: gcc.dg/cleanup-9.c execution test FAIL: gcc.dg/torture/pr41094.c -O0 execution test FAIL: gcc.dg/torture/tls/tls-test.c * execution test I'll probably start trying out the glibc testsuite next, as that's quite likely to flush out remaining problems with the fp support (both cdce1 and pr41094 are both failures in pow). I've also done some testing with -march={z10,z196}, but I don't have those results handy atm. r~ Richard Henderson (126): tcg: Add TCGV_IS_UNUSED_* tcg: Add TCG_COND_NEVER, TCG_COND_ALWAYS target-s390: Disassemble more z10 and z196 opcodes target-s390: Fix disassembly of cpsdr target-s390: Fix gdbstub target-s390: Add missing temp_free in gen_op_calc_cc target-s390: Use TCG registers for FPR target-s390: Add format based disassassmbly infrastructure target-s390: Split out disas_jcc target-s390: Reorg exception handling target-s390: Convert ADD HALFWORD target-s390: Implement SUBTRACT HALFWORD target-s390: Implement ADD LOGICAL WITH SIGNED IMMEDIATE target-s390: Convert MULTIPLY target-s390: Convert AND, OR, XOR target-s390: Convert COMPARE, COMPARE LOGICAL target-s390: Convert LOAD, LOAD LOGICAL target-s390: Convert LOAD ADDRESS target-s390: Convert LOAD (LOGICAL) BYTE, CHARACTER, HALFWORD target-s390: Convert LOAD AND TEST target-s390: Convert LOAD LOGICAL IMMEDIATE target-s390: Convert LOAD COMPLIMENT, POSITIVE, NEGATIVE target-s390: Convert AND, OR, XOR, INSERT IMMEDIATE target-s390: Convert STORE target-s390: Convert ADD LOGICAL CARRY and SUBTRACT LOGICAL BORROW target-s390: Convert BRANCH AND SAVE target-s390: Convert BRANCH ON CONDITION target-s390: Convert BRANCH ON COUNT target-s390: Convert DIVIDE target-s390: Send signals for divide target-s390: Convert TEST UNDER MASK target-s390: Convert SET ADDRESSING MODE target-s390: Convert SUPERVISOR CALL target-s390: Convert MOVE LONG target-s390: Convert FP LOAD target-s390: Convert INSERT CHARACTER target-s390: Cleanup cc computation helpers target-s390: Convert INSERT CHARACTERS UNDER MASK target-s390: Convert EXECUTE target-s390: Convert FP STORE target-s390: Convert CONVERT TO DECIMAL target-s390: Convert SET SYSTEM MASK target-s390: Convert LOAD PSW target-s390: Convert DIAGNOSE target-s390: Convert SHIFT, ROTATE SINGLE target-s390: Convert SHIFT DOUBLE target-s390: Convert LOAD, STORE MULTIPLE target-s390: Convert MOVE target-s390: Convert NI, XI, OI target-s390: Convert STNSM, STOSM target-s390: Convert LAM, STAM target-s390: Convert CLCLE, MVCLE target-s390: Convert MVC target-s390: Convert NC, XC, OC, TR, UNPK target-s390: Convert CLC target-s390: Convert MVCP, MVCS target-s390: Convert LRA target-s390: Convert SIGP target-s390: Convert EFPC, STFPC target-s390: Convert LCTL, STCTL target-s390: Convert COMPARE AND SWAP target-s390: Convert CLM target-s390: Convert STCM target-s390: Convert TPROT target-s390: Convert LOAD CONTROL, part 2 target-s390: Convert LOAD REVERSED target-s390: Convert STORE REVERSED target-s390: Convert LLGT target-s390: Convert FP ADD, COMPARE, LOAD TEST/ROUND/LENGTHENED target-s390: Convert FP SUBTRACT target-s390: Convert FP DIVIDE target-s390: Convert FP MULTIPLY target-s390: Convert MULTIPLY AND ADD, SUBTRACT target-s390: Convert TEST DATA CLASS target-s390: Convert FP LOAD COMPLIMENT, NEGATIVE, POSITIVE target-s390: Convert FP SQUARE ROOT target-s390: Convert LOAD ZERO target-s390: Convert CONVERT TO FIXED target-s390: Convert CONVERT FROM FIXED target-s390: Convert FLOGR target-s390: Convert LFPC, SFPC target-s390: Convert IPM target-s390: Convert CKSM target-s390: Convert EAR, SAR target-s390: Convert MVPG target-s390: Convert CLST, MVST target-s390: Convert SRST target-s390: Convert STIDP target-s390: Convert SCK target-s390: Convert STCK target-s390: Convert SCKC, STCKC target-s390: Convert SPT, STPT target-s390: Convert SPKA target-s390: Convert PTLB target-s390: Convert SPX, STPX target-s390: Convert STAP target-s390: Convert IPTE target-s390: Convert ISKE target-s390: Convert SSKE target-s390: Convert RRBE target-s390: Convert subchannel instructions target-s390: Convert STURA target-s390: Convert CSP target-s390: Convert STCKE target-s390: Convert SACF target-s390: Convert STSI target-s390: Convert STFL target-s390: Convert LPSWE target-s390: Convert SERVC target-s390: Delete dead code from old translator target-s390: Implement BRANCH ON INDEX target-s390: Tidy s->op_cc handling target-s390: Implement COMPARE AND BRANCH target-s390: Implement RISBG target-s390: Implement LDGR, LGDR target-s390: Implement R[NOX]SBG target-s390: Implement PREFETCH target-s390: Implement COMPARE RELATIVE LONG target-s390: Implement COMPARE AND TRAP target-s390: Implement LOAD ON CONDITION target-s390: Implement STORE ON CONDITION target-s390: Implement CONVERT TO LOGICAL target-s390: Implement CONVERT FROM LOGICAL target-s390: Implement POPCNT target-s390: Implement CPSDR target-s390: Check insn operand specifications gdbstub.c | 78 +- linux-user/main.c | 133 +- s390-dis.c | 173 +- target-s390x/cc_helper.c | 335 +- target-s390x/cpu.h | 127 +- target-s390x/fpu_helper.c | 941 ++--- target-s390x/helper.h | 168 +- target-s390x/insn-data.def | 800 ++++ target-s390x/insn-format.def | 55 + target-s390x/int_helper.c | 176 +- target-s390x/mem_helper.c | 326 +- target-s390x/misc_helper.c | 98 +- target-s390x/translate.c | 8314 +++++++++++++++++++----------------------- tcg/arm/tcg-target.c | 2 +- tcg/hppa/tcg-target.c | 2 +- tcg/i386/tcg-target.c | 2 +- tcg/ppc/tcg-target.c | 2 +- tcg/ppc64/tcg-target.c | 2 +- tcg/s390/tcg-target.c | 6 +- tcg/sparc/tcg-target.c | 2 +- tcg/tcg-op.h | 82 +- tcg/tcg.c | 2 + tcg/tcg.h | 43 +- 23 files changed, 5992 insertions(+), 5877 deletions(-) create mode 100644 target-s390x/insn-data.def create mode 100644 target-s390x/insn-format.def -- 1.7.11.4