[PATCH] D68341: [AIX] TOC pseudo expansion for 64bit large + 64bit small + 32bit large modes

Xiangling Liao via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 2 08:22:47 PDT 2019


Xiangling_L created this revision.
Xiangling_L added reviewers: sfertile, hubert.reinterpretcast, jasonliu, cebowleratibm.
Xiangling_L added a project: LLVM.
Herald added subscribers: llvm-commits, jsji, MaskRay, kbarton, hiraditya, nemanjai.

On AIX, for toc-referenced globals,

1. under large code model, we generate:

[32 bit]
 LWZtocL(@sym, ADDIStocHA(%r2, @sym))
[64 bit]
LDtocL(@sym, ADDIStocHA8(%x2, @sym)).

2. under small code model, we generate:

[32 bit]
LWZtoc @op1, %r2
[64 bit]
LDtoc @op1, %x2

In this patch, we provide support for peudo ops including ADDIStocHA8, ADDIStocHA, LWZtocL, LDtoc, LDtocL for AIX('LWZtoc' is supported by an earlier patch already), lowering them from MIR to assembly.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D68341

Files:
  llvm/include/llvm/MC/MCExpr.h
  llvm/lib/MC/MCExpr.cpp
  llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp
  llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
  llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
  llvm/lib/Target/PowerPC/PPCInstrInfo.td
  llvm/test/CodeGen/PowerPC/lower-globaladdr32-aix-asm.ll
  llvm/test/CodeGen/PowerPC/lower-globaladdr64-aix-asm.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D68341.222839.patch
Type: text/x-patch
Size: 23947 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191002/203eda9e/attachment.bin>


More information about the llvm-commits mailing list