Richard Sandiford
299fdd814f
[SystemZ] Add TM and TMY
...
The main complication here is that TM and TMY (the memory forms) set
CC differently from the register forms. When the tested bits contain
some 0s and some 1s, the register forms set CC to 1 or 2 based on the
value the uppermost bit. The memory forms instead set CC to 1
regardless of the uppermost bit.
Until now, I've tried to make it so that a branch never tests for an
impossible CC value. E.g. NR only sets CC to 0 or 1, so branches on the
result will only test for 0 or 1. Originally I'd tried to do the same
thing for TM and TMY by using custom matching code in ISelDAGToDAG.
That ended up being very ugly though, and would have meant duplicating
some of the chain checks that the common isel code does.
I've therefore gone for the simpler alternative of adding an extra
operand to the TM DAG opcode to say whether a memory form would be OK.
This means that the inverse of a "TM;JE" is "TM;JNE" rather than the
more precise "TM;JNLE", just like the inverse of "TMLL;JE" is "TMLL;JNE".
I suppose that's arguably less confusing though...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190400 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-10 10:20:32 +00:00
..
2013-08-05 11:23:46 +00:00
2013-07-31 11:36:35 +00:00
2013-07-31 11:36:35 +00:00
2013-07-14 06:24:09 +00:00
2013-07-31 11:36:35 +00:00
2013-08-23 11:18:53 +00:00
2013-07-19 16:21:55 +00:00
2013-07-31 11:36:35 +00:00
2013-07-19 16:24:22 +00:00
2013-07-31 11:36:35 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:24:22 +00:00
2013-09-05 10:36:45 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-20 09:14:46 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-09-06 11:51:39 +00:00
2013-07-14 06:24:09 +00:00
2013-07-31 12:30:20 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-19 12:42:31 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-31 12:38:08 +00:00
2013-07-31 12:38:08 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-31 12:30:20 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-23 11:27:19 +00:00
2013-08-23 11:27:19 +00:00
2013-08-07 11:03:34 +00:00
2013-08-07 11:10:06 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-31 11:36:35 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-21 09:04:20 +00:00
2013-08-21 09:04:20 +00:00
2013-08-23 10:27:02 +00:00
2013-08-23 10:27:02 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-23 11:18:53 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-31 11:36:35 +00:00
2013-07-31 11:36:35 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-19 12:48:54 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:26:39 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:26:39 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:37:00 +00:00
2013-07-19 16:37:00 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:26:39 +00:00
2013-07-19 16:32:12 +00:00
2013-07-19 16:32:12 +00:00
2013-07-19 16:44:32 +00:00
2013-08-23 11:27:19 +00:00
2013-08-23 11:27:19 +00:00
2013-08-23 11:27:19 +00:00
2013-08-23 11:27:19 +00:00
2013-08-23 11:27:19 +00:00
2013-08-23 11:27:19 +00:00
2013-08-23 11:27:19 +00:00
2013-08-23 11:27:19 +00:00
2013-08-01 10:29:45 +00:00
2013-07-14 06:24:09 +00:00
2013-08-01 10:29:45 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-01 10:29:45 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-01 10:29:45 +00:00
2013-07-14 06:24:09 +00:00
2013-08-01 10:29:45 +00:00
2013-07-14 06:24:09 +00:00
2013-08-23 11:27:19 +00:00
2013-08-23 11:27:19 +00:00
2013-08-23 11:27:19 +00:00
2013-08-23 11:27:19 +00:00
2013-08-23 11:27:19 +00:00
2013-08-23 11:27:19 +00:00
2013-08-23 11:27:19 +00:00
2013-08-23 11:27:19 +00:00
2013-08-28 10:31:43 +00:00
2013-08-01 10:39:40 +00:00
2013-09-03 15:38:35 +00:00
2013-08-28 10:31:43 +00:00
2013-09-10 10:20:32 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-23 11:18:53 +00:00
2013-08-23 11:18:53 +00:00
2013-08-23 11:18:53 +00:00
2013-08-23 11:18:53 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-19 12:42:31 +00:00
2013-08-19 12:42:31 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-21 09:34:56 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-21 09:34:56 +00:00
2013-07-14 06:24:09 +00:00
2013-08-19 12:56:58 +00:00
2013-07-19 16:26:39 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:26:39 +00:00
2013-07-19 16:37:00 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:26:39 +00:00
2013-07-19 16:37:00 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-08-16 00:37:11 +00:00
2013-08-05 11:23:46 +00:00
2013-08-20 09:38:48 +00:00
2013-08-20 09:38:48 +00:00
2013-08-28 09:01:51 +00:00
2013-08-28 09:01:51 +00:00
2013-08-27 09:54:29 +00:00
2013-07-14 06:24:09 +00:00
2013-08-27 09:54:29 +00:00
2013-08-27 09:54:29 +00:00
2013-09-06 10:25:07 +00:00
2013-08-27 09:54:29 +00:00
2013-07-19 16:21:55 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:24:22 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:24:22 +00:00
2013-09-05 10:36:45 +00:00
2013-08-23 11:36:42 +00:00
2013-07-31 11:36:35 +00:00
2013-07-16 11:55:57 +00:00
2013-07-18 10:40:35 +00:00
2013-07-16 11:55:57 +00:00
2013-07-18 10:06:15 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:12:08 +00:00
2013-07-14 06:24:09 +00:00
2013-08-16 11:21:54 +00:00
2013-08-16 11:21:54 +00:00
2013-08-16 11:29:37 +00:00
2013-08-16 11:41:43 +00:00
2013-08-16 11:41:43 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:21:55 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:24:22 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-14 06:24:09 +00:00
2013-07-19 16:24:22 +00:00
2013-09-05 10:36:45 +00:00