tango-controls / cppTango

Moved to gitlab
http://tango-controls.org
41 stars 34 forks source link

cppapi/server/jpeg_mmx/jpeg_dct_mmx.cpp: Avoid using the wrong GCC fu… #828

Closed t-b closed 3 years ago

t-b commented 3 years ago

…nction

The JPEG code has MMX assembler routines which have optimized code for 32bit intel architectures.

This code uses GCC internals like __i686.get_pc_thunk.bx, which loads the position of the code into a register. This is required for position independent code 1.

The name of that function changed in the GCC repository in a3330c9d (morestack.S (__i686.get_pc_thunk.bx): Rename to..., 2011-05-04).

But the new name is only present since 4.7.0. So we would need to either support both names or realize that we already have a fallback.

By using the fallback which uses the exact same code as GCC we have less code and less branching on versions.

This bug was already reported earlier 2, but the fix never made it into the code.

Backport of #783.