History | View | Annotate | Download (40.8 kB)
target-s390: Perform COMPARE AND SWAP inline
Still no proper solution for CONFIG_USER_ONLY, but the systemversion is significantly better.
Signed-off-by: Richard Henderson <rth@twiddle.net>
target-s390: Implement POPCNT
target-s390: Implement CPSDR
target-s390: Implement LCDFR
target-s390: Implement SET ROUNDING MODE
target-s390: Implement LOAD/SET FP AND SIGNAL
target-s390: Optimize XC
Notice XC with same address and convert that to store of zero.
target-s390: Implement BRANCH ON INDEX
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: 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
While we're at it, list all of the chapter 14 subchannel insns.Which is easy since all merely need indicate non-operation.
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: Convert IPM
Note that the previous placement of the PM field was incorrect.
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 FP SUBTRACT
target-s390: Convert FP DIVIDE
target-s390: Convert FP MULTIPLY
target-s390: Convert MULTIPLY AND ADD, SUBTRACT
Use the new float*_muladd interface to softfloat.
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
Note that we were failing to set the rounding mode in fpu_status.
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 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
The code that was in gen_op_mvc was a bit confused wrt what lengthsit wanted to handle. I also disbelieve that the inline memset isworthwhile.
target-s390: Convert NC, XC, OC, TR, UNPK
target-s390: Convert CLC
target-s390: Convert MVCP, MVCS
target-s390: Convert LRA
Note that truncating the store to r1 based on PSW_MASK_64is incorrect. We always modify the entire register.
target-s390: Convert SIGP
target-s390: Convert FP LOAD
target-s390: Convert INSERT CHARACTER
target-s390: Convert INSERT CHARACTERS UNDER MASK
Change the CC handling to be more like TEST UNDER MASK, with val & mask.This lets us handle ICMH much more like ICM.
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
Note that we were missing the 32-bit SLA.
target-s390: Convert SHIFT DOUBLE
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 BRANCH ON CONDITION
target-s390: Convert BRANCH ON COUNT
target-s390: Convert DIVIDE