]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[int13] Fix compilation on some versions of gcc
authorMichael Brown <mcb30@ipxe.org>
Tue, 10 Apr 2012 11:55:54 +0000 (12:55 +0100)
committerMichael Brown <mcb30@ipxe.org>
Tue, 10 Apr 2012 12:00:46 +0000 (13:00 +0100)
Using __from_text16() and __from_data16() in inline asm constraints
sometimes defeats gcc's ability to simplify expressions down to
compile-time constants.

Reported-by: Jason Kohles <jkohles@palantir.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/arch/i386/interface/pcbios/int13.c

index 6d6d7f878d03da77dd13d499aa4f8c0d9a623ced..0a1e7748452ecff92baefb16c639e7a42100d7fc 100644 (file)
@@ -1499,16 +1499,15 @@ static void int13_hook_vector ( void ) {
                             "cmpb $0x08, -1(%%bp)\n\t"
                             "jne 3f\n\t"
                             "testb $0x80, %%dl\n\t"
-                            "movb %%cs:%c1, %%dl\n\t"
+                            "movb %%cs:num_drives, %%dl\n\t"
                             "jnz 3f\n\t"
-                            "movb %%cs:%c2, %%dl\n\t"
+                            "movb %%cs:num_fdds, %%dl\n\t"
                             /* Return */
                             "\n3:\n\t"
                             "movw %%bp, %%sp\n\t"
                             "popw %%bp\n\t"
                             "iret\n\t" )
-              : : "i" ( int13 ), "i" ( __from_text16 ( &num_drives ) ),
-                  "i" ( __from_text16 ( &num_fdds ) ) );
+              : : "i" ( int13 ) );
 
        hook_bios_interrupt ( 0x13, ( unsigned int ) int13_wrapper,
                              &int13_vector );