History | View | Annotate | Download (34.4 kB)
target-s390: Convert SPX, STPX
Signed-off-by: Richard Henderson <rth@twiddle.net>
target-s390: Convert STAP
target-s390: Convert IPTE
target-s390: Convert ISKE
target-s390: Convert SSKE
target-s390: Convert RRBE
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 ADD LOGICAL CARRY and SUBTRACT LOGICAL BORROW
I'm resonably certain that the carry/borrow-out condition for bothhelpers was incorrect, failing to take into account the carry-in.Adding the new CC_OP codes also allows removing the awkward interface...
target-s390: Convert BRANCH AND SAVE
target-s390: Convert BRANCH ON CONDITION
target-s390: Convert BRANCH ON COUNT
target-s390: Convert DIVIDE
target-s390: Convert ADD HALFWORD
target-s390: Implement SUBTRACT HALFWORD
target-s390: Implement ADD LOGICAL WITH SIGNED IMMEDIATE
target-s390: Convert MULTIPLY HALFWORD, SINGLE
target-s390: Convert 32-bit MULTIPLY, MULTIPLY LOGICAL
target-s390: Convert 64-bit MULTIPLY LOGICAL
Use a new "retxl" member of CPUS290XState to return the "eXtra Low" partof a 128-bit value. That said, this will get used when two independentvalues need returning (e.g. quotient+remainder) as well.
At the same time, shuffle the elements of CPUS390XState to get this new...
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: Add format based disassassmbly infrastructure