From: wogiz@openmailbox.org
To: xen-devel@lists.xen.org
Subject: Bug in x86 instruction emulator?
Date: Wed, 06 Apr 2016 01:38:32 +0200 [thread overview]
Message-ID: <20e259d208b95167bb495a6ed0bf684d@openmailbox.org> (raw)
[-- Attachment #1: Type: text/plain, Size: 412 bytes --]
I'm running Xen 4.6.1 with Alpine Linux 3.3.3 in dom0. In a HVM domU
with vga="qxl", Xorg will segfault instantly if tried started. Multiple
Linux distros have been tested and Xorg segfaults in all.
Attached are a full backtrace from domU generated by Xorg, and a
assembler dump of function 'sse2_blt'.
According to Xen IRC channel, the cause could be a bug in the x86
instruction emulator related to SSE.
[-- Attachment #2: xorg-full-backtrace.txt --]
[-- Type: text/plain, Size: 10816 bytes --]
Core was generated by `/usr/bin/X -nolisten tcp :0 -auth /tmp/serverauth.J8ecNHkUxO'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007fc65c3d5626 in _mm_store_si128 (__B=..., __P=0xf1fe000001e000) at /usr/lib/gcc/x86_64-alpine-linux-musl/5.3.0/include/emmintrin.h:710
710 *__P = __B;
[Current thread is 1 (LWP 2296)]
(gdb) bt full
#0 0x00007fc65c3d5626 in _mm_store_si128 (__B=..., __P=0xf1fe000001e000) at /usr/lib/gcc/x86_64-alpine-linux-musl/5.3.0/include/emmintrin.h:710
No locals.
#1 save_128_aligned (data=..., dst=0xf1fe000001e000) at pixman-sse2.c:391
No locals.
#2 sse2_blt (imp=0x7fc65b3ee420, src_bits=0x7fc650541000, dst_bits=0x7fc64ff41020, src_stride=-4096, dst_stride=4096, src_bpp=32, dst_bpp=32, src_x=22, src_y=4, dest_x=22, dest_y=4,
width=9, height=8) at pixman-sse2.c:4782
w = 28
s = 0x7fc65053d060 <error: Cannot access memory at address 0x7fc65053d060>
d = 0x7fc64ff45080 ""
src_bytes = 0x7fc65053c058 <error: Cannot access memory at address 0x7fc65053c058>
dst_bytes = 0x7fc64ff46078 ""
byte_width = 36
#3 0x00007fc65c3d57d2 in sse2_composite_copy_area (imp=0x7fc65b3ee420, info=0x7ffcad040e00) at pixman-sse2.c:4815
op = PIXMAN_OP_SRC
src_image = 0x55dff8418e00
mask_image = 0x0
dest_image = 0x55dff8418f20
src_x = 22
src_y = 4
mask_x = 0
mask_y = 0
dest_x = 22
dest_y = 4
width = 9
height = 9
#4 0x00007fc65c102b62 in pixman_image_composite32 (op=PIXMAN_OP_SRC, src=0x55dff8418e00, mask=0x0, dest=0x55dff8418f20, src_x=22, src_y=4, mask_x=0, mask_y=0, dest_x=22, dest_y=4,
width=9, height=9) at pixman.c:700
src_format = PIXMAN_a8r8g8b8
mask_format = 0
dest_format = PIXMAN_a8r8g8b8
region = {extents = {x1 = 22, y1 = 4, x2 = 31, y2 = 13}, data = 0x0}
extents = {x1 = 0, y1 = 0, x2 = 9, y2 = 9}
imp = 0x7fc65b3ee420
func = 0x7fc65c3d56b7 <sse2_composite_copy_area>
info = {op = PIXMAN_OP_SRC, src_image = 0x55dff8418e00, mask_image = 0x0, dest_image = 0x55dff8418f20, src_x = 22, src_y = 4, mask_x = 0, mask_y = 0, dest_x = 22, dest_y = 4,
width = 9, height = 9, src_flags = 42420863, mask_flags = 8194, dest_flags = 34032255}
pbox = 0x7ffcad040de0
n = 0
#5 0x00007fc65c102c71 in pixman_image_composite (op=PIXMAN_OP_SRC, src=0x55dff8418e00, mask=0x0, dest=0x55dff8418f20, src_x=22, src_y=4, mask_x=0, mask_y=0, dest_x=22, dest_y=4, width=9,
height=9) at pixman.c:723
No locals.
#6 0x00007fc655c6f25b in download_box_no_update (surface=0x55dff8418d20, x1=22, y1=4, x2=31, y2=13) at qxl_surface.c:133
No locals.
#7 0x00007fc655c6f315 in qxl_download_box (surface=0x55dff8418d20, x1=22, y1=4, x2=31, y2=13) at qxl_surface.c:150
__func__ = "qxl_download_box"
#8 0x00007fc655c6f43b in qxl_surface_prepare_access (surface=0x55dff8418d20, pixmap=0x55dff8419040, region=0x7ffcad040fd0, access=UXA_ACCESS_RW) at qxl_surface.c:183
n_boxes = 0
boxes = 0x7ffcad040fd0
pScreen = 0x55dff82d6b20
pScrn = 0x55dff82ccfa0
new = {extents = {x1 = 22, y1 = 4, x2 = 31, y2 = 13}, data = 0x0}
#9 0x00007fc655c7aa1a in qxl_prepare_access (pixmap=0x55dff8419040, region=0x7ffcad041100, access=UXA_ACCESS_RW) at qxl_uxa.c:49
No locals.
#10 0x00007fc655c828f7 in uxa_prepare_access (pDrawable=0x55dff8419040, region=0x7ffcad041100, access=UXA_ACCESS_RW) at uxa.c:172
pScreen = 0x55dff82d6b20
uxa_screen = 0x55dff82d8600
xoff = 0
yoff = 0
pPixmap = 0x55dff8419040
box = {x1 = 2912, y1 = 21994, x2 = 32710, y2 = 0}
region_rec = {extents = {x1 = 0, y1 = 0, x2 = 0, y2 = 0}, data = 0x16}
result = 1
#11 0x00007fc655c92b51 in uxa_check_composite (op=3 '\003', pSrc=0x55dff85a53c0, pMask=0x55dff85a5640, pDst=0x55dff85a4d20, xSrc=-1, ySrc=-9, xMask=0, yMask=0, xDst=22, yDst=4, width=9,
height=9) at uxa-unaccel.c:439
screen = 0x55dff82d6b20
region = {extents = {x1 = 22, y1 = 4, x2 = 31, y2 = 13}, data = 0x0}
__FUNCTION__ = "uxa_check_composite"
#12 0x00007fc655c90725 in uxa_composite (op=3 '\003', pSrc=0x55dff85a53c0, pMask=0x55dff85a5640, pDst=0x55dff85a4d20, xSrc=-1, ySrc=-9, xMask=0, yMask=0, xDst=22, yDst=4, width=9, height=9)
at uxa-render.c:1694
uxa_screen = 0x55dff82d8600
ret = -1
saveSrcRepeat = 1
saveMaskRepeat = 0
region = {extents = {x1 = 19744, y1 = -1958, x2 = 21983, y2 = 0}, data = 0xfffffffffffffff0}
tx = 0
ty = 0
#13 0x000055dff7098e30 in damageComposite (op=<optimized out>, pSrc=0x55dff85a53c0, pMask=0x55dff85a5640, pDst=0x55dff85a4d20, xSrc=<optimized out>, ySrc=<optimized out>, xMask=0, yMask=0,
xDst=22, yDst=4, width=9, height=9) at damage.c:503
pScreen = <optimized out>
ps = 0x55dff82d80c0
pScrPriv = 0x55dff82d8820
#14 0x00007fc655c89675 in uxa_check_glyphs (op=3 '\003', src=0x55dff85a53c0, dst=0x55dff85a4d20, maskFormat=0x55dff82d74c8, xSrc=0, ySrc=0, nlist=-1, list=0x7ffcad041650,
glyphs=0x7ffcad041a50) at uxa-glyphs.c:528
pScreen = 0x55dff82d6b20
image = 0x55dff85a54a0
scratch = 0x55dff85a4a60
mask = 0x55dff85a5640
width = 9
height = 9
x = 22
y = 4
n = -1
xDst = 23
yDst = 13
extents = {x1 = 22, y1 = 4, x2 = 31, y2 = 13}
#15 0x00007fc655c8b1bb in uxa_glyphs (op=3 '\003', pSrc=0x55dff85a53c0, pDst=0x55dff85a4d20, maskFormat=0x55dff82d74c8, xSrc=0, ySrc=0, nlist=1, list=0x7ffcad041640, glyphs=0x7ffcad041a48)
at uxa-glyphs.c:1054
screen = 0x55dff82d6b20
uxa_screen = 0x55dff82d8600
xDst = 23
yDst = 13
extents = {x1 = 0, y1 = 0, x2 = 0, y2 = 0}
have_extents = 0
width = 1564158436
height = 32710
ret = 32
localDst = 0x55dff85a4d20
#16 0x000055dff709918f in damageGlyphs (op=<optimized out>, pSrc=0x55dff85a53c0, pDst=0x55dff85a4d20, maskFormat=0x55dff82d74c8, xSrc=<optimized out>, ySrc=<optimized out>, nlist=1,
list=0x7ffcad041640, glyphs=0x7ffcad041a48) at damage.c:569
pScreen = <optimized out>
ps = 0x55dff82d80c0
pScrPriv = 0x55dff82d8820
#17 0x000055dff7091143 in ProcRenderCompositeGlyphs (client=0x55dff85e6de0) at render.c:1390
glyphSet = 0x55dff85a46c0
ps = 0x55dff82d80c0
pScrPriv = 0x55dff82d8820
#17 0x000055dff7091143 in ProcRenderCompositeGlyphs (client=0x55dff85e6de0) at render.c:1390
glyphSet = 0x55dff85a46c0
gs = 0
pSrc = 0x55dff85a53c0
pDst = 0x55dff85a4d20
pFormat = 0x55dff82d74c8
listsLocal = {{xOff = 23, yOff = 13, len = 1 '\001', format = 0x55dff82d74c8}, {xOff = 0, yOff = 0, len = 0 '\000', format = 0x0} <repeats 63 times>}
lists = <optimized out>
listsBase = 0x7ffcad041640
glyphsLocal = {0x55dff85a4ae0, 0x0 <repeats 118 times>, 0x4412c00000000000, 0x7fc65d14d744 <alloc_fwd+167>, 0x0, 0x0, 0x0, 0x55dff85a4d70, 0x55dff8419040, 0x60, 0x55dff85a2dfc,
0x0, 0x55dff85a4d10, 0x7fc65d14d83c <free+143>, 0x60, 0x4, 0x7fc65d3b2a2c <mal+108>, 0x7fc65d15e580 <ioctl+58>, 0x7fc65d3b2a28 <mal+104>, 0x55dff85c9420, 0x55dff8419040,
0x55dff85c94a0, 0x55dff85a2dfc, 0x55dff85d1440, 0x55dff737ee48 <dispatchException>, 0x7fc655c7ef8f <qxl_bo_decref+254>, 0x55dff85d1f60, 0x55dff82cdea0, 0x0, 0x100000001, 0x0,
0x7ffcad042220, 0x55dff85d1f60, 0x7fc65c327dcd <pixman_region_init_rects+119>, 0x55dff85a2dfc, 0x155c7f276, 0x7ffcad041f80, 0x7ffcad042220, 0x44090000f82cdea0,
0x7fc65d14d744 <alloc_fwd+167>, 0x1, 0x55dff85a4d20, 0x100000000, 0x55dff85a54f0, 0x55dff85e6de0, 0x60, 0x55dff85e6de0, 0x0, 0x4409c000f85a5490, 0x7fc65d14d83c <free+143>, 0x60,
0x30, 0x7fc65d3b2e4c <mal+1164>, 0x7fc65d15e580 <ioctl+58>, 0x55dff85a4d20, 0x55dff85a2e48, 0x55dff85e6de0, 0x0, 0x55dff85e6de0, 0x55dff85d1440,
0x55dff737ee48 <dispatchException>, 0x7fc655c7ef8f <qxl_bo_decref+254>, 0x55dff85a4f80, 0x55dff82cdea0, 0x7fc655ea0b40 <uxa_pixmap_index>, 0x7fc65c6d9113 <drmIoctl+30>,
0x55dff82cdea0, 0x55dff85a2e48, 0x55dff85a4f80, 0x9958196311bf3cc9, 0x55dff85e6de0, 0x7fc655c7f276 <qxl_bo_write_command+389>, 0x55dff85a4fe0, 0x55dff85a54a0, 0x1f82cdea0,
0x55dff82cdea0, 0x1, 0x55dff85a54a0, 0x100000000, 0x7ffcad042070, 0x55dff85a5508, 0x55dff82ce838, 0xb700000001, 0x55df00000001, 0x55dff82cdea0, 0x9958196311bf3cc9, 0x400000020,
0x7fc655c6f0d1 <push_drawable+48>, 0x55dff85a54a0, 0x55dff82cdea0, 0x55dff85a54a0, 0x7fc655c6f1c0 <submit_fill+233>, 0xffbbbbbbffffffff, 0x7ffcad042140, 0x55dff85a4fe0,
0x55dff82cdea0, 0x55dff85a54a0, 0x55dff85a5500, 0x7fc655ea0b40 <uxa_pixmap_index>, 0x7fc655c6fe03 <qxl_surface_solid+127>, 0x7fc655ea0b40 <uxa_pixmap_index>, 0x100000001, 0x0,
0x55dff85a4fe0, 0xffbbbbbb55ea0b40, 0x55dff82cdea0, 0x0, 0x100000001, 0x0, 0x9958196311bf3cc9, 0xbb0055eaffff, 0x7fc655c7abcd <qxl_solid+68>, 0x3ffffffff, 0x100000001, 0x0,
0x7ffcad042220, 0x55dff85a5300, 0x7fc655c8e88b <uxa_solid_rects+1482>, 0x55dff85a2e5c, 0x55dff85a2e54, 0x55dff85a53c0, 0x9958190100000001, 0x55dff85a53c0, 0x0, 0x55dfffffffff,
0xf85e6de0, 0x7ffcad042248, 0x0, 0x55dff85e6de0, 0x55dff85d1440, 0x1, 0x7fc65d17e3d5 <__clock_gettime+22>, 0xffffffff, 0x55dff7388cf0 <checkForInput>, 0x55dff85e6f40,
0x55dff70f89d3 <ReadRequestFromClient+46>, 0x55dff85a2e48, 0x55dff707359e <XaceHookDispatch+152>, 0x55dff85e6de0}
glyph = <optimized out>
glyphs = 0x7ffcad041a50
glyphsBase = 0x7ffcad041a48
elt = <optimized out>
buffer = 0x55dff85a2e8c "\212\a\002"
end = 0x55dff85a2e8c "\212\a\002"
nglyph = <optimized out>
nlist = 1
space = <optimized out>
size = 1
rc = <optimized out>
n = <optimized out>
stuff = <optimized out>
#18 0x000055dff6fe816b in Dispatch () at dispatch.c:430
clientReady = <optimized out>
result = <optimized out>
client = 0x55dff85e6de0
nready = 0
icheck = 0x55dff7388cf0 <checkForInput>
start_tick = 5
#19 0x000055dff6feb4f6 in dix_main (argc=6, argv=0x7ffcad0423a8, envp=<optimized out>) at main.c:300
i = <optimized out>
alwaysCheckForInput = {0, 1}
#20 0x00007fc65d14772f in __libc_start_main (main=0x55dff6fd941c <main>, argc=6, argv=0x7ffcad0423a8) at src/env/__libc_start_main.c:74
envp = 0x7ffcad0423e0
#21 0x000055dff6fd945c in _start_c (p=<optimized out>) at crt/crt1.c:17
argc = <optimized out>
argv = <optimized out>
#22 0x000055dff6fd9437 in _start ()
No symbol table info available.
[-- Attachment #3: sse2_blt-assembler-dump.txt --]
[-- Type: text/plain, Size: 14470 bytes --]
(gdb) disass
Dump of assembler code for function sse2_blt:
0x00007fc65c3d519f <+0>: sub $0x170,%rsp
0x00007fc65c3d51a6 <+7>: mov %rdi,-0x50(%rsp)
0x00007fc65c3d51ab <+12>: mov %rsi,-0x58(%rsp)
0x00007fc65c3d51b0 <+17>: mov %rdx,-0x60(%rsp)
0x00007fc65c3d51b5 <+22>: mov %ecx,-0x64(%rsp)
0x00007fc65c3d51b9 <+26>: mov %r8d,-0x68(%rsp)
0x00007fc65c3d51be <+31>: mov %r9d,-0x6c(%rsp)
0x00007fc65c3d51c3 <+36>: mov -0x6c(%rsp),%eax
0x00007fc65c3d51c7 <+40>: cmp 0x178(%rsp),%eax
0x00007fc65c3d51ce <+47>: je 0x7fc65c3d51da <sse2_blt+59>
0x00007fc65c3d51d0 <+49>: mov $0x0,%eax
0x00007fc65c3d51d5 <+54>: jmpq 0x7fc65c3d56af <sse2_blt+1296>
0x00007fc65c3d51da <+59>: cmpl $0x10,-0x6c(%rsp)
0x00007fc65c3d51df <+64>: jne 0x7fc65c3d527f <sse2_blt+224>
0x00007fc65c3d51e5 <+70>: mov -0x64(%rsp),%eax
0x00007fc65c3d51e9 <+74>: shl $0x2,%eax
0x00007fc65c3d51ec <+77>: mov %eax,%edx
0x00007fc65c3d51ee <+79>: shr $0x1f,%edx
0x00007fc65c3d51f1 <+82>: add %edx,%eax
0x00007fc65c3d51f3 <+84>: sar %eax
0x00007fc65c3d51f5 <+86>: mov %eax,-0x64(%rsp)
0x00007fc65c3d51f9 <+90>: mov -0x68(%rsp),%eax
0x00007fc65c3d51fd <+94>: shl $0x2,%eax
0x00007fc65c3d5200 <+97>: mov %eax,%edx
0x00007fc65c3d5202 <+99>: shr $0x1f,%edx
0x00007fc65c3d5205 <+102>: add %edx,%eax
0x00007fc65c3d5207 <+104>: sar %eax
0x00007fc65c3d5209 <+106>: mov %eax,-0x68(%rsp)
0x00007fc65c3d520d <+110>: mov -0x64(%rsp),%eax
0x00007fc65c3d5211 <+114>: imul 0x188(%rsp),%eax
0x00007fc65c3d5219 <+122>: movslq %eax,%rdx
0x00007fc65c3d521c <+125>: mov 0x180(%rsp),%eax
0x00007fc65c3d5223 <+132>: cltq
0x00007fc65c3d5225 <+134>: add %rdx,%rax
0x00007fc65c3d5228 <+137>: lea (%rax,%rax,1),%rdx
0x00007fc65c3d522c <+141>: mov -0x58(%rsp),%rax
0x00007fc65c3d5231 <+146>: add %rdx,%rax
0x00007fc65c3d5234 <+149>: mov %rax,-0x38(%rsp)
0x00007fc65c3d5239 <+154>: mov -0x68(%rsp),%eax
0x00007fc65c3d523d <+158>: imul 0x198(%rsp),%eax
0x00007fc65c3d5245 <+166>: movslq %eax,%rdx
0x00007fc65c3d5248 <+169>: mov 0x190(%rsp),%eax
0x00007fc65c3d524f <+176>: cltq
0x00007fc65c3d5251 <+178>: add %rdx,%rax
0x00007fc65c3d5254 <+181>: lea (%rax,%rax,1),%rdx
0x00007fc65c3d5258 <+185>: mov -0x60(%rsp),%rax
0x00007fc65c3d525d <+190>: add %rdx,%rax
0x00007fc65c3d5260 <+193>: mov %rax,-0x30(%rsp)
0x00007fc65c3d5265 <+198>: mov 0x1a0(%rsp),%eax
0x00007fc65c3d526c <+205>: add %eax,%eax
0x00007fc65c3d526e <+207>: mov %eax,-0x40(%rsp)
0x00007fc65c3d5272 <+211>: shll -0x64(%rsp)
0x00007fc65c3d5276 <+215>: shll -0x68(%rsp)
0x00007fc65c3d527a <+219>: jmpq 0x7fc65c3d5691 <sse2_blt+1266>
0x00007fc65c3d527f <+224>: cmpl $0x20,-0x6c(%rsp)
0x00007fc65c3d5284 <+229>: jne 0x7fc65c3d5333 <sse2_blt+404>
0x00007fc65c3d528a <+235>: mov -0x64(%rsp),%eax
0x00007fc65c3d528e <+239>: shl $0x2,%eax
0x00007fc65c3d5291 <+242>: lea 0x3(%rax),%edx
0x00007fc65c3d5294 <+245>: test %eax,%eax
0x00007fc65c3d5296 <+247>: cmovs %edx,%eax
0x00007fc65c3d5299 <+250>: sar $0x2,%eax
0x00007fc65c3d529c <+253>: mov %eax,-0x64(%rsp)
0x00007fc65c3d52a0 <+257>: mov -0x68(%rsp),%eax
0x00007fc65c3d52a4 <+261>: shl $0x2,%eax
0x00007fc65c3d52a7 <+264>: lea 0x3(%rax),%edx
0x00007fc65c3d52aa <+267>: test %eax,%eax
0x00007fc65c3d52ac <+269>: cmovs %edx,%eax
0x00007fc65c3d52af <+272>: sar $0x2,%eax
0x00007fc65c3d52b2 <+275>: mov %eax,-0x68(%rsp)
0x00007fc65c3d52b6 <+279>: mov -0x64(%rsp),%eax
0x00007fc65c3d52ba <+283>: imul 0x188(%rsp),%eax
0x00007fc65c3d52c2 <+291>: movslq %eax,%rdx
0x00007fc65c3d52c5 <+294>: mov 0x180(%rsp),%eax
0x00007fc65c3d52cc <+301>: cltq
0x00007fc65c3d52ce <+303>: add %rdx,%rax
0x00007fc65c3d52d1 <+306>: lea 0x0(,%rax,4),%rdx
0x00007fc65c3d52d9 <+314>: mov -0x58(%rsp),%rax
0x00007fc65c3d52de <+319>: add %rdx,%rax
0x00007fc65c3d52e1 <+322>: mov %rax,-0x38(%rsp)
0x00007fc65c3d52e6 <+327>: mov -0x68(%rsp),%eax
0x00007fc65c3d52ea <+331>: imul 0x198(%rsp),%eax
0x00007fc65c3d52f2 <+339>: movslq %eax,%rdx
0x00007fc65c3d52f5 <+342>: mov 0x190(%rsp),%eax
0x00007fc65c3d52fc <+349>: cltq
0x00007fc65c3d52fe <+351>: add %rdx,%rax
0x00007fc65c3d5301 <+354>: lea 0x0(,%rax,4),%rdx
0x00007fc65c3d5309 <+362>: mov -0x60(%rsp),%rax
0x00007fc65c3d530e <+367>: add %rdx,%rax
0x00007fc65c3d5311 <+370>: mov %rax,-0x30(%rsp)
0x00007fc65c3d5316 <+375>: mov 0x1a0(%rsp),%eax
0x00007fc65c3d531d <+382>: shl $0x2,%eax
0x00007fc65c3d5320 <+385>: mov %eax,-0x40(%rsp)
0x00007fc65c3d5324 <+389>: shll $0x2,-0x64(%rsp)
0x00007fc65c3d5329 <+394>: shll $0x2,-0x68(%rsp)
0x00007fc65c3d532e <+399>: jmpq 0x7fc65c3d5691 <sse2_blt+1266>
0x00007fc65c3d5333 <+404>: mov $0x0,%eax
0x00007fc65c3d5338 <+409>: jmpq 0x7fc65c3d56af <sse2_blt+1296>
0x00007fc65c3d533d <+414>: mov -0x38(%rsp),%rax
0x00007fc65c3d5342 <+419>: mov %rax,-0x28(%rsp)
0x00007fc65c3d5347 <+424>: mov -0x30(%rsp),%rax
0x00007fc65c3d534c <+429>: mov %rax,-0x20(%rsp)
0x00007fc65c3d5351 <+434>: mov -0x64(%rsp),%eax
0x00007fc65c3d5355 <+438>: cltq
0x00007fc65c3d5357 <+440>: add %rax,-0x38(%rsp)
0x00007fc65c3d535c <+445>: mov -0x68(%rsp),%eax
0x00007fc65c3d5360 <+449>: cltq
0x00007fc65c3d5362 <+451>: add %rax,-0x30(%rsp)
0x00007fc65c3d5367 <+456>: mov -0x40(%rsp),%eax
0x00007fc65c3d536b <+460>: mov %eax,-0x3c(%rsp)
0x00007fc65c3d536f <+464>: jmp 0x7fc65c3d5392 <sse2_blt+499>
0x00007fc65c3d5371 <+466>: mov -0x28(%rsp),%rax
0x00007fc65c3d5376 <+471>: movzwl (%rax),%edx
0x00007fc65c3d5379 <+474>: mov -0x20(%rsp),%rax
0x00007fc65c3d537e <+479>: mov %dx,(%rax)
0x00007fc65c3d5381 <+482>: subl $0x2,-0x3c(%rsp)
0x00007fc65c3d5386 <+487>: addq $0x2,-0x28(%rsp)
0x00007fc65c3d538c <+493>: addq $0x2,-0x20(%rsp)
0x00007fc65c3d5392 <+499>: cmpl $0x1,-0x3c(%rsp)
0x00007fc65c3d5397 <+504>: jle 0x7fc65c3d53c7 <sse2_blt+552>
0x00007fc65c3d5399 <+506>: mov -0x20(%rsp),%rax
0x00007fc65c3d539e <+511>: and $0x3,%eax
0x00007fc65c3d53a1 <+514>: test %rax,%rax
0x00007fc65c3d53a4 <+517>: jne 0x7fc65c3d5371 <sse2_blt+466>
0x00007fc65c3d53a6 <+519>: jmp 0x7fc65c3d53c7 <sse2_blt+552>
0x00007fc65c3d53a8 <+521>: mov -0x28(%rsp),%rax
0x00007fc65c3d53ad <+526>: mov (%rax),%edx
0x00007fc65c3d53af <+528>: mov -0x20(%rsp),%rax
0x00007fc65c3d53b4 <+533>: mov %edx,(%rax)
0x00007fc65c3d53b6 <+535>: subl $0x4,-0x3c(%rsp)
0x00007fc65c3d53bb <+540>: addq $0x4,-0x28(%rsp)
0x00007fc65c3d53c1 <+546>: addq $0x4,-0x20(%rsp)
0x00007fc65c3d53c7 <+552>: cmpl $0x3,-0x3c(%rsp)
0x00007fc65c3d53cc <+557>: jle 0x7fc65c3d55bb <sse2_blt+1052>
0x00007fc65c3d53d2 <+563>: mov -0x20(%rsp),%rax
0x00007fc65c3d53d7 <+568>: and $0xf,%eax
0x00007fc65c3d53da <+571>: test %rax,%rax
0x00007fc65c3d53dd <+574>: jne 0x7fc65c3d53a8 <sse2_blt+521>
0x00007fc65c3d53df <+576>: jmpq 0x7fc65c3d55bb <sse2_blt+1052>
0x00007fc65c3d53e4 <+581>: mov -0x28(%rsp),%rax
0x00007fc65c3d53e9 <+586>: mov %rax,-0x10(%rsp)
0x00007fc65c3d53ee <+591>: mov -0x10(%rsp),%rax
0x00007fc65c3d53f3 <+596>: mov %rax,0x70(%rsp)
0x00007fc65c3d53f8 <+601>: mov 0x70(%rsp),%rax
0x00007fc65c3d53fd <+606>: movdqu (%rax),%xmm0
0x00007fc65c3d5401 <+610>: movaps %xmm0,0x88(%rsp)
0x00007fc65c3d5409 <+618>: mov -0x28(%rsp),%rax
0x00007fc65c3d540e <+623>: add $0x10,%rax
0x00007fc65c3d5412 <+627>: mov %rax,-0x8(%rsp)
0x00007fc65c3d5417 <+632>: mov -0x8(%rsp),%rax
0x00007fc65c3d541c <+637>: mov %rax,0x68(%rsp)
0x00007fc65c3d5421 <+642>: mov 0x68(%rsp),%rax
0x00007fc65c3d5426 <+647>: movdqu (%rax),%xmm0
0x00007fc65c3d542a <+651>: movaps %xmm0,0x98(%rsp)
0x00007fc65c3d5432 <+659>: mov -0x28(%rsp),%rax
0x00007fc65c3d5437 <+664>: add $0x20,%rax
0x00007fc65c3d543b <+668>: mov %rax,(%rsp)
0x00007fc65c3d543f <+672>: mov (%rsp),%rax
0x00007fc65c3d5443 <+676>: mov %rax,0x60(%rsp)
0x00007fc65c3d5448 <+681>: mov 0x60(%rsp),%rax
0x00007fc65c3d544d <+686>: movdqu (%rax),%xmm0
0x00007fc65c3d5451 <+690>: movaps %xmm0,0xa8(%rsp)
0x00007fc65c3d5459 <+698>: mov -0x28(%rsp),%rax
0x00007fc65c3d545e <+703>: add $0x30,%rax
0x00007fc65c3d5462 <+707>: mov %rax,0x8(%rsp)
0x00007fc65c3d5467 <+712>: mov 0x8(%rsp),%rax
0x00007fc65c3d546c <+717>: mov %rax,0x58(%rsp)
0x00007fc65c3d5471 <+722>: mov 0x58(%rsp),%rax
0x00007fc65c3d5476 <+727>: movdqu (%rax),%xmm0
0x00007fc65c3d547a <+731>: movaps %xmm0,0xb8(%rsp)
0x00007fc65c3d5482 <+739>: mov -0x20(%rsp),%rax
0x00007fc65c3d5487 <+744>: mov %rax,0x10(%rsp)
0x00007fc65c3d548c <+749>: movdqa 0x88(%rsp),%xmm0
0x00007fc65c3d5495 <+758>: movaps %xmm0,0x128(%rsp)
0x00007fc65c3d549d <+766>: mov 0x10(%rsp),%rax
0x00007fc65c3d54a2 <+771>: mov %rax,0x50(%rsp)
0x00007fc65c3d54a7 <+776>: movdqa 0x128(%rsp),%xmm0
0x00007fc65c3d54b0 <+785>: movaps %xmm0,0x138(%rsp)
0x00007fc65c3d54b8 <+793>: mov 0x50(%rsp),%rax
0x00007fc65c3d54bd <+798>: movdqa 0x138(%rsp),%xmm0
0x00007fc65c3d54c6 <+807>: movaps %xmm0,(%rax)
0x00007fc65c3d54c9 <+810>: mov -0x20(%rsp),%rax
0x00007fc65c3d54ce <+815>: add $0x10,%rax
0x00007fc65c3d54d2 <+819>: mov %rax,0x18(%rsp)
0x00007fc65c3d54d7 <+824>: movdqa 0x98(%rsp),%xmm0
0x00007fc65c3d54e0 <+833>: movaps %xmm0,0x108(%rsp)
0x00007fc65c3d54e8 <+841>: mov 0x18(%rsp),%rax
0x00007fc65c3d54ed <+846>: mov %rax,0x48(%rsp)
0x00007fc65c3d54f2 <+851>: movdqa 0x108(%rsp),%xmm0
0x00007fc65c3d54fb <+860>: movaps %xmm0,0x118(%rsp)
0x00007fc65c3d5503 <+868>: mov 0x48(%rsp),%rax
0x00007fc65c3d5508 <+873>: movdqa 0x118(%rsp),%xmm0
0x00007fc65c3d5511 <+882>: movaps %xmm0,(%rax)
0x00007fc65c3d5514 <+885>: mov -0x20(%rsp),%rax
0x00007fc65c3d5519 <+890>: add $0x20,%rax
0x00007fc65c3d551d <+894>: mov %rax,0x20(%rsp)
0x00007fc65c3d5522 <+899>: movdqa 0xa8(%rsp),%xmm0
0x00007fc65c3d552b <+908>: movaps %xmm0,0xe8(%rsp)
0x00007fc65c3d5533 <+916>: mov 0x20(%rsp),%rax
0x00007fc65c3d5538 <+921>: mov %rax,0x40(%rsp)
0x00007fc65c3d553d <+926>: movdqa 0xe8(%rsp),%xmm0
0x00007fc65c3d5546 <+935>: movaps %xmm0,0xf8(%rsp)
0x00007fc65c3d554e <+943>: mov 0x40(%rsp),%rax
0x00007fc65c3d5553 <+948>: movdqa 0xf8(%rsp),%xmm0
0x00007fc65c3d555c <+957>: movaps %xmm0,(%rax)
0x00007fc65c3d555f <+960>: mov -0x20(%rsp),%rax
0x00007fc65c3d5564 <+965>: add $0x30,%rax
0x00007fc65c3d5568 <+969>: mov %rax,0x30(%rsp)
0x00007fc65c3d556d <+974>: movdqa 0xb8(%rsp),%xmm0
0x00007fc65c3d5576 <+983>: movaps %xmm0,0xc8(%rsp)
0x00007fc65c3d557e <+991>: mov 0x30(%rsp),%rax
0x00007fc65c3d5583 <+996>: mov %rax,0x38(%rsp)
0x00007fc65c3d5588 <+1001>: movdqa 0xc8(%rsp),%xmm0
0x00007fc65c3d5591 <+1010>: movaps %xmm0,0xd8(%rsp)
0x00007fc65c3d5599 <+1018>: mov 0x38(%rsp),%rax
0x00007fc65c3d559e <+1023>: movdqa 0xd8(%rsp),%xmm0
0x00007fc65c3d55a7 <+1032>: movaps %xmm0,(%rax)
0x00007fc65c3d55aa <+1035>: addq $0x40,-0x28(%rsp)
0x00007fc65c3d55b0 <+1041>: addq $0x40,-0x20(%rsp)
0x00007fc65c3d55b6 <+1047>: subl $0x40,-0x3c(%rsp)
0x00007fc65c3d55bb <+1052>: cmpl $0x3f,-0x3c(%rsp)
0x00007fc65c3d55c0 <+1057>: jg 0x7fc65c3d53e4 <sse2_blt+581>
0x00007fc65c3d55c6 <+1063>: jmp 0x7fc65c3d563a <sse2_blt+1179>
0x00007fc65c3d55c8 <+1065>: mov -0x28(%rsp),%rax
0x00007fc65c3d55cd <+1070>: mov %rax,0x28(%rsp)
0x00007fc65c3d55d2 <+1075>: mov 0x28(%rsp),%rax
0x00007fc65c3d55d7 <+1080>: mov %rax,0x80(%rsp)
0x00007fc65c3d55df <+1088>: mov 0x80(%rsp),%rax
0x00007fc65c3d55e7 <+1096>: movdqu (%rax),%xmm0
0x00007fc65c3d55eb <+1100>: mov -0x20(%rsp),%rax
0x00007fc65c3d55f0 <+1105>: mov %rax,-0x18(%rsp)
0x00007fc65c3d55f5 <+1110>: movaps %xmm0,0x148(%rsp)
0x00007fc65c3d55fd <+1118>: mov -0x18(%rsp),%rax
0x00007fc65c3d5602 <+1123>: mov %rax,0x78(%rsp)
0x00007fc65c3d5607 <+1128>: movdqa 0x148(%rsp),%xmm0
0x00007fc65c3d5610 <+1137>: movaps %xmm0,0x158(%rsp)
0x00007fc65c3d5618 <+1145>: mov 0x78(%rsp),%rax
0x00007fc65c3d561d <+1150>: movdqa 0x158(%rsp),%xmm0
=> 0x00007fc65c3d5626 <+1159>: movaps %xmm0,(%rax)
0x00007fc65c3d5629 <+1162>: subl $0x10,-0x3c(%rsp)
0x00007fc65c3d562e <+1167>: addq $0x10,-0x20(%rsp)
0x00007fc65c3d5634 <+1173>: addq $0x10,-0x28(%rsp)
0x00007fc65c3d563a <+1179>: cmpl $0xf,-0x3c(%rsp)
0x00007fc65c3d563f <+1184>: jg 0x7fc65c3d55c8 <sse2_blt+1065>
0x00007fc65c3d5641 <+1186>: jmp 0x7fc65c3d5662 <sse2_blt+1219>
0x00007fc65c3d5643 <+1188>: mov -0x28(%rsp),%rax
0x00007fc65c3d5648 <+1193>: mov (%rax),%edx
0x00007fc65c3d564a <+1195>: mov -0x20(%rsp),%rax
0x00007fc65c3d564f <+1200>: mov %edx,(%rax)
0x00007fc65c3d5651 <+1202>: subl $0x4,-0x3c(%rsp)
0x00007fc65c3d5656 <+1207>: addq $0x4,-0x28(%rsp)
0x00007fc65c3d565c <+1213>: addq $0x4,-0x20(%rsp)
0x00007fc65c3d5662 <+1219>: cmpl $0x3,-0x3c(%rsp)
0x00007fc65c3d5667 <+1224>: jg 0x7fc65c3d5643 <sse2_blt+1188>
0x00007fc65c3d5669 <+1226>: cmpl $0x1,-0x3c(%rsp)
0x00007fc65c3d566e <+1231>: jle 0x7fc65c3d5691 <sse2_blt+1266>
0x00007fc65c3d5670 <+1233>: mov -0x28(%rsp),%rax
0x00007fc65c3d5675 <+1238>: movzwl (%rax),%edx
0x00007fc65c3d5678 <+1241>: mov -0x20(%rsp),%rax
0x00007fc65c3d567d <+1246>: mov %dx,(%rax)
0x00007fc65c3d5680 <+1249>: subl $0x2,-0x3c(%rsp)
0x00007fc65c3d5685 <+1254>: addq $0x2,-0x28(%rsp)
0x00007fc65c3d568b <+1260>: addq $0x2,-0x20(%rsp)
0x00007fc65c3d5691 <+1266>: mov 0x1a8(%rsp),%eax
0x00007fc65c3d5698 <+1273>: lea -0x1(%rax),%edx
0x00007fc65c3d569b <+1276>: mov %edx,0x1a8(%rsp)
0x00007fc65c3d56a2 <+1283>: test %eax,%eax
0x00007fc65c3d56a4 <+1285>: jne 0x7fc65c3d533d <sse2_blt+414>
0x00007fc65c3d56aa <+1291>: mov $0x1,%eax
0x00007fc65c3d56af <+1296>: add $0x170,%rsp
0x00007fc65c3d56b6 <+1303>: retq
End of assembler dump.
[-- Attachment #4: Type: text/plain, Size: 126 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next reply other threads:[~2016-04-05 23:38 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-05 23:38 wogiz [this message]
2016-04-05 23:57 ` Bug in x86 instruction emulator? Mihai Donțu
2016-04-06 0:02 ` Mihai Donțu
2016-04-06 1:48 ` wogiz
2016-04-06 1:26 ` wogiz
2016-04-06 8:55 ` Andrew Cooper
2016-04-07 1:26 ` wogiz
2016-04-07 2:04 ` Jan Beulich
2016-04-08 1:43 ` wogiz
2016-04-15 17:33 ` wogiz
2016-04-15 17:44 ` Andrew Cooper
2016-04-16 4:06 ` wogiz
2016-05-04 16:02 ` Jan Beulich
2016-05-04 16:04 ` Wei Liu
2016-05-04 16:06 ` Andrew Cooper
2016-05-17 16:53 ` William Z.
2016-05-17 17:03 ` Andrew Cooper
2016-05-18 9:12 ` Jan Beulich
2016-05-20 16:44 ` William Z.
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20e259d208b95167bb495a6ed0bf684d@openmailbox.org \
--to=wogiz@openmailbox.org \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.