[Lldb-commits] [lldb] r359210 - [lldb] [lit] Add tests for reading new x86_64 registers

Michal Gorny via lldb-commits lldb-commits at lists.llvm.org
Thu Apr 25 10:42:50 PDT 2019


Author: mgorny
Date: Thu Apr 25 10:42:49 2019
New Revision: 359210

URL: http://llvm.org/viewvc/llvm-project?rev=359210&view=rev
Log:
[lldb] [lit] Add tests for reading new x86_64 registers

Add tests covering read operations for the general-purpose and XMM
registers added in x86_64 (r8-r15 and xmm8-xmm15).

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

Added:
    lldb/trunk/lit/Register/Inputs/x86-64-read.cpp
    lldb/trunk/lit/Register/x86-64-read.test

Added: lldb/trunk/lit/Register/Inputs/x86-64-read.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Register/Inputs/x86-64-read.cpp?rev=359210&view=auto
==============================================================================
--- lldb/trunk/lit/Register/Inputs/x86-64-read.cpp (added)
+++ lldb/trunk/lit/Register/Inputs/x86-64-read.cpp Thu Apr 25 10:42:49 2019
@@ -0,0 +1,55 @@
+#include <cstdint>
+
+struct alignas(16) xmm_t {
+  uint64_t a, b;
+};
+
+int main() {
+  uint64_t r8 = 0x0102030405060708;
+  uint64_t r9 = 0x1112131415161718;
+  uint64_t r10 = 0x2122232425262728;
+  uint64_t r11 = 0x3132333435363738;
+  uint64_t r12 = 0x4142434445464748;
+  uint64_t r13 = 0x5152535455565758;
+  uint64_t r14 = 0x6162636465666768;
+  uint64_t r15 = 0x7172737475767778;
+
+  xmm_t xmm8 = { 0x020406080A0C0E01, 0x030507090B0D0F00 };
+  xmm_t xmm9 = { 0x121416181A1C1E11, 0x131517191B1D1F10 };
+  xmm_t xmm10 = { 0x222426282A2C2E21, 0x232527292B2D2F20 };
+  xmm_t xmm11 = { 0x323436383A3C3E31, 0x333537393B3D3F30 };
+  xmm_t xmm12 = { 0x424446484A4C4E41, 0x434547494B4D4F40 };
+  xmm_t xmm13 = { 0x525456585A5C5E51, 0x535557595B5D5F50 };
+  xmm_t xmm14 = { 0x626466686A6C6E61, 0x636567696B6D6F60 };
+  xmm_t xmm15 = { 0x727476787A7C7E71, 0x737577797B7D7F70 };
+
+  asm volatile(
+    "movq    %0, %%r8\n\t"
+    "movq    %1, %%r9\n\t"
+    "movq    %2, %%r10\n\t"
+    "movq    %3, %%r11\n\t"
+    "movq    %4, %%r12\n\t"
+    "movq    %5, %%r13\n\t"
+    "movq    %6, %%r14\n\t"
+    "movq    %7, %%r15\n\t"
+    "\n\t"
+    "movaps  %8, %%xmm8\n\t"
+    "movaps  %9, %%xmm9\n\t"
+    "movaps  %10, %%xmm10\n\t"
+    "movaps  %11, %%xmm11\n\t"
+    "movaps  %12, %%xmm12\n\t"
+    "movaps  %13, %%xmm13\n\t"
+    "movaps  %14, %%xmm14\n\t"
+    "movaps  %15, %%xmm15\n\t"
+    "\n\t"
+    "int3"
+    :
+    : "g"(r8), "g"(r9), "g"(r10), "g"(r11), "g"(r12), "g"(r13), "g"(r14),
+      "g"(r15), "m"(xmm8), "m"(xmm9), "m"(xmm10), "m"(xmm11), "m"(xmm12),
+      "m"(xmm13), "m"(xmm14), "m"(xmm15)
+    : "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15", "%xmm8",
+      "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15"
+  );
+
+  return 0;
+}

Added: lldb/trunk/lit/Register/x86-64-read.test
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Register/x86-64-read.test?rev=359210&view=auto
==============================================================================
--- lldb/trunk/lit/Register/x86-64-read.test (added)
+++ lldb/trunk/lit/Register/x86-64-read.test Thu Apr 25 10:42:49 2019
@@ -0,0 +1,48 @@
+# XFAIL: system-darwin
+# XFAIL: system-windows
+# REQUIRES: native && target-x86_64
+# RUN: %clangxx %p/Inputs/x86-64-read.cpp -o %t
+# RUN: %lldb -b -s %s %t | FileCheck %s
+process launch
+
+register read --all
+# CHECK-DAG: r8 = 0x0102030405060708
+# CHECK-DAG: r9 = 0x1112131415161718
+# CHECK-DAG: r10 = 0x2122232425262728
+# CHECK-DAG: r11 = 0x3132333435363738
+# CHECK-DAG: r12 = 0x4142434445464748
+# CHECK-DAG: r13 = 0x5152535455565758
+# CHECK-DAG: r14 = 0x6162636465666768
+# CHECK-DAG: r15 = 0x7172737475767778
+# CHECK-DAG: r8d = 0x05060708
+# CHECK-DAG: r9d = 0x15161718
+# CHECK-DAG: r10d = 0x25262728
+# CHECK-DAG: r11d = 0x35363738
+# CHECK-DAG: r12d = 0x45464748
+# CHECK-DAG: r13d = 0x55565758
+# CHECK-DAG: r14d = 0x65666768
+# CHECK-DAG: r15d = 0x75767778
+# CHECK-DAG: r8w = 0x0708
+# CHECK-DAG: r9w = 0x1718
+# CHECK-DAG: r10w = 0x2728
+# CHECK-DAG: r11w = 0x3738
+# CHECK-DAG: r12w = 0x4748
+# CHECK-DAG: r13w = 0x5758
+# CHECK-DAG: r14w = 0x6768
+# CHECK-DAG: r15w = 0x7778
+# CHECK-DAG: r8l = 0x08
+# CHECK-DAG: r9l = 0x18
+# CHECK-DAG: r10l = 0x28
+# CHECK-DAG: r11l = 0x38
+# CHECK-DAG: r12l = 0x48
+# CHECK-DAG: r13l = 0x58
+# CHECK-DAG: r14l = 0x68
+# CHECK-DAG: r15l = 0x78
+# CHECK-DAG: xmm8 = {0x01 0x0e 0x0c 0x0a 0x08 0x06 0x04 0x02 0x00 0x0f 0x0d 0x0b 0x09 0x07 0x05 0x03}
+# CHECK-DAG: xmm9 = {0x11 0x1e 0x1c 0x1a 0x18 0x16 0x14 0x12 0x10 0x1f 0x1d 0x1b 0x19 0x17 0x15 0x13}
+# CHECK-DAG: xmm10 = {0x21 0x2e 0x2c 0x2a 0x28 0x26 0x24 0x22 0x20 0x2f 0x2d 0x2b 0x29 0x27 0x25 0x23}
+# CHECK-DAG: xmm11 = {0x31 0x3e 0x3c 0x3a 0x38 0x36 0x34 0x32 0x30 0x3f 0x3d 0x3b 0x39 0x37 0x35 0x33}
+# CHECK-DAG: xmm12 = {0x41 0x4e 0x4c 0x4a 0x48 0x46 0x44 0x42 0x40 0x4f 0x4d 0x4b 0x49 0x47 0x45 0x43}
+# CHECK-DAG: xmm13 = {0x51 0x5e 0x5c 0x5a 0x58 0x56 0x54 0x52 0x50 0x5f 0x5d 0x5b 0x59 0x57 0x55 0x53}
+# CHECK-DAG: xmm14 = {0x61 0x6e 0x6c 0x6a 0x68 0x66 0x64 0x62 0x60 0x6f 0x6d 0x6b 0x69 0x67 0x65 0x63}
+# CHECK-DAG: xmm15 = {0x71 0x7e 0x7c 0x7a 0x78 0x76 0x74 0x72 0x70 0x7f 0x7d 0x7b 0x79 0x77 0x75 0x73}




More information about the lldb-commits mailing list