Richard Sandiford
e66e8c8b66
[SystemZ] Add MC support for LEDBRA, LEXBRA and LDXBRA
...
These instructions aren't used for codegen since the original L*DB instructions
are suitable for fround.
llvm-svn: 212703
2014-07-10 11:00:55 +00:00
Richard Sandiford
dc6c2c953d
[SystemZ] Add support for z196 float<->unsigned conversions
...
These complement the older float<->signed instructions.
llvm-svn: 204451
2014-03-21 10:56:30 +00:00
Richard Sandiford
45645a2c1c
[SystemZ] Add MC support for interlocked-access 1 instructions
...
llvm-svn: 197984
2013-12-24 15:14:05 +00:00
Richard Sandiford
b63e300b67
[SystemZ] Add comparisons of high words and memory
...
llvm-svn: 191777
2013-10-01 15:00:44 +00:00
Richard Sandiford
a9ac0e0f75
[SystemZ] Add comparisons of large immediates using high words
...
There are no corresponding patterns for small immediates because they would
prevent the use of fused compare-and-branch instructions.
llvm-svn: 191775
2013-10-01 14:56:23 +00:00
Richard Sandiford
42a694f44e
[SystemZ] Add immediate addition involving high words
...
llvm-svn: 191774
2013-10-01 14:53:46 +00:00
Richard Sandiford
5469c39a26
[SystemZ] Add truncating high-word stores (STCH and STHH)
...
llvm-svn: 191743
2013-10-01 12:22:49 +00:00
Richard Sandiford
0d46b1a30f
[SystemZ] Add zero-extending high-word loads (LLCH and LLHH)
...
llvm-svn: 191742
2013-10-01 12:19:08 +00:00
Richard Sandiford
89e160d975
[SystemZ] Add sign-extending high-word loads (LBH and LHH)
...
llvm-svn: 191740
2013-10-01 12:11:47 +00:00
Richard Sandiford
a26a4b4f60
[SystemZ] Reapply: Add definitions of LFH and STFH
...
Originally committed as r191661, but reverted because it changed the matching
order of comparisons on some hosts. That should have been fixed by r191735.
llvm-svn: 191738
2013-10-01 10:31:04 +00:00
Richard Sandiford
a25f268c25
[SystemZ] Revert r191661: Add definitions of LFH and STFH
...
For some reason, adding definitions for these load and store
instructions changed whether some of the build bots matched
comparisons as signed or unsigned.
llvm-svn: 191663
2013-09-30 12:01:35 +00:00
Richard Sandiford
d30ac3a125
[SystemZ] Add definitions of LFH and STFH
...
llvm-svn: 191661
2013-09-30 10:50:33 +00:00
Richard Sandiford
8e92c389e4
[SystemZ] Add FI[EDX]BRA
...
These are extensions of the existing FI[EDX]BR instructions, but use a spare
bit to suppress inexact conditions.
llvm-svn: 188894
2013-08-21 08:58:08 +00:00
Richard Sandiford
6cf80b3ec0
[SystemZ] Add RISBLG and RISBHG instruction definitions
...
The next patch will make use of RISBLG for codegen.
llvm-svn: 187490
2013-07-31 11:17:35 +00:00
Richard Sandiford
f2404164ba
[SystemZ] Add LOCR and LOCGR
...
llvm-svn: 187113
2013-07-25 09:11:15 +00:00
Richard Sandiford
09a8cf3604
[SystemZ] Add LOC and LOCG
...
As with the stores, these instructions can trap when the condition is false,
so they are only used for things like (cond ? x : *ptr).
llvm-svn: 187112
2013-07-25 09:04:52 +00:00
Richard Sandiford
a68e6f5660
[SystemZ] Add STOC and STOCG
...
These instructions are allowed to trap even if the condition is false,
so for now they are only used for "*ptr = (cond ? x : *ptr)"-style
constructs.
llvm-svn: 187111
2013-07-25 08:57:02 +00:00
Richard Sandiford
7d6a453623
[SystemZ] Add AHIK and AGHIK
...
I did these as a separate patch because it uses a slightly different
form of RIE layout.
llvm-svn: 186687
2013-07-19 16:32:12 +00:00
Richard Sandiford
27d1cfe3d4
[SystemZ] Start adding z196 and zEC12 support
...
This first step just adds definitions for SLLK, SRLK and SRAK.
The next patch will actually make use of them during codegen.
insn-bad.s tests that some form of error is reported when using these
instructions on z10. More work is needed to get the "instruction requires:
distinct-ops" that we'd ideally like, so I've stubbed that part out for now.
I'll come back and make it mandatory once the necessary changes are in.
llvm-svn: 186680
2013-07-19 16:09:03 +00:00