[PowerPC] Support absolute branches
authorUlrich Weigand <ulrich.weigand@de.ibm.com>
Mon, 24 Jun 2013 11:03:33 +0000 (11:03 +0000)
committerUlrich Weigand <ulrich.weigand@de.ibm.com>
Mon, 24 Jun 2013 11:03:33 +0000 (11:03 +0000)
commitb6a30d159e3e2e322a422c4c31c6d379ff299811
tree3622a99b1197a25061448cdefcf64352028a4bd7
parent5b9d591ad108653cb4d696da2bda023ddbb51501
[PowerPC] Support absolute branches

There is currently only limited support for the "absolute" variants
of branch instructions.  This patch adds support for the absolute
variants of all branches that are currently otherwise supported.

This requires adding new fixup types so that the correct variant
of relocation type can be selected by the object writer.

While the compiler will continue to usually choose the relative
branch variants, this will allow the asm parser to fully support
the absolute branches, with either immediate (numerical) or
symbolic target addresses.

No change in code generation intended.

llvm-svn: 184721
14 files changed:
llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp
llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h
llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp
llvm/lib/Target/PowerPC/MCTargetDesc/PPCFixupKinds.h
llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp
llvm/lib/Target/PowerPC/PPCCodeEmitter.cpp
llvm/lib/Target/PowerPC/PPCInstr64Bit.td
llvm/lib/Target/PowerPC/PPCInstrInfo.td
llvm/test/MC/PowerPC/ppc64-encoding-ext.s
llvm/test/MC/PowerPC/ppc64-encoding.s
llvm/test/MC/PowerPC/ppc64-fixups.s
llvm/test/MC/PowerPC/ppc64-operands.s