[PATCH] D36326: [MIPS] Use ABI to determine stack alignment.

John Baldwin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 8 11:14:36 PDT 2017


bsdjhb updated this revision to Diff 110239.
bsdjhb added a comment.

- Use daddiu for 64-bit.


https://reviews.llvm.org/D36326

Files:
  lib/Target/Mips/MipsSubtarget.h
  test/CodeGen/Mips/stack-alignment.ll


Index: test/CodeGen/Mips/stack-alignment.ll
===================================================================
--- test/CodeGen/Mips/stack-alignment.ll
+++ test/CodeGen/Mips/stack-alignment.ll
@@ -1,9 +1,11 @@
 ; RUN: llc -march=mipsel < %s | FileCheck %s -check-prefix=32
 ; RUN: llc -march=mipsel -mattr=+fp64 < %s | FileCheck %s -check-prefix=32
+; RUN: llc -march=mips64el -mcpu=mips3 < %s | FileCheck %s -check-prefix=64
+; RUN: llc -march=mips64el -mcpu=mips4 < %s | FileCheck %s -check-prefix=64
 ; RUN: llc -march=mips64el -mcpu=mips64 < %s | FileCheck %s -check-prefix=64
 
 ; 32:      addiu  $sp, $sp, -8
-; 64:      addiu  $sp, $sp, -16
+; 64:      daddiu  $sp, $sp, -16
 
 define i32 @foo1() #0 {
 entry:
Index: lib/Target/Mips/MipsSubtarget.h
===================================================================
--- lib/Target/Mips/MipsSubtarget.h
+++ lib/Target/Mips/MipsSubtarget.h
@@ -295,7 +295,9 @@
   // really use them if in addition we are in mips16 mode
   static bool useConstantIslands();
 
-  unsigned stackAlignment() const { return hasMips64() ? 16 : 8; }
+  unsigned stackAlignment() const {
+    return isABI_N32() || isABI_N64() ? 16 : 8;
+  }
 
   // Grab relocation model
   Reloc::Model getRelocationModel() const;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D36326.110239.patch
Type: text/x-patch
Size: 1248 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170808/3714b0a2/attachment.bin>


More information about the llvm-commits mailing list