aboutsummaryrefslogtreecommitdiffstats
path: root/main/dev86/dev86-pic.patch
blob: 41076f3daeebfb82db847004ec8ca55ac3235f11 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
--- ./elksemu/elks.c.orig	2005-11-04 01:35:37.000000000 +0100
+++ ./elksemu/elks.c	2005-11-04 01:45:28.000000000 +0100
@@ -129,8 +129,17 @@
 static inline int vm86_mine(struct vm86_struct* v86)
 {
 	int __res;
+#ifndef __PIC__
 	__asm__ __volatile__("int $0x80\n"
 	:"=a" (__res):"a" ((int)OLD_SYS_vm86), "b" ((int)v86));
+#else
+	__asm__ __volatile__(
+		"movl	%%ebx,%%ecx\n\t"
+		"movl	%2,%%ebx\n\t"
+		"int	$0x80\n\t"
+		"movl	%%ecx,%%ebx\n\t"
+		:"=a" (__res):"a" ((int)OLD_SYS_vm86), "r" ((int)v86) : "ecx");
+#endif
 	return __res;
 } 
 #endif