Richard Henderson [Fri, 7 Sep 2012 23:16:57 +0000 (16:16 -0700)]
target-s390: Check insn operand specifications
Removes all the fixmes for even register numbers, etc.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Sat, 1 Sep 2012 21:13:52 +0000 (14:13 -0700)]
target-s390: Implement CPSDR
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Sat, 1 Sep 2012 18:14:04 +0000 (11:14 -0700)]
target-s390: Implement POPCNT
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Sat, 1 Sep 2012 18:08:17 +0000 (11:08 -0700)]
target-s390: Implement CONVERT FROM LOGICAL
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Sat, 1 Sep 2012 17:42:54 +0000 (10:42 -0700)]
target-s390: Implement CONVERT TO LOGICAL
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Sat, 1 Sep 2012 16:45:20 +0000 (09:45 -0700)]
target-s390: Implement STORE ON CONDITION
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 5 Sep 2012 17:55:00 +0000 (10:55 -0700)]
target-s390: Implement LOAD ON CONDITION
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Thu, 6 Sep 2012 00:32:54 +0000 (17:32 -0700)]
target-s390: Implement COMPARE AND TRAP
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 5 Sep 2012 17:54:00 +0000 (10:54 -0700)]
target-s390: Implement COMPARE RELATIVE LONG
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Fri, 31 Aug 2012 21:10:05 +0000 (14:10 -0700)]
target-s390: Implement PREFETCH
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Fri, 31 Aug 2012 20:54:13 +0000 (13:54 -0700)]
target-s390: Implement R[NOX]SBG
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 5 Sep 2012 17:52:08 +0000 (10:52 -0700)]
target-s390: Implement LDGR, LGDR
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Fri, 31 Aug 2012 19:50:06 +0000 (12:50 -0700)]
target-s390: Implement RISBG
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Fri, 31 Aug 2012 17:53:49 +0000 (10:53 -0700)]
target-s390: Implement COMPARE AND BRANCH
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Thu, 6 Sep 2012 00:28:17 +0000 (17:28 -0700)]
target-s390: Tidy s->op_cc handling
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>
Richard Henderson [Wed, 29 Aug 2012 19:57:55 +0000 (12:57 -0700)]
target-s390: Implement BRANCH ON INDEX
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Mon, 27 Aug 2012 18:33:58 +0000 (11:33 -0700)]
target-s390: Delete dead code from old translator
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>
Richard Henderson [Mon, 27 Aug 2012 18:12:40 +0000 (11:12 -0700)]
target-s390: Convert SERVC
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Mon, 27 Aug 2012 18:04:48 +0000 (11:04 -0700)]
target-s390: Convert LPSWE
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Mon, 27 Aug 2012 17:58:59 +0000 (10:58 -0700)]
target-s390: Convert STFL
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Mon, 27 Aug 2012 17:43:38 +0000 (10:43 -0700)]
target-s390: Convert STSI
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Mon, 27 Aug 2012 17:17:16 +0000 (10:17 -0700)]
target-s390: Convert SACF
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Mon, 27 Aug 2012 17:11:36 +0000 (10:11 -0700)]
target-s390: Convert STCKE
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Mon, 27 Aug 2012 16:57:18 +0000 (09:57 -0700)]
target-s390: Convert CSP
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Mon, 27 Aug 2012 16:45:38 +0000 (09:45 -0700)]
target-s390: Convert STURA
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Mon, 27 Aug 2012 16:36:20 +0000 (09:36 -0700)]
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.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Mon, 27 Aug 2012 16:22:13 +0000 (09:22 -0700)]
target-s390: Convert RRBE
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Mon, 27 Aug 2012 16:18:01 +0000 (09:18 -0700)]
target-s390: Convert SSKE
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Mon, 27 Aug 2012 16:13:38 +0000 (09:13 -0700)]
target-s390: Convert ISKE
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Fri, 24 Aug 2012 23:25:28 +0000 (16:25 -0700)]
target-s390: Convert IPTE
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Fri, 24 Aug 2012 23:18:33 +0000 (16:18 -0700)]
target-s390: Convert STAP
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Fri, 24 Aug 2012 23:11:32 +0000 (16:11 -0700)]
target-s390: Convert SPX, STPX
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Fri, 24 Aug 2012 22:59:26 +0000 (15:59 -0700)]
target-s390: Convert PTLB
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Fri, 24 Aug 2012 22:55:34 +0000 (15:55 -0700)]
target-s390: Convert SPKA
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Fri, 24 Aug 2012 22:47:26 +0000 (15:47 -0700)]
target-s390: Convert SPT, STPT
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Fri, 24 Aug 2012 22:36:58 +0000 (15:36 -0700)]
target-s390: Convert SCKC, STCKC
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Fri, 24 Aug 2012 22:31:07 +0000 (15:31 -0700)]
target-s390: Convert STCK
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Fri, 24 Aug 2012 22:20:49 +0000 (15:20 -0700)]
target-s390: Convert SCK
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 5 Sep 2012 17:21:47 +0000 (10:21 -0700)]
target-s390: Convert STIDP
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Fri, 24 Aug 2012 21:27:42 +0000 (14:27 -0700)]
target-s390: Convert SRST
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 5 Sep 2012 17:20:53 +0000 (10:20 -0700)]
target-s390: Convert CLST, MVST
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 5 Sep 2012 17:19:44 +0000 (10:19 -0700)]
target-s390: Convert MVPG
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Fri, 24 Aug 2012 18:54:04 +0000 (11:54 -0700)]
target-s390: Convert EAR, SAR
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Fri, 24 Aug 2012 18:38:12 +0000 (11:38 -0700)]
target-s390: Convert CKSM
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 5 Sep 2012 17:18:21 +0000 (10:18 -0700)]
target-s390: Convert IPM
Note that the previous placement of the PM field was incorrect.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Fri, 24 Aug 2012 14:44:43 +0000 (07:44 -0700)]
target-s390: Convert LFPC, SFPC
Note that we were failing to set the rounding mode in fpu_status.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Fri, 24 Aug 2012 14:39:11 +0000 (07:39 -0700)]
target-s390: Convert FLOGR
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Fri, 24 Aug 2012 04:08:22 +0000 (21:08 -0700)]
target-s390: Convert CONVERT FROM FIXED
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Thu, 23 Aug 2012 22:17:35 +0000 (15:17 -0700)]
target-s390: Convert CONVERT TO FIXED
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 5 Sep 2012 17:14:24 +0000 (10:14 -0700)]
target-s390: Convert LOAD ZERO
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Thu, 23 Aug 2012 21:33:03 +0000 (14:33 -0700)]
target-s390: Convert FP SQUARE ROOT
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 5 Sep 2012 22:58:27 +0000 (15:58 -0700)]
target-s390: Convert FP LOAD COMPLIMENT, NEGATIVE, POSITIVE
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Thu, 23 Aug 2012 19:40:09 +0000 (12:40 -0700)]
target-s390: Convert TEST DATA CLASS
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Thu, 23 Aug 2012 19:30:12 +0000 (12:30 -0700)]
target-s390: Convert MULTIPLY AND ADD, SUBTRACT
Use the new float*_muladd interface to softfloat.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Thu, 23 Aug 2012 19:02:38 +0000 (12:02 -0700)]
target-s390: Convert FP MULTIPLY
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Fri, 7 Sep 2012 18:41:12 +0000 (11:41 -0700)]
target-s390: Convert FP DIVIDE
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Thu, 23 Aug 2012 18:05:03 +0000 (11:05 -0700)]
target-s390: Convert FP SUBTRACT
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Thu, 23 Aug 2012 17:48:20 +0000 (10:48 -0700)]
target-s390: Convert FP ADD, COMPARE, LOAD TEST/ROUND/LENGTHENED
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 22:59:19 +0000 (15:59 -0700)]
target-s390: Convert LLGT
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 22:52:55 +0000 (15:52 -0700)]
target-s390: Convert STORE REVERSED
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 22:35:40 +0000 (15:35 -0700)]
target-s390: Convert LOAD REVERSED
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Sun, 2 Sep 2012 17:12:48 +0000 (10:12 -0700)]
target-s390: Convert LOAD CONTROL, part 2
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 22:15:59 +0000 (15:15 -0700)]
target-s390: Convert TPROT
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 22:11:53 +0000 (15:11 -0700)]
target-s390: Convert STCM
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 21:59:22 +0000 (14:59 -0700)]
target-s390: Convert CLM
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 21:46:55 +0000 (14:46 -0700)]
target-s390: Convert COMPARE AND SWAP
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 21:17:58 +0000 (14:17 -0700)]
target-s390: Convert LCTL, STCTL
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 21:09:05 +0000 (14:09 -0700)]
target-s390: Convert EFPC, STFPC
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 20:52:23 +0000 (13:52 -0700)]
target-s390: Convert SIGP
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 20:15:10 +0000 (13:15 -0700)]
target-s390: Convert LRA
Note that truncating the store to r1 based on PSW_MASK_64
is incorrect. We always modify the entire register.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 20:00:27 +0000 (13:00 -0700)]
target-s390: Convert MVCP, MVCS
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 19:54:07 +0000 (12:54 -0700)]
target-s390: Convert CLC
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 18:54:19 +0000 (11:54 -0700)]
target-s390: Convert NC, XC, OC, TR, UNPK
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 18:43:06 +0000 (11:43 -0700)]
target-s390: Convert MVC
The code that was in gen_op_mvc was a bit confused wrt what lengths
it wanted to handle. I also disbelieve that the inline memset is
worthwhile.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 18:24:25 +0000 (11:24 -0700)]
target-s390: Convert CLCLE, MVCLE
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 5 Sep 2012 16:38:22 +0000 (09:38 -0700)]
target-s390: Convert LAM, STAM
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 18:08:40 +0000 (11:08 -0700)]
target-s390: Convert STNSM, STOSM
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 17:57:56 +0000 (10:57 -0700)]
target-s390: Convert NI, XI, OI
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 17:22:28 +0000 (10:22 -0700)]
target-s390: Convert MOVE
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 16:49:37 +0000 (09:49 -0700)]
target-s390: Convert LOAD, STORE MULTIPLE
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 16:22:23 +0000 (09:22 -0700)]
target-s390: Convert SHIFT DOUBLE
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 22 Aug 2012 16:15:19 +0000 (09:15 -0700)]
target-s390: Convert SHIFT, ROTATE SINGLE
Note that we were missing the 32-bit SLA.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Tue, 21 Aug 2012 21:41:36 +0000 (14:41 -0700)]
target-s390: Convert DIAGNOSE
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Tue, 21 Aug 2012 21:33:36 +0000 (14:33 -0700)]
target-s390: Convert LOAD PSW
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Tue, 21 Aug 2012 21:12:50 +0000 (14:12 -0700)]
target-s390: Convert SET SYSTEM MASK
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Tue, 21 Aug 2012 21:05:11 +0000 (14:05 -0700)]
target-s390: Convert CONVERT TO DECIMAL
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 5 Sep 2012 19:26:53 +0000 (12:26 -0700)]
target-s390: Convert FP STORE
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Tue, 21 Aug 2012 20:48:38 +0000 (13:48 -0700)]
target-s390: Convert EXECUTE
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Tue, 21 Aug 2012 20:13:09 +0000 (13:13 -0700)]
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.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Tue, 21 Aug 2012 19:36:10 +0000 (12:36 -0700)]
target-s390: Cleanup cc computation helpers
The inline markers hid the fact that {n}abs_32 were unused
because of typos in the main do_calc_cc function. Let the
compiler handle auto-inlining here.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Tue, 21 Aug 2012 14:12:29 +0000 (07:12 -0700)]
target-s390: Convert INSERT CHARACTER
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Wed, 5 Sep 2012 19:24:24 +0000 (12:24 -0700)]
target-s390: Convert FP LOAD
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Mon, 20 Aug 2012 23:46:49 +0000 (16:46 -0700)]
target-s390: Convert MOVE LONG
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Mon, 20 Aug 2012 23:41:05 +0000 (16:41 -0700)]
target-s390: Convert SUPERVISOR CALL
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Mon, 20 Aug 2012 23:28:56 +0000 (16:28 -0700)]
target-s390: Convert SET ADDRESSING MODE
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Mon, 20 Aug 2012 23:20:58 +0000 (16:20 -0700)]
target-s390: Convert TEST UNDER MASK
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Thu, 6 Sep 2012 00:27:40 +0000 (17:27 -0700)]
target-s390: Send signals for divide
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Mon, 20 Aug 2012 21:02:02 +0000 (14:02 -0700)]
target-s390: Convert DIVIDE
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Mon, 20 Aug 2012 21:22:58 +0000 (14:22 -0700)]
target-s390: Convert BRANCH ON COUNT
Signed-off-by: Richard Henderson <rth@twiddle.net>
Richard Henderson [Mon, 20 Aug 2012 15:28:02 +0000 (08:28 -0700)]
target-s390: Convert BRANCH ON CONDITION
Signed-off-by: Richard Henderson <rth@twiddle.net>