[llvm] r368691 - [AIX] Implement LR prolog/epilog save/restore

Hubert Tong via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 13 06:38:24 PDT 2019


Author: hubert.reinterpretcast
Date: Tue Aug 13 06:38:24 2019
New Revision: 368691

URL: http://llvm.org/viewvc/llvm-project?rev=368691&view=rev
Log:
[AIX] Implement LR prolog/epilog save/restore

Summary:
This patch fixes the offsets of fields in the stack frame linkage save
area for AIX.

Reviewers: sfertile, hubert.reinterpretcast, jasonliu, Xiangling_L, xingxue, ZarkoCA, daltenty

Reviewed By: hubert.reinterpretcast

Subscribers: wuzish, nemanjai, hiraditya, kbarton, MaskRay, jsji, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64424

Patch by Chris Bowler!

Added:
    llvm/trunk/test/CodeGen/PowerPC/aix-lr.ll

Added: llvm/trunk/test/CodeGen/PowerPC/aix-lr.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/aix-lr.ll?rev=368691&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/PowerPC/aix-lr.ll (added)
+++ llvm/trunk/test/CodeGen/PowerPC/aix-lr.ll Tue Aug 13 06:38:24 2019
@@ -0,0 +1,32 @@
+; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff < %s | \
+; RUN: FileCheck --check-prefix=32BIT %s
+
+; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff < %s | \
+; RUN: FileCheck --check-prefix=64BIT %s
+
+define void @bar() {
+entry:
+
+; 32BIT: mflr 0
+; 32BIT: stw 0, 8(1)
+; 32BIT: stwu 1, -64(1)
+; 32BIT: bl .foo
+; 32BIT: nop
+; 32BIT: addi 1, 1, 64
+; 32BIT: lwz 0, 8(1)
+; 32BIT: mtlr 0
+
+; 64BIT: mflr 0
+; 64BIT: std 0, 16(1)
+; 64BIT: stdu 1, -112(1)
+; 64BIT: bl .foo
+; 64BIT: nop
+; 64BIT: addi 1, 1, 112
+; 64BIT: ld 0, 16(1)
+; 64BIT: mtlr 0
+
+  call void bitcast (void (...)* @foo to void ()*)()
+  ret void
+}
+
+declare void @foo(...)




More information about the llvm-commits mailing list