summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClement Courbet <courbet@google.com>2019-12-02 14:58:41 +0100
committerClement Courbet <courbet@google.com>2019-12-02 16:13:27 +0100
commit3540b80fe445ec467cba5e4cab2a4865bb945639 (patch)
treed59987267bfd63a3c0336ec0e15151c7f70a6cd9
parent0f22e783a038b6983f0fe161eef6cf2add3a4156 (diff)
downloadbcm5719-llvm-3540b80fe445ec467cba5e4cab2a4865bb945639.tar.gz
bcm5719-llvm-3540b80fe445ec467cba5e4cab2a4865bb945639.zip
[llvm-exegesis] Fix 44b9942898c7.
Summary: Add missing stack release instructions in loadImplicitRegAndFinalize. Reviewers: pengfei, gchatelet Subscribers: tschuett, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D70903
-rw-r--r--llvm/test/tools/llvm-exegesis/X86/latency-SQRTSSr.s13
-rw-r--r--llvm/tools/llvm-exegesis/lib/X86/Target.cpp1
2 files changed, 14 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-exegesis/X86/latency-SQRTSSr.s b/llvm/test/tools/llvm-exegesis/X86/latency-SQRTSSr.s
new file mode 100644
index 00000000000..1908b9a9e07
--- /dev/null
+++ b/llvm/test/tools/llvm-exegesis/X86/latency-SQRTSSr.s
@@ -0,0 +1,13 @@
+# RUN: llvm-exegesis -mode=latency -opcode-name=SQRTSSr -repetition-mode=loop | FileCheck %s
+
+# Check that the setup code for MXCSR does not crash the snippet.
+
+CHECK: ---
+CHECK-NEXT: mode: latency
+CHECK-NEXT: key:
+CHECK-NEXT: instructions:
+CHECK-NEXT: SQRTSSr
+CHECK-NEXT: config: ''
+CHECK-NEXT: register_initial_values:
+CHECK-NOT: crashed
+CHECK-LAST: ...
diff --git a/llvm/tools/llvm-exegesis/lib/X86/Target.cpp b/llvm/tools/llvm-exegesis/lib/X86/Target.cpp
index 08724dd4152..61da38e5f5d 100644
--- a/llvm/tools/llvm-exegesis/lib/X86/Target.cpp
+++ b/llvm/tools/llvm-exegesis/lib/X86/Target.cpp
@@ -513,6 +513,7 @@ ConstantInliner::loadImplicitRegAndFinalize(unsigned Opcode, unsigned Value) {
.addReg(0) // IndexReg
.addImm(0) // Disp
.addReg(0)); // Segment
+ add(releaseStackSpace(4));
return std::move(Instructions);
}
OpenPOWER on IntegriCloud