Project

General

Profile

Actions

Emulator Issues #4450

closed

Crash in SSSE3 Code

Added by bloody.albatross about 13 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

SSE3 functions like TexCoord_ReadIndex16_Float2_SSSE3 or Pos_ReadIndex_Float_SSSE3 crash dolphin. When I define _M_SSE as 0x300 the crashes are fixed.

SVN Revision: 7498
OS: Fedora Linux 14 x86_64
CPU: Intel(R) Core(TM)2 Duo CPU E6750 @ 2.66GHz
cat /proc/cpuinfo|grep flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow vnmi flexpriority

Here is a stack trace:
#0 0x00000000007c89ad in TexCoord_ReadIndex16_Float2_SSSE3() ()
#1 0x0000000042a81040 in ?? ()
#2 0x00000000007bca8f in VertexLoader::RunVertices(int, int, int) ()
#3 0x00000000007bdbe5 in VertexLoaderManager::RunVertices(int, int, int) ()
#4 0x0000000000798d1d in Decode() ()
#5 0x00000000007985e3 in InterpretDisplayList(unsigned int, unsigned int) ()
#6 0x0000000000798658 in ExecuteDisplayList(unsigned int, unsigned int) ()
#7 0x0000000000798c43 in Decode() ()
#8 0x0000000000799234 in OpcodeDecoder_Run(bool) ()
#9 0x0000000000794f63 in RunGpuLoop() ()
#10 0x000000000079759f in VideoBackendHardware::Video_EnterLoop() ()
#11 0x00000000005d35aa in Core::EmuThread() ()
#12 0x00000000005d487b in std::thread::Func<void ()()>::Run() ()
#13 0x00000000005d4852 in void
std::thread::RunAndDelete<std::thread::Func<void ()()> >(void) ()
#14 0x00007ffff2d1dccb in start_thread (arg=0x7fffe601e700) at pthread_create.c:301
#15 0x00007ffff1e75c2d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Actions #2

Updated by bloody.albatross about 13 years ago

Bump. The situation on this hasn't changed.

Actions #3

Updated by pholklore1 almost 13 years ago

It's a stack/variable alignment problem (gcc isn't aligning __m128i locals on 16-byte boun. I'm attaching the patch I'm using to work around this. There may be a better way, I haven't investigated fully.

Actions #4

Updated by delroth almost 13 years ago

  • Status changed from New to Fixed

Fixed by r59072adc32bf.

Actions

Also available in: Atom PDF