Index: lldb/lit/Register/Inputs/x86-64-read.cpp =================================================================== --- /dev/null +++ lldb/lit/Register/Inputs/x86-64-read.cpp @@ -0,0 +1,55 @@ +#include + +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; +} Index: lldb/lit/Register/x86-64-read.test =================================================================== --- /dev/null +++ lldb/lit/Register/x86-64-read.test @@ -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}