如何解决xmm 和 ymm 寄存器x86-64有关系吗?
我在指令 vmovdqu (%rsi),%xmm2
处有一个程序的核心转储(商业、封闭源代码,不是我写的),我想使用 info regs
检查 gdb 中的寄存器值。
令人惊讶的是,cpu(AMD EPYC 7401P 24 核处理器)似乎有 ymm
,但没有 xmm
寄存器。
我不是 x86-64 汇编专家,但我对 x86 相当了解。
谁能解释一下? Gdb 版本为 10.1。
这是寄存器转储的一个例子(只是开始):
gdb) info registers all
rax 0x0 0
rbx 0x104c400 17089536
rcx 0x20 32
rdx 0x35 53
rsi 0x100000000a0 1099511627936
rdi 0x104c400 17089536
rbp 0x100000000a0 0x100000000a0
rsp 0x7ffcc68b0fa8 0x7ffcc68b0fa8
r8 0xffffffff 4294967295
r9 0xffffffff 4294967295
r10 0x5ab 1451
r11 0x35 53
r12 0x100000000a0 1099511627936
r13 0x7ffcc68b2110 140723639492880
r14 0x0 0
r15 0x0 0
rip 0x7f877a1dc86b 0x7f877a1dc86b <__strncasecmp_l_avx+91>
eflags 0x10283 [ CF SF IF RF ]
cs 0xe033 57395
ss 0xe02b 57387
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
st0 0 (raw 0x00000000000000000000)
st1 0 (raw 0x00000000000000000000)
st2 0 (raw 0x00000000000000000000)
st3 0 (raw 0x00000000000000000000)
st4 0 (raw 0x00000000000000000000)
st5 0 (raw 0x00000000000000000000)
st6 0 (raw 0x00000000000000000000)
st7 0 (raw 0x00000000000000000000)
fctrl 0x37f 895
fstat 0x0 0
ftag 0xffff 65535
fiseg 0x0 0
fioff 0x0 0
foseg 0x0 0
fooff 0x0 0
fop 0x0 0
mxcsr 0x1fa0 [ PE IM DM ZM OM UM PM ]
ymm0 {
v16_bfloat16 = {0x0,0x0,0x0},v8_float = {0x0,0xffffffff,v4_double = {0x0,0x7fffffffffffffff,v32_int8 = {0x0 <repeats 14 times>,0xff,0x0 <repeats 16 times>},v16_int16 = {0x0,0xffff,v8_int32 = {0x0,0xffff0000,v4_int64 = {0x0,0xffff000000000000,v2_int128 = {0xffff0000000000000000000000000000,0x0}
}
ymm1 {
v16_bfloat16 = {0xffff,v8_float = {0xffffffff,v4_double = {0x7fffffffffffffff,v32_int8 = {0x2f,0x65,0x74,0x63,0x2f,0x6f,0x70,0x6d,0x6e,0x69,0x6c,v16_int16 = {0x652f,0x6374,0x6f2f,0x7470,0x6e6d,0x2f69,0x6c63,v8_int32 = {0x6374652f,0x74706f2f,0x6e6d6f2f,0x6c632f69,v4_int64 = {0x74706f2f6374652f,0x6c632f696e6d6f2f,v2_int128 = {0x6c632f696e6d6f2f74706f2f6374652f,0x0}
}
ymm2 {
v16_bfloat16 = {0x0,v32_int8 = {0x0,0xff <repeats 13 times>,0xff00,v8_int32 = {0xff000000,v4_int64 = {0xffffffffff000000,0xffffffffffffffff,v2_int128 = {0xffffffffffffffffffffffffff000000,0x0}
}
ymm3 {
v16_bfloat16 = {0x0,0x0 <repeats 17 times>},0xff0000,0xff000000000000,v2_int128 = {0xff0000000000000000000000000000,0x0}
}
...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。