+2013-11-24 Vladimir Serbinenko <phcoder@gmail.com>
+
+ With Apple assembly in .macro environvemnt you have to use $$ instead
+ of $. So introduce new preprocessor macro MACRO_DOLLAR(x) which expands
+ to $$x on Apple and to $x on everything else.
+
2013-11-24 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/Makefile.am: Use correct TARGET_OBJCONV rather than
* Perform floppy probe.
*/
- movw $probe_values - 1, %si
+ movw MACRO_DOLLAR(probe_values) - 1, %si
LOCAL(probe_loop):
/* reset floppy controller INT 13h AH=0 */
xorw %ax, %ax
- int $0x13
+ int MACRO_DOLLAR(0x13)
incw %si
movb (%si), %cl
1:
/* perform read */
- movw $GRUB_BOOT_MACHINE_BUFFER_SEG, %bx
+ movw MACRO_DOLLAR(GRUB_BOOT_MACHINE_BUFFER_SEG), %bx
movw %bx, %es
xorw %bx, %bx
- movw $0x201, %ax
- movb $0, %ch
- movb $0, %dh
- int $0x13
+ movw MACRO_DOLLAR(0x201), %ax
+ movb MACRO_DOLLAR(0), %ch
+ movb MACRO_DOLLAR(0), %dh
+ int MACRO_DOLLAR(0x13)
/* if error, jump to "LOCAL(probe_loop)" */
jc LOCAL(probe_loop)
/* %cl is already the correct value! */
- movb $1, %dh
- movb $79, %ch
+ movb MACRO_DOLLAR(1), %dh
+ movb MACRO_DOLLAR(79), %ch
jmp LOCAL(final_init)
.endm
/* Add an underscore to a C symbol in assembler code if needed. */
#ifndef GRUB_UTIL
+#ifdef __APPLE__
+#define MACRO_DOLLAR(x) $$ ## x
+#else
+#define MACRO_DOLLAR(x) $ ## x
+#endif
+
#if HAVE_ASM_USCORE
#ifdef ASM_FILE
# define EXT_C(sym) _ ## sym