On Fri, 2015-02-20 at 16:46 +0100, Vladimir 'φ-coder/phcoder' Serbinenko wrote: > > All labels are local to the source file. If I use %eax instead of %ebx > in first example I get the short code. For the second example how does > clang detect that offset fits into one byte for issuing EB XX sequence > which is issued in resulting file in several places. Can we use the > same mechanism to detect when issuing 16-bit reference and keep 32-bit > one for external references?
It's been a while since I looked at this... but I think for the short jumps we just emit the 8-bit version and there's a fixup which can go back and re-emit the instruction in 32-bit mode if it finds it doesn't fit? Do we just need to support a similar fixup for promoting 16-bit to 32-bit relocations? -- dwmw2
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel