OSDN Git Service

[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)
commit9679c47a07386cbf3547a0927609c7ee080b2aab
treef21225207a3ae3a0c84990a4b1de9e2ff03a684f
parent9068d5310cfafdd201f77b0434dc7eebb7f51a45
[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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184721 91177308-0d34-0410-b5e6-96231b3b80d8
14 files changed:
lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp
lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h
lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp
lib/Target/PowerPC/MCTargetDesc/PPCFixupKinds.h
lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp
lib/Target/PowerPC/PPCCodeEmitter.cpp
lib/Target/PowerPC/PPCInstr64Bit.td
lib/Target/PowerPC/PPCInstrInfo.td
test/MC/PowerPC/ppc64-encoding-ext.s
test/MC/PowerPC/ppc64-encoding.s
test/MC/PowerPC/ppc64-fixups.s
test/MC/PowerPC/ppc64-operands.s