diff options
Diffstat (limited to 'roms/ipxe/src/tests/gdbstub_test.S')
-rw-r--r-- | roms/ipxe/src/tests/gdbstub_test.S | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/roms/ipxe/src/tests/gdbstub_test.S b/roms/ipxe/src/tests/gdbstub_test.S new file mode 100644 index 00000000..739b0527 --- /dev/null +++ b/roms/ipxe/src/tests/gdbstub_test.S @@ -0,0 +1,54 @@ + .arch i386 + + .section ".data", "aw", @progbits +watch_me: + .long 0xfeedbeef + + .section ".text", "ax", @progbits + .code32 +gdbstub_test: + /* 1. Read registers test */ + movl $0xea010203, %eax + movl $0xeb040506, %ebx + movl $0xec070809, %ecx + movl $0xed0a0b0c, %edx + movl $0x510d0e0f, %esi + movl $0xd1102030, %edi + int $3 + + /* 2. Write registers test */ + int $3 + + /* 3. Read memory test */ + subl $8, %esp + movl $0x11223344, 4(%esp) + movw $0x5566, 2(%esp) + movb $0x77, (%esp) + int $3 + + /* 4. Write memory test */ + int $3 + addl $8, %esp + + /* 5. Step test */ + int $3 + nop + + /* 6. Access watch test */ + movl $0x600d0000, %ecx + movl watch_me, %eax + movl $0xbad00000, %ecx + int $3 + movl $0x600d0001, %ecx + movl %eax, watch_me + movl $0xbad00001, %ecx + int $3 + + /* 7. Write watch test */ + movl $0x600d0002, %ecx + movl %eax, watch_me + movl $0xbad00002, %ecx + int $3 + +1: + jmp 1b |