core: align stack on a 32bit boundary

Fixes #1267.
I wasn't aware of the char == 1 byte definition, but okay, then it seems valid.