summaryrefslogtreecommitdiffstats
path: root/target-s390x/insn-data.def
Commit message (Collapse)AuthorAgeFilesLines
* target-s390x: wire up I/O instructions in TCG modeAlexander Graf2015-06-171-11/+11
| | | | | | | | | The code handling the I/O instructions for KVM decodes the instruction itself. In TCG mode also pass the full instruction word to the helpers. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Alexander Graf <agraf@suse.de>
* target-s390x: wire up DIAG IPL in TCG modeAurelien Jarno2015-06-171-1/+1
| | | | | | | | | | | | | | DIAG IPL is already implemented for KVM, but not wired from TCG. For that change the format of the instruction so that we can get R1 and R3 numbers in addition to the function code. The diag function can change plenty of things, including CC, so we should enter with a static CC. Also it doesn't set the value of general register 2 to 0 as in the current code. We also need to exit the CPU loop after a reset, which means a new PSW. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Alexander Graf <agraf@suse.de>
* target-s390x: implement high-word facilityAurelien Jarno2015-06-051-0/+47
| | | | | | | | | Besides RISBHG and RISBLG, all high-word instructions are not implemented. Fix that. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Alexander Graf <agraf@suse.de>
* target-s390x: implement load-and-trap facilityAurelien Jarno2015-06-051-0/+10
| | | | | | | | | | | At the same time move the trap code from op_ct into gen_trap and use it for all new functions. The value needs to be stored back to register before the exception, but also before the brcond (as we don't use temp locals). That's why we can't use wout helper. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Alexander Graf <agraf@suse.de>
* target-s390x: implement miscellaneous-instruction-extensions facilityAurelien Jarno2015-06-051-0/+3
| | | | | | | | | | RISBGN is the same as RISBG, but without setting the condition code. CLT and CLGT are the same as CLRT and CLGRT, but using memory for the second operand. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Alexander Graf <agraf@suse.de>
* target-s390x: implement LPDFR and LNDFR instructionsAurelien Jarno2015-06-051-0/+2
| | | | | | | | This complete the floating point support sign handling facility. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Alexander Graf <agraf@suse.de>
* target-s390x: implement TRANSLATE EXTENDED instructionAurelien Jarno2015-06-051-0/+2
| | | | | | | | It is part of the basic zArchitecture instructions. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Alexander Graf <agraf@suse.de>
* target-s390x: implement TRANSLATE AND TEST instructionAurelien Jarno2015-06-051-0/+2
| | | | | | | | | It is part of the basic zArchitecture instructions. Allow it to be call from EXECUTE. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Alexander Graf <agraf@suse.de>
* target-s390x: implement LOAD FP INTEGER instructionsAurelien Jarno2015-06-051-0/+4
| | | | | | | | | This is needed to pass the gcc.c-torture/execute/ieee/20010114-2.c test in the gcc testsuite. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Alexander Graf <agraf@suse.de>
* target-s390x: move SET DFP ROUNDING MODE to the correct facilityAurelien Jarno2015-06-051-1/+1
| | | | | | | | It belongs to the DFP rounding facility. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Alexander Graf <agraf@suse.de>
* target-s390x: move STORE CLOCK FAST to the correct facilityAurelien Jarno2015-06-051-1/+1
| | | | | | | | STORE CLOCK FAST should be in the SCF facility. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Alexander Graf <agraf@suse.de>
* target-s390x: change CHRL and CGHRL format to RIL-bAurelien Jarno2015-06-051-2/+2
| | | | | | | | | | Change to match the PoP. In practice both format RIL-a and RIL-b have the same fields. They differ on the way we decode the fields, and it's done correctly in QEMU. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Alexander Graf <agraf@suse.de>
* target-s390x: fix CLGIT instructionAurelien Jarno2015-06-051-1/+1
| | | | | | | | | The COMPARE LOGICAL IMMEDIATE AND TRAP instruction should compare the numbers as unsigned, as its name implies. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Alexander Graf <agraf@suse.de>
* target-s390x: implement LAY and LAEY instructionsAurelien Jarno2015-06-051-0/+3
| | | | | | | | This complete the general-instructions-extension facility, enable it. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> [agraf: remove facility bit] Signed-off-by: Alexander Graf <agraf@suse.de>
* target-s390x: move a few instructions to the correct facilityAurelien Jarno2015-06-051-4/+4
| | | | | | | | | LY is part of the long-displacement facility. RISBHG and RISBLG are part of the high-word facility. STCMH is part of the z/Architecture. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Alexander Graf <agraf@suse.de>
* s390x: Add interlocked access facility 1 instructionsAlexander Graf2015-05-131-0/+16
| | | | | | | | | We're currently missing all instructions defined by the "interlocked-access facility 1" which is part of zEC12. This patch implements all of them except for LPD and LPDG. Signed-off-by: Alexander Graf <agraf@suse.de> Reviewed-by: Richard Henderson <rth@twiddle.net>
* s390x: Add some documentation in opcode listAlexander Graf2015-05-131-0/+21
| | | | | | | | | | I find it really hard to grasp what each field in the opcode list means. Slowly walking through its semantics myself, I figured I'd write a small summary at the top of the file to make life easier for me and whoever looks at the file next. Signed-off-by: Alexander Graf <agraf@suse.de> Reviewed-by: Richard Henderson <rth@twiddle.net>
* target-s390: Implement ECAGRichard Henderson2015-02-031-0/+2
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Implement LURA, LURAG, STURGRichard Henderson2015-02-031-0/+4
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Implement EPSWRichard Henderson2015-02-031-0/+2
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Implement SAM specification exceptionRichard Henderson2015-02-031-4/+4
| | | | | | | Also, these are user-mode instructions; allow their use in CONFIG_USER_ONLY. Signed-off-by: Richard Henderson <rth@twiddle.net>
* s390x: Implement SAM{24,31,64}Alexander Graf2014-11-051-3/+3
| | | | | | | | | | | | | | | | The SAM instructions simply change 2 bits in PSW.MASK to advertise the current memory mode. While we can't fully guarantee that 31 bit mode (or even remotely 24 bit mode) actually work correctly, we don't check whether lpswe modifies these bits, so we shouldn't keep the guest from executing SAM instructions either. This patch implements all SAM instrutions with their actual PSW changing semantics, making more recent Linux kernels boot properly which do issue a SAM31 call during early boot. Signed-off-by: Alexander Graf <agraf@suse.de> Reviewed-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de> Reviewed-by: Richard Henderson <rth@twiddle.net>
* target-s390: Perform COMPARE AND SWAP inlineRichard Henderson2013-01-051-6/+6
| | | | | | | Still no proper solution for CONFIG_USER_ONLY, but the system version is significantly better. Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Optimize XCRichard Henderson2013-01-051-1/+1
| | | | | | Notice XC with same address and convert that to store of zero. Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Implement LOAD/SET FP AND SIGNALRichard Henderson2013-01-051-0/+4
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Implement SET ROUNDING MODERichard Henderson2013-01-051-0/+5
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Implement LCDFRRichard Henderson2013-01-051-0/+1
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Implement CPSDRRichard Henderson2013-01-051-0/+3
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Implement POPCNTRichard Henderson2013-01-051-0/+3
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Implement CONVERT FROM LOGICALRichard Henderson2013-01-051-0/+7
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Implement CONVERT TO LOGICALRichard Henderson2013-01-051-0/+7
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Implement STORE ON CONDITIONRichard Henderson2013-01-051-0/+3
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Implement LOAD ON CONDITIONRichard Henderson2013-01-051-0/+5
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Implement COMPARE AND TRAPRichard Henderson2013-01-051-0/+11
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Implement COMPARE RELATIVE LONGRichard Henderson2013-01-051-0/+4
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Implement PREFETCHRichard Henderson2013-01-051-0/+5
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Implement R[NOX]SBGRichard Henderson2013-01-051-0/+4
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Implement LDGR, LGDRRichard Henderson2013-01-051-0/+4
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Implement RISBGRichard Henderson2013-01-051-0/+5
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Implement COMPARE AND BRANCHRichard Henderson2013-01-051-0/+19
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Implement BRANCH ON INDEXRichard Henderson2013-01-051-0/+10
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Convert SERVCRichard Henderson2013-01-051-0/+2
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Convert LPSWERichard Henderson2013-01-051-0/+2
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Convert STFLRichard Henderson2013-01-051-0/+2
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Convert STSIRichard Henderson2013-01-051-0/+2
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Convert SACFRichard Henderson2013-01-051-0/+2
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Convert STCKERichard Henderson2013-01-051-0/+2
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Convert CSPRichard Henderson2013-01-051-0/+2
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Convert STURARichard Henderson2013-01-051-0/+2
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-s390: Convert subchannel instructionsRichard Henderson2013-01-051-0/+14
| | | | | | | 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>
OpenPOWER on IntegriCloud