http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51524
--- Comment #2 from Uros Bizjak <ubizjak at gmail dot com> 2011-12-13 14:21:37 UTC --- Index: gcc.target/i386/bmi2-mulx32-1.c =================================================================== --- gcc.target/i386/bmi2-mulx32-1.c (revision 182271) +++ gcc.target/i386/bmi2-mulx32-1.c (working copy) @@ -15,7 +15,7 @@ return res; } -__attribute__((noinline)) +__attribute__((noinline, regparm (2))) unsigned long long gen_mulx (unsigned a, unsigned b) { Index: gcc.target/i386/bmi2-mulx32-2.c =================================================================== --- gcc.target/i386/bmi2-mulx32-2.c (revision 182271) +++ gcc.target/i386/bmi2-mulx32-2.c (working copy) @@ -17,7 +17,7 @@ return res; } -__attribute__((noinline)) +__attribute__((noinline, regparm (2))) unsigned calc_mulx_u32 (unsigned x, unsigned y, unsigned *res_h) { return (unsigned) _mulx_u32 (x, y, res_h);