Actually, The only functions that need tag bits are the evaluation functions and they are only called from the eval function, so all we need to do is force them all to use the same instruction set then we can just set the correct lower bits in eval. If gcc can't be persuaded to do this, then a simple assembly stub would work.