summaryrefslogtreecommitdiff
path: root/target-s390x/translate.c
AgeCommit message (Collapse)AuthorFilesLines
2013-01-05target-s390: Perform COMPARE AND SWAP inlineRichard Henderson1-34/+118
Still no proper solution for CONFIG_USER_ONLY, but the system version is significantly better. Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Optimize get_addressRichard Henderson1-26/+18
Don't load the displacement into a register first, add it second so that tcg_gen_addi_i64 can eliminate zeros. Don't mask the displacement first so that we don't turn small negative numbers into large positive numbers. Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Optimize ADDC/SUBBRichard Henderson1-19/+37
Giving the proper mask to disas_jcc allows us to generate an inline comparison generating the carry/borrow with setcond. In the very worst case, when we must use the external helper to compute a value for CC, we generate (cc > 1) instead of (cc >> 1), which is only very slightly slower on common cpus. In the very best case, when the CC comes from a COMPARE insn and the compiler is using ALCG with zero, everything folds out to become just the setcond that the compiler wanted. Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Optimize ADDU/SUBU CC testingRichard Henderson1-0/+68
We can easily generate some masks for logical add/subtract inline. Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Tidy comparisonsRichard Henderson1-22/+17
After full conversion, we can audit the uses of LTGT cc ops and see that none of the instructions can ever set CC=3. Thus we can extend the table to treat that bit as ignored. This fixes a regression wrt the pre-conversion translation in which NE was used for both m=6 and m=7. Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Optmize emitting discardsRichard Henderson1-6/+24
While they aren't expensive, they aren't free to process. When we know that the three cc helper variables are dead, don't kill them. Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Optimize XCRichard Henderson1-3/+47
Notice XC with same address and convert that to store of zero. Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Implement LOAD/SET FP AND SIGNALRichard Henderson1-0/+6
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Implement SET ROUNDING MODERichard Henderson1-0/+39
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Check insn operand specificationsRichard Henderson1-36/+159
Removes all the fixmes for even register numbers, etc. Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Implement CPSDRRichard Henderson1-0/+16
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Implement POPCNTRichard Henderson1-0/+6
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Implement CONVERT FROM LOGICALRichard Henderson1-0/+25
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Implement CONVERT TO LOGICALRichard Henderson1-0/+54
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Implement STORE ON CONDITIONRichard Henderson1-0/+29
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Implement LOAD ON CONDITIONRichard Henderson1-0/+30
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Implement COMPARE AND TRAPRichard Henderson1-0/+29
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Implement R[NOX]SBGRichard Henderson1-0/+53
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Implement RISBGRichard Henderson1-0/+83
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Implement COMPARE AND BRANCHRichard Henderson1-0/+28
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Tidy s->op_cc handlingRichard Henderson1-40/+55
There's no need to force computation of the true cc_op when taking an exception or single stepping. In either case we'll enter the next TB with s->cc_op = DYNAMIC and recompute anyway. Just make sure that s->cc_op is stored back to env->cc_op as needed. Delete some dead functions, avoid allocating unused TCG temps, drop the old s->is_jmp setting. Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Implement BRANCH ON INDEXRichard Henderson1-0/+52
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Delete dead code from old translatorRichard Henderson1-291/+27
The use of inline restricts detection of static functions that are no longer used. Limit the use of inline to those functions that are conditionally used based on CONFIG_USER_ONLY. Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert SERVCRichard Henderson1-20/+9
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert LPSWERichard Henderson1-19/+18
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert STFLRichard Henderson1-9/+14
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert STSIRichard Henderson1-14/+10
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert SACFRichard Henderson1-13/+8
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert STCKERichard Henderson1-9/+22
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert CSPRichard Henderson1-12/+12
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert STURARichard Henderson1-12/+8
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert subchannel instructionsRichard Henderson1-10/+8
While we're at it, list all of the chapter 14 subchannel insns. Which is easy since all merely need indicate non-operation. Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert RRBERichard Henderson1-12/+10
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert SSKERichard Henderson1-11/+7
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert ISKERichard Henderson1-12/+7
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert IPTERichard Henderson1-11/+9
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert STAPRichard Henderson1-14/+10
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert SPX, STPXRichard Henderson1-20/+15
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert PTLBRichard Henderson1-5/+9
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert SPKARichard Henderson1-12/+8
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert SPT, STPTRichard Henderson1-18/+14
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert SCKC, STCKCRichard Henderson1-18/+14
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert STCKRichard Henderson1-9/+8
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert SCKRichard Henderson1-10/+0
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert STIDPRichard Henderson1-9/+7
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert SRSTRichard Henderson1-17/+14
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert CLST, MVSTRichard Henderson1-23/+19
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert MVPGRichard Henderson1-12/+8
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert EAR, SARRichard Henderson1-11/+14
Signed-off-by: Richard Henderson <rth@twiddle.net>
2013-01-05target-s390: Convert CKSMRichard Henderson1-9/+22
Signed-off-by: Richard Henderson <rth@twiddle.net>