[FastISel][AArch64] Factor out ADDS/SUBS instruction emission and add support for...
authorJuergen Ributzka <juergen@apple.com>
Tue, 19 Aug 2014 22:29:55 +0000 (22:29 +0000)
committerJuergen Ributzka <juergen@apple.com>
Tue, 19 Aug 2014 22:29:55 +0000 (22:29 +0000)
commitae9a7964ef6fc98298f945ca370a63f4a3588477
tree0de6c866b482aaf7aa5837ceedfc74e5bdc18f3f
parentb12ab608fe80d5597090063ee3d72377d7560914
[FastISel][AArch64] Factor out ADDS/SUBS instruction emission and add support for extensions and shift folding.

Factor out the ADDS/SUBS instruction emission code into helper functions and
make the helper functions more clever to support most of the different ADDS/SUBS
instructions the architecture support. This includes better immedediate support,
shift folding, and sign-/zero-extend folding.

This fixes <rdar://problem/17913111>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216033 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AArch64/AArch64FastISel.cpp
test/CodeGen/AArch64/arm64-fast-isel-icmp.ll
test/CodeGen/AArch64/arm64-xaluo.ll