summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Brown2012-04-10 13:55:54 +0200
committerMichael Brown2012-04-10 14:00:46 +0200
commit3c13d68f50d556141fb42e58ea2358a54f40f33a (patch)
tree9e7b8ef69a76eaaae3dbbb0c572ea861cdef5006
parent[syslog] Add basic support for encrypted syslog via TLS (diff)
downloadipxe-3c13d68f50d556141fb42e58ea2358a54f40f33a.tar.gz
ipxe-3c13d68f50d556141fb42e58ea2358a54f40f33a.tar.xz
ipxe-3c13d68f50d556141fb42e58ea2358a54f40f33a.zip
[int13] Fix compilation on some versions of gcc
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>
-rw-r--r--src/arch/i386/interface/pcbios/int13.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/arch/i386/interface/pcbios/int13.c b/src/arch/i386/interface/pcbios/int13.c
index 6d6d7f878..0a1e77484 100644
--- a/src/arch/i386/interface/pcbios/int13.c
+++ b/src/arch/i386/interface/pcbios/int13.c
@@ -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 );