[llvm] r268983 - [X86] Fix the AllRegs AVX calling convention.
Quentin Colombet via llvm-commits
llvm-commits at lists.llvm.org
Mon May 9 15:37:05 PDT 2016
Author: qcolombet
Date: Mon May 9 17:37:05 2016
New Revision: 268983
URL: http://llvm.org/viewvc/llvm-project?rev=268983&view=rev
Log:
[X86] Fix the AllRegs AVX calling convention.
We used to list registers that were not in the AVX space. In other
words, we were pushing registers that the ISA cannot encode
(YMM16-YMM31).
This is part of llvm.org/PR27481.
Modified:
llvm/trunk/lib/Target/X86/X86CallingConv.td
llvm/trunk/test/CodeGen/X86/x86-interrupt_vzeroupper.ll
Modified: llvm/trunk/lib/Target/X86/X86CallingConv.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86CallingConv.td?rev=268983&r1=268982&r2=268983&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86CallingConv.td (original)
+++ llvm/trunk/lib/Target/X86/X86CallingConv.td Mon May 9 17:37:05 2016
@@ -897,7 +897,7 @@ def CSR_32_AllRegs_SSE : CalleeSavedRegs
def CSR_64_AllRegs : CalleeSavedRegs<(add CSR_64_MostRegs, RAX, RSP,
(sequence "XMM%u", 16, 31))>;
def CSR_64_AllRegs_AVX : CalleeSavedRegs<(sub (add CSR_64_MostRegs, RAX, RSP,
- (sequence "YMM%u", 0, 31)),
+ (sequence "YMM%u", 0, 15)),
(sequence "XMM%u", 0, 15))>;
// Standard C + YMM6-15
Modified: llvm/trunk/test/CodeGen/X86/x86-interrupt_vzeroupper.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/x86-interrupt_vzeroupper.ll?rev=268983&r1=268982&r2=268983&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/x86-interrupt_vzeroupper.ll (original)
+++ llvm/trunk/test/CodeGen/X86/x86-interrupt_vzeroupper.ll Mon May 9 17:37:05 2016
@@ -1,4 +1,4 @@
-; RUN: llc -mtriple=x86_64-unknown-unknown -mattr=+avx < %s | FileCheck %s
+; RUN: llc -verify-machineinstrs -mtriple=x86_64-unknown-unknown -mattr=+avx < %s | FileCheck %s
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Checks that interrupt handler code does not call "vzeroupper" instruction
More information about the llvm-commits
mailing list