[MIPS] Use ABI to determine stack alignment.

Summary:
The stack alignment depends on the ABI (16 bytes for N32 and N64 and 8
bytes for O32), not the CPU type.

Reviewers: sdardis

Reviewed By: sdardis

Subscribers: atanasyan, arichardson, llvm-commits

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

llvm-svn: 310768
This commit is contained in:
John Baldwin 2017-08-11 22:07:56 +00:00
parent 5d6df36fde
commit eebcc47500
2 changed files with 6 additions and 2 deletions

View File

@ -295,7 +295,9 @@ public:
// 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;

View File

@ -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: