ソースを参照

Fixed assembly on old versions of gas

tags/v0.9.3
Michael Brown 18年前
コミット
041a04335e
2個のファイルの変更4行の追加4行の削除
  1. 1
    1
      src/arch/i386/prefix/libprefix.S
  2. 3
    3
      src/arch/i386/transitions/librm.S

+ 1
- 1
src/arch/i386/prefix/libprefix.S ファイルの表示

@@ -54,7 +54,7 @@ install_block:
54 54
 	xorl	%esi, %esi
55 55
 
56 56
 	/* Calculate start and length of uninitialised data portion */
57
-	leal	(%edi,%ecx), %eax
57
+	addr32 leal	(%edi,%ecx), %eax
58 58
 	subl	%ecx, %edx
59 59
 	
60 60
 	/* Do the copy */

+ 3
- 3
src/arch/i386/transitions/librm.S ファイルの表示

@@ -124,7 +124,7 @@ init_librm:
124 124
 	shll	$4, %eax
125 125
 	movw	$real_cs, %bx
126 126
 	call	set_seg_base
127
-	leal	(%eax, %edi), %ebx
127
+	addr32 leal	(%eax, %edi), %ebx
128 128
 	movl	%ebx, _text16
129 129
 
130 130
 	/* Store rm_ds and _data16, set up real_ds segment and set GDT base */
@@ -134,7 +134,7 @@ init_librm:
134 134
 	shll	$4, %eax
135 135
 	movw	$real_ds, %bx
136 136
 	call	set_seg_base
137
-	leal	(%eax, %edi), %ebx
137
+	addr32 leal	(%eax, %edi), %ebx
138 138
 	movl	%ebx, _data16
139 139
 	addl	$gdt, %eax
140 140
 	movl	%eax, gdt_base
@@ -409,7 +409,7 @@ prot_call:
409 409
 	popw	%fs
410 410
 	popw	%gs
411 411
 	popal
412
-	movl	-20(%esp), %esp /* -20(%sp) is not a valid 80386 expression.
412
+	addr32 movl	-20(%esp), %esp /* -20(%sp) is not a valid 80386 expression.
413 413
 				 * -20(%esp) is safe because prot_to_real
414 414
 				 * zeroes the high word of %esp, and interrupts
415 415
 				 * are still disabled at this point. */

読み込み中…
キャンセル
保存