Thanks for the review, Henri.
I don't know if there's a reason the general approach couldn't work, but the code in the patch is gcc specific, so I think it should at least be protected by __GNUC__ in addition to __i386__.
We don't protect by __GNUC__ for any of our other assembly either, even though it all uses GNU assembly syntax. So personally I think that part's okay. --Juan