core: align stack on a 32bit boundary

Fixes #1267.
What's the advantage of these GCC features over the generic solution?