Test case of emulating multibyte NOP
PATCH 1/1 Test case of emulating multibyte NOP
From: Arthur Chunqi Li <[email protected]>
Add multibyte NOP test case to kvm-unit-tests. This version adds test cases into x86/realmode.c. This can test one of bugs when booting RHEL5.9 64-bit.
Signed-off-by Arthur Chunqi Li <[email protected]>
--- x86/realmode.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+)
x86/realmode.c +24 -0
@@ -1504,6 +1504,29 @@ static void test_fninit(void)report ("fninit" ,0 , fsw ==0 && (fcw &0x103f ) ==0x003f ); } +static void test_nopl (void ) +{ +MK_INSN (nopl1,".byte 0x90\n\r" );// 1 byte nop +MK_INSN (nopl2,".byte 0x66, 0x90\n\r" );// 2 bytes nop +MK_INSN (nopl3,".byte 0x0f, 0x1f, 0x00\n\r" );// 3 bytes nop +MK_INSN (nopl4,".byte 0x0f, 0x1f, 0x40, 0x00\n\r" );// 4 bytes nop +MK_INSN (nopl5,".byte 0x0f, 0x1f, 0x44, 0x00, 0x00\n\r" );// 5 bytes nop +MK_INSN (nopl6,".byte 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00\n\r" );// 6 bytes nop +MK_INSN (nopl7,".byte 0x0f, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00\n\r" );// 7 bytes nop +MK_INSN (nopl8,".byte 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00\n\r" );// 8 bytes nop +MK_INSN (nopl9,".byte 0x66, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00\n\r" );// 9 bytes nop +exec_in_big_real_mode (&insn_nopl1); +exec_in_big_real_mode (&insn_nopl2); +exec_in_big_real_mode (&insn_nopl3); +exec_in_big_real_mode (&insn_nopl4); +exec_in_big_real_mode (&insn_nopl5); +exec_in_big_real_mode (&insn_nopl6); +exec_in_big_real_mode (&insn_nopl7); +exec_in_big_real_mode (&insn_nopl8); +exec_in_big_real_mode (&insn_nopl9); +report ("nopl" ,0 ,1 ); +} +void realmode_start (void ) {test_null ();
@@ -1548,6 +1571,7 @@ void realmode_start(void)test_xlat ();test_salc ();test_fninit (); +test_nopl ();exit (0 ); }
Signature · 1 line
1.7.9.5