summaryrefslogtreecommitdiff
path: root/linux/src/drivers/scsi/in2000.h
diff options
context:
space:
mode:
Diffstat (limited to 'linux/src/drivers/scsi/in2000.h')
-rw-r--r--linux/src/drivers/scsi/in2000.h23
1 files changed, 14 insertions, 9 deletions
diff --git a/linux/src/drivers/scsi/in2000.h b/linux/src/drivers/scsi/in2000.h
index 2a6ad29..52a86e0 100644
--- a/linux/src/drivers/scsi/in2000.h
+++ b/linux/src/drivers/scsi/in2000.h
@@ -62,29 +62,34 @@
*/
#define FAST_READ2_IO() \
+({ \
+int __dummy_1,__dummy_2; \
__asm__ __volatile__ ("\n \
cld \n \
orl %%ecx, %%ecx \n \
jz 1f \n \
rep \n \
- insw %%dx \n \
+ insw (%%dx),%%es:(%%edi) \n \
1: " \
- : "=D" (sp) /* output */ \
- : "d" (f), "D" (sp), "c" (i) /* input */ \
- : "edx", "ecx", "edi" ) /* trashed */
+ : "=D" (sp) ,"=c" (__dummy_1) ,"=d" (__dummy_2) /* output */ \
+ : "2" (f), "0" (sp), "1" (i) /* input */ \
+ ); /* trashed */ \
+})
#define FAST_WRITE2_IO() \
+({ \
+int __dummy_1,__dummy_2; \
__asm__ __volatile__ ("\n \
cld \n \
orl %%ecx, %%ecx \n \
jz 1f \n \
rep \n \
- outsw %%dx \n \
+ outsw %%ds:(%%esi),(%%dx) \n \
1: " \
- : "=S" (sp) /* output */ \
- : "d" (f), "S" (sp), "c" (i) /* input */ \
- : "edx", "ecx", "esi" ) /* trashed */
-
+ : "=S" (sp) ,"=c" (__dummy_1) ,"=d" (__dummy_2)/* output */ \
+ : "2" (f), "0" (sp), "1" (i) /* input */ \
+ ); /* trashed */ \
+})
/* IN2000 io_port offsets */
#define IO_WD_ASR 0x00 /* R - 3393 auxstat reg */