Force use of indirect function calls in inline assembler.
authorKevin O'Connor <kevin@koconnor.net>
Sun, 21 Mar 2010 00:41:38 +0000 (20:41 -0400)
committerKevin O'Connor <kevin@koconnor.net>
Sun, 21 Mar 2010 00:41:38 +0000 (20:41 -0400)
commitbca0736f5a6df16d0d98a877d695d406a9be88b7
tree10b87622bea1f2eccbb76b1234bdf9b0f429c456
parentd7eb27efa3f9265dca8357cfa05d9e0560fd4534
Force use of indirect function calls in inline assembler.

For indirect calls, place function address in a register and call it.
This is less optimal when gcc can inline the code and the destination
address is known at compile time.  However, older gcc compilers don't
do as well with inlining, and they then mess up the code generation.
There doesn't seem to be a way to tell gcc how to emit the code
correctly for both immediate addresses and register addresses, so fall
back to a safe way.

Also, reduce params to stack_hop to avoid register assignment issues.
src/block.c
src/stacks.c
src/util.h