xref: /llvm-project/lldb/test/Shell/Register/x86-64-fp-read.test (revision d875838e8b45cb0da5070298d0c1a2d1ee78ce7e)
1d8ff269fSMichał Górny# XFAIL: system-windows
28aea95f3SMichał Górny# Darwin uses the legacy behavior of reporting abridged ftag value,
38aea95f3SMichał Górny# it is covered by TestRegisters.py::fp_special_purpose_register_read.
4d8ff269fSMichał Górny# XFAIL: system-darwin
5d8ff269fSMichał Górny# REQUIRES: native && target-x86_64
6d8ff269fSMichał Górny# RUN: %clangxx_host -g %p/Inputs/x86-fp-read.cpp -o %t
7d8ff269fSMichał Górny# RUN: %lldb -b -s %s %t | FileCheck %s
8d8ff269fSMichał Górnyprocess launch
9d8ff269fSMichał Górny# CHECK: Process {{.*}} stopped
10d8ff269fSMichał Górny
11d8ff269fSMichał Górny# fdiv (%rbx) gets encoded into 2 bytes, int3 into 1 byte
12*d875838eSDave Leeexpression (void*)($pc-3)
13d8ff269fSMichał Górny# CHECK: (void *) $0 = [[FDIV:0x[0-9a-f]*]]
14*d875838eSDave Leeexpression &zero
15d8ff269fSMichał Górny# CHECK: (uint32_t *) $1 = [[ZERO:0x[0-9a-f]*]]
16d8ff269fSMichał Górny
17d8ff269fSMichał Górnyregister read --all
18d8ff269fSMichał Górny# CHECK-DAG: fctrl = 0x037b
19d8ff269fSMichał Górny# CHECK-DAG: fstat = 0x8084
208aea95f3SMichał Górny# CHECK-DAG: ftag = 0xea58
21d8ff269fSMichał Górny# CHECK-DAG: fop = 0x0033
22d8ff269fSMichał Górny# CHECK-DAG: fip = [[FDIV]]
23d8ff269fSMichał Górny# CHECK-DAG: fdp = [[ZERO]]
24d8ff269fSMichał Górny
25d8ff269fSMichał Górny# CHECK-DAG: st{{(mm)?}}0 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80 0x00 0x40}
26d8ff269fSMichał Górny# CHECK-DAG: st{{(mm)?}}1 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x3f 0x00 0x00}
27d8ff269fSMichał Górny# CHECK-DAG: st{{(mm)?}}2 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
28d8ff269fSMichał Górny# CHECK-DAG: st{{(mm)?}}3 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80}
29d8ff269fSMichał Górny# CHECK-DAG: st{{(mm)?}}4 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80 0xff 0x7f}
30d8ff269fSMichał Górny# CHECK-DAG: st{{(mm)?}}5 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80 0xff 0xff}
31d8ff269fSMichał Górny# CHECK-DAG: st{{(mm)?}}6 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xc0 0xff 0xff}
32d8ff269fSMichał Górny# CHECK-DAG: st{{(mm)?}}7 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
33d8ff269fSMichał Górny
34d8ff269fSMichał Górny# legacy approach, superseded by fip/fdp registers
35*d875838eSDave Leeexpression (void*)($fiseg*0x100000000 + $fioff)
36d8ff269fSMichał Górny# CHECK: (void *) $2 = [[FDIV]]
37*d875838eSDave Leeexpression (uint32_t*)($foseg * 0x100000000 + $fooff)
38d8ff269fSMichał Górny# CHECK: (uint32_t *) $3 = [[ZERO]]
39d8ff269fSMichał Górny
40d8ff269fSMichał Górnyprocess continue
41d8ff269fSMichał Górny# CHECK: Process {{[0-9]+}} exited with status = 0
42