move old packages to obsolete
[lttv.git] / trunk / tests / kernel / test-nop-speed.c
index 9a721883b1a73e63969127bbedd7fbc2a5770641..49085c2f8db7bb452d143051662fc0e739b5373d 100644 (file)
@@ -9,7 +9,7 @@
 #include <linux/marker.h>
 #include <asm/ptrace.h>
 
-#define NR_TESTS 20000
+#define NR_TESTS 10000000
 
 int var, var2;
 
@@ -35,7 +35,7 @@ void twobytesjump(void)
 
 void fivebytesjump(void)
 {
-       asm (".byte 0xe9, 0x00, 0x00, 0x00, 0x00\n\t");
+       asm volatile (".byte 0xe9, 0x00, 0x00, 0x00, 0x00\n\t");
        var += 50;
        var /= 10;
        var *= var2;
@@ -43,7 +43,7 @@ void fivebytesjump(void)
 
 void threetwonops(void)
 {
-       asm (".byte 0x66,0x66,0x90,0x66,0x90\n\t");
+       asm volatile (".byte 0x66,0x66,0x90,0x66,0x90\n\t");
        var += 50;
        var /= 10;
        var *= var2;
@@ -51,7 +51,7 @@ void threetwonops(void)
 
 void fivebytesnop(void)
 {
-       asm (".byte 0x66,0x66,0x66,0x66,0x90\n\t");
+       asm volatile (".byte 0x66,0x66,0x66,0x66,0x90\n\t");
        var += 50;
        var /= 10;
        var *= var2;
@@ -59,7 +59,35 @@ void fivebytesnop(void)
 
 void fivebytespsixnop(void)
 {
-       asm (".byte 0x0f,0x1f,0x44,0x00,0\n\t");
+       asm volatile (".byte 0x0f,0x1f,0x44,0x00,0\n\t");
+       var += 50;
+       var /= 10;
+       var *= var2;
+}
+
+/*
+ * GENERIC_NOP1 GENERIC_NOP4,
+ * 1: nop
+ * _not_ nops in 64-bit mode.
+ * 4: leal 0x00(,%esi,1),%esi
+ */
+void genericfivebytesonefournops(void)
+{
+       asm volatile (".byte 0x90,0x8d,0x74,0x26,0x00\n\t");
+       var += 50;
+       var /= 10;
+       var *= var2;
+}
+
+/*
+ * K7_NOP4 ASM_NOP1
+ * 1: nop
+ * assumed _not_ to be nops in 64-bit mode.
+ * leal 0x00(,%eax,1),%eax
+ */
+void k7fivebytesonefournops(void)
+{
+       asm volatile (".byte 0x90,0x8d,0x44,0x20,0x00\n\t");
        var += 50;
        var /= 10;
        var *= var2;
@@ -95,6 +123,10 @@ static int my_open(struct inode *inode, struct file *file)
        perform_test("3/2 nops", threetwonops);
        perform_test("5-bytes nop with long prefix", fivebytesnop);
        perform_test("5-bytes P6 nop", fivebytespsixnop);
+#ifdef CONFIG_X86_32
+       perform_test("Generic 1/4 5-bytes nops", genericfivebytesonefournops);
+       perform_test("K7 1/4 5-bytes nops", k7fivebytesonefournops);
+#endif
 
        return -EPERM;
 }
This page took 0.03614 seconds and 4 git commands to generate.