arch_x86: reimplement address decoding