NAKAMURA Takumi
d8570e5bc2
Fix abuse of StringRef on ARM64SysReg::MRSMapper::toString(Val, Valid).
...
FIXME: Could we use SmallString here?
llvm-svn: 205950
2014-04-10 03:05:59 +00:00
Bradley Smith
246b0b617d
[ARM64] Change SYS without a register to an alias to make disassembling more consistant.
...
llvm-svn: 205898
2014-04-09 14:44:58 +00:00
Bradley Smith
2cef19a2e6
[ARM64] Correctly disassemble ISB operand as ISB not DBarrier.
...
llvm-svn: 205897
2014-04-09 14:44:54 +00:00
Bradley Smith
f280e91849
[ARM64] Conditional branches must always print their condition code, even AL.
...
llvm-svn: 205894
2014-04-09 14:44:39 +00:00
Bradley Smith
a0d7a9a12f
[ARM64] When printing a pre-indexed address with #0 , the ', #0' is not optional.
...
llvm-svn: 205892
2014-04-09 14:44:31 +00:00
Bradley Smith
70c6acbbfd
[ARM64] Add missing shifted register MVN alias to ORN
...
llvm-svn: 205891
2014-04-09 14:44:26 +00:00
Bradley Smith
403bbf95c0
[ARM64] SXTW/UXTW are only valid aliases for 32-bit operations.
...
llvm-svn: 205890
2014-04-09 14:44:22 +00:00
Bradley Smith
779238a216
[ARM64] Fix canonicalisation of MOVs. MOV is too complex to be modelled by a dumb alias.
...
llvm-svn: 205889
2014-04-09 14:44:18 +00:00
Bradley Smith
a0dce246ed
[ARM64] Tighten up the special casing in emitting arithmetic extends. UXTW should only be translated when the instruction uses WSP, not SP. Vice versa for UXTX and 64-bit instructions.
...
llvm-svn: 205886
2014-04-09 14:44:03 +00:00
Bradley Smith
9f29b726d5
[ARM64] Add missing tlbi operands and error for extra/missing register on tlbi aliases.
...
llvm-svn: 205876
2014-04-09 14:43:11 +00:00
Bradley Smith
3339427e2a
[ARM64] Remove PrefetchOp and use ARM64PRFM instead.
...
llvm-svn: 205872
2014-04-09 14:42:53 +00:00
Bradley Smith
fb90df563f
[ARM64] Move CPSRField and DBarrier operands over to AArch64-style disassembly and assembly. This removes the last users of namespace ARM64SYS.
...
llvm-svn: 205869
2014-04-09 14:42:42 +00:00
Bradley Smith
08c391c156
[ARM64] Switch the decoder, disassembler, instprinter and asmparser over to using AArch64-style system registers, and fix up test failures discovered in the process.
...
llvm-svn: 205868
2014-04-09 14:42:36 +00:00
Bradley Smith
2ba17a4a17
[ARM64] Move ARM64BaseInfo.{cpp,h} into a Utils/ subdirectory, a la AArch64. These files are required in the decoder, disassembler and parser, and a layering violation was imminent.
...
llvm-svn: 205867
2014-04-09 14:42:27 +00:00
Tim Northover
adbd34e045
ARM64: format register strings without creating a local Twine.
...
It was causing horrible failures on some build-bots.
llvm-svn: 205105
2014-03-29 15:35:57 +00:00
Tim Northover
2011df293d
ARM64: change format specifier to work on 32-bit targets
...
Existing tests were failing.
llvm-svn: 205092
2014-03-29 11:47:07 +00:00
Chandler Carruth
7b7a67c5c8
[ARM64] Fix 'assert("...")' to be 'assert(0 && "...")'. Otherwise, it is
...
no assert at all. ;] Some of these should probably be switched to
llvm_unreachable, but I didn't want to perturb the behavior in this
patch.
Found by -Wstring-conversion, which I'll try to turn on in CMake builds
at least as it is finding useful things.
llvm-svn: 205091
2014-03-29 11:07:40 +00:00
Tim Northover
00ed9964c6
ARM64: initial backend import
...
This adds a second implementation of the AArch64 architecture to LLVM,
accessible in parallel via the "arm64" triple. The plan over the
coming weeks & months is to merge the two into a single backend,
during which time thorough code review should naturally occur.
Everything will be easier with the target in-tree though, hence this
commit.
llvm-svn: 205090
2014-03-29 10:18:08 +00:00