Bug 389116 - vex amd64->IR: unhandled instruction bytes: 0xC5 0xFC 0xC2 0xC0 0xF 0xC4 0xC2 0x7D 0x18 0x49
Summary: vex amd64->IR: unhandled instruction bytes: 0xC5 0xFC 0xC2 0xC0 0xF 0xC4 0xC2...
Status: REPORTED
Alias: None
Product: valgrind
Classification: Developer tools
Component: vex (other bugs)
Version First Reported In: 3.13.0
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Julian Seward
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-01-17 16:10 UTC by Oliver Stoeneberg
Modified: 2018-01-17 23:27 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Oliver Stoeneberg 2018-01-17 16:10:15 UTC
An application using SDL1 on ubuntu 16.04 fails with the following:

vex amd64->IR: unhandled instruction bytes: 0xC5 0xFC 0xC2 0xC0 0xF 0xC4 0xC2 0x7D 0x18 0x49
vex amd64->IR:   REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
vex amd64->IR:   VEX=1 VEX.L=1 VEX.nVVVV=0x0 ESC=0F
vex amd64->IR:   PFX.66=0 PFX.F2=0 PFX.F3=0
==38658== valgrind: Unrecognised instruction at address 0xa324512.
==38658==    at 0xA324512: ???
==38658==    by 0x1B35B177: ??? (in /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so)
==38658==    by 0x1B35B4E8: ??? (in /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so)
==38658==    by 0x1B35BBC3: ??? (in /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so)
==38658==    by 0x1B35B9E6: ??? (in /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so)
==38658==    by 0xCC7A6B9: start_thread (pthread_create.c:333)
==38658==    by 0xF98241C: clone (clone.S:109)

Unfortunately there is no matching *-dbg or *-dbgsym package I can install so there's no info on what line causes this.
Comment 1 Oliver Stoeneberg 2018-01-17 23:27:42 UTC
The matching *-dbgsym package just showed up and there's a useful stack trace now

==45626== valgrind: Unrecognised instruction at address 0xa324512.
==45626==    at 0xA324512: ???
==45626==    by 0x1B35B177: lp_rast_shade_tile (lp_rast.c:352)
==45626==    by 0x1B35B4E8: do_rasterize_bin (lp_rast.c:609)
==45626==    by 0x1B35B4E8: rasterize_bin (lp_rast.c:628)
==45626==    by 0x1B35B4E8: rasterize_scene (lp_rast.c:688)
==45626==    by 0x1B35BBC3: thread_function (lp_rast.c:829)
==45626==    by 0x1B35B9E6: impl_thrd_routine (threads_posix.h:87)
==45626==    by 0xCC7A6B9: start_thread (pthread_create.c:333)
==45626==    by 0xF98241C: clone (clone.S:109)

Unfortunately that is not that helpful since the code at that line is a call to the JIT

         variant->jit_function[RAST_WHOLE]( &state->jit_context,
                                            tile_x + x, tile_y + y,
                                            inputs->frontfacing,
                                            GET_A0(inputs),
                                            GET_DADX(inputs),
                                            GET_DADY(inputs),
                                            color,
                                            depth,
                                            0xffff,
                                            &task->thread_data,
                                            stride,
                                            depth_stride);