x86id.c
EXTRA_DIST += \
+ src/arch/x86/tests/Makefile.inc \
src/arch/x86/README \
src/arch/x86/x86id.re
+
+include src/arch/x86/tests/Makefile.inc
--- /dev/null
+# $IdPath$
+
+TESTS += \
+ src/arch/x86/tests/x86_test.sh
+
+EXTRA_DIST += \
+ src/arch/x86/tests/x86_test.sh \
+ src/arch/x86/tests/addbyte.asm \
+ src/arch/x86/tests/addbyte.errwarn \
+ src/arch/x86/tests/addbyte.hex \
+ src/arch/x86/tests/addrop.asm \
+ src/arch/x86/tests/addrop.errwarn \
+ src/arch/x86/tests/addrop.hex \
+ src/arch/x86/tests/addrop-err.asm \
+ src/arch/x86/tests/addrop-err.errwarn \
+ src/arch/x86/tests/cpubasic-err.asm \
+ src/arch/x86/tests/cpubasic-err.errwarn \
+ src/arch/x86/tests/div-err.asm \
+ src/arch/x86/tests/div-err.errwarn \
+ src/arch/x86/tests/effaddr.asm \
+ src/arch/x86/tests/effaddr.errwarn \
+ src/arch/x86/tests/effaddr.hex \
+ src/arch/x86/tests/lds-err.asm \
+ src/arch/x86/tests/lds-err.errwarn \
+ src/arch/x86/tests/opsize-err.asm \
+ src/arch/x86/tests/opsize-err.errwarn \
+ src/arch/x86/tests/ret.asm \
+ src/arch/x86/tests/ret.errwarn \
+ src/arch/x86/tests/ret.hex \
+ src/arch/x86/tests/shift.asm \
+ src/arch/x86/tests/shift.errwarn \
+ src/arch/x86/tests/shift.hex
+
+CLEANFILES += \
+ addbyte \
+ addbyte.ew \
+ addbyte.hx \
+ addrop \
+ addrop.ew \
+ addrop.hx \
+ addrop-err.ew \
+ cpubasic-err.ew \
+ div-err.ew \
+ effaddr \
+ effaddr.ew \
+ effaddr.hx \
+ lds-err.ew \
+ opsize-err.ew \
+ ret \
+ ret.ew \
+ ret.hx \
+ shift \
+ shift.ew \
+ shift.hx
--- /dev/null
+05
+*
+00
+83
+c0
+05
+81
+c3
+05
+00
+83
+c3
+05
--- /dev/null
+[BITS 32]
+a16 idiv byte [dword 0] ; 67 F6 3D 00 00 00 00
--- /dev/null
+./src/arch/x86/tests/addrop-err.asm:2: invalid effective address (displacement size)
[BITS 32]
-db 0FFh
idiv al ; F6 F8
-db 0FEh
idiv ax ; 66 F7 F8
-db 0FDh
idiv eax ; F7 F8
-db 0FCh
idiv byte [word 0] ; 67 F6 3E 00 00
-db 0FBh
idiv byte [dword 0xFFFFFFFF] ; F6 3D FF FF FF FF
-db 0FAh
idiv byte [0] ; F6 3D 00 00 00 00
-db 0F9h
a16 idiv byte [word 0] ; 67 67 F6 3E 00 00
-db 0F8h
-a16 idiv byte [dword 0] ; 67 F6 3D 00 00 00 00
-db 0F7h
+;a16 idiv byte [dword 0] ; 67 F6 3D 00 00 00 00
a16 idiv byte [0] ; 67 F6 3D 00 00
-db 0F6h
a32 idiv byte [0] ; F6 3D 00 00 00 00
[BITS 16]
nop
idiv dword [es:dword 5]
idiv dword [byte es:5]
idiv word [es:dword edi+5]
-idiv word [es:edi+dword 5]
+;idiv word [es:edi+dword 5]
nop
--- /dev/null
+f6
+f8
+66
+f7
+f8
+f7
+f8
+67
+f6
+3e
+00
+*
+f6
+3d
+ff
+*
+f6
+3d
+00
+*
+67
+f6
+3e
+00
+*
+67
+f6
+3e
+00
+*
+f6
+3d
+00
+*
+90
+f6
+f8
+f7
+f8
+66
+f7
+f8
+90
+f6
+3e
+00
+*
+67
+f6
+3d
+ff
+*
+f6
+3e
+00
+*
+26
+66
+67
+f7
+3d
+05
+00
+*
+26
+66
+f7
+3e
+05
+26
+67
+f7
+bf
+05
+00
+*
+90
--- /dev/null
+[cpu 8086]
+pause
--- /dev/null
+./src/arch/x86/tests/cpubasic-err.asm:2: invalid combination of opcode and operands
--- /dev/null
+div byte si
+div word si
+div dword si
+div byte esi
+div word esi
+div dword esi
+
--- /dev/null
+./src/arch/x86/tests/div-err.asm:1: cannot override register size
+./src/arch/x86/tests/div-err.asm:3: cannot override register size
+./src/arch/x86/tests/div-err.asm:4: cannot override register size
+./src/arch/x86/tests/div-err.asm:5: cannot override register size
--- /dev/null
+[bits 32]
+mov ax,[eax+ebx+ecx-eax]
+mov ax,[eax+ecx+ebx-eax]
+label
+dd 5
+label2
+mov ax,[eax+ebx*(label2-label)]
--- /dev/null
+66
+8b
+04
+0b
+66
+8b
+04
+19
+05
+00
+*
+66
+8b
+04
+98
--- /dev/null
+lds ax,[1]
+lds ax,word [1]
+lds ax,dword [1]
+lds eax,[1]
+lds eax,word [1]
+lds eax,dword [1]
--- /dev/null
+./src/arch/x86/tests/lds-err.asm:2: invalid combination of opcode and operands
+./src/arch/x86/tests/lds-err.asm:3: invalid combination of opcode and operands
+./src/arch/x86/tests/lds-err.asm:5: invalid combination of opcode and operands
+./src/arch/x86/tests/lds-err.asm:6: invalid combination of opcode and operands
--- /dev/null
+./src/arch/x86/tests/opsize-err.asm:3: invalid combination of opcode and operands
--- /dev/null
+ret
+ret 4
+ret word 2
+retn 6
+retn word 2
+retf 8
+retf word 2
--- /dev/null
+c3
+c2
+04
+00
+c2
+02
+00
+c2
+06
+00
+c2
+02
+00
+ca
+08
+00
+ca
+02
+00
--- /dev/null
+d0
+e0
+d0
+e0
+d0
+e0
+d0
+e0
--- /dev/null
+#!/bin/sh
+# $IdPath$
+${srcdir}/out_test.sh x86_test src/arch/x86/tests "x86 arch" "-f bin" ""
+exit $?
x86id.c
EXTRA_DIST += \
+ src/arch/x86/tests/Makefile.inc \
src/arch/x86/README \
src/arch/x86/x86id.re
+
+include src/arch/x86/tests/Makefile.inc
--- /dev/null
+# $IdPath$
+
+TESTS += \
+ src/arch/x86/tests/x86_test.sh
+
+EXTRA_DIST += \
+ src/arch/x86/tests/x86_test.sh \
+ src/arch/x86/tests/addbyte.asm \
+ src/arch/x86/tests/addbyte.errwarn \
+ src/arch/x86/tests/addbyte.hex \
+ src/arch/x86/tests/addrop.asm \
+ src/arch/x86/tests/addrop.errwarn \
+ src/arch/x86/tests/addrop.hex \
+ src/arch/x86/tests/addrop-err.asm \
+ src/arch/x86/tests/addrop-err.errwarn \
+ src/arch/x86/tests/cpubasic-err.asm \
+ src/arch/x86/tests/cpubasic-err.errwarn \
+ src/arch/x86/tests/div-err.asm \
+ src/arch/x86/tests/div-err.errwarn \
+ src/arch/x86/tests/effaddr.asm \
+ src/arch/x86/tests/effaddr.errwarn \
+ src/arch/x86/tests/effaddr.hex \
+ src/arch/x86/tests/lds-err.asm \
+ src/arch/x86/tests/lds-err.errwarn \
+ src/arch/x86/tests/opsize-err.asm \
+ src/arch/x86/tests/opsize-err.errwarn \
+ src/arch/x86/tests/ret.asm \
+ src/arch/x86/tests/ret.errwarn \
+ src/arch/x86/tests/ret.hex \
+ src/arch/x86/tests/shift.asm \
+ src/arch/x86/tests/shift.errwarn \
+ src/arch/x86/tests/shift.hex
+
+CLEANFILES += \
+ addbyte \
+ addbyte.ew \
+ addbyte.hx \
+ addrop \
+ addrop.ew \
+ addrop.hx \
+ addrop-err.ew \
+ cpubasic-err.ew \
+ div-err.ew \
+ effaddr \
+ effaddr.ew \
+ effaddr.hx \
+ lds-err.ew \
+ opsize-err.ew \
+ ret \
+ ret.ew \
+ ret.hx \
+ shift \
+ shift.ew \
+ shift.hx
--- /dev/null
+add ax,5
+add ax,byte 5
+add bx,5
+add bx,byte 5
--- /dev/null
+05
+*
+00
+83
+c0
+05
+81
+c3
+05
+00
+83
+c3
+05
--- /dev/null
+[BITS 32]
+a16 idiv byte [dword 0] ; 67 F6 3D 00 00 00 00
--- /dev/null
+./src/arch/x86/tests/addrop-err.asm:2: invalid effective address (displacement size)
--- /dev/null
+[BITS 32]
+idiv al ; F6 F8
+idiv ax ; 66 F7 F8
+idiv eax ; F7 F8
+idiv byte [word 0] ; 67 F6 3E 00 00
+idiv byte [dword 0xFFFFFFFF] ; F6 3D FF FF FF FF
+idiv byte [0] ; F6 3D 00 00 00 00
+a16 idiv byte [word 0] ; 67 67 F6 3E 00 00
+;a16 idiv byte [dword 0] ; 67 F6 3D 00 00 00 00
+a16 idiv byte [0] ; 67 F6 3D 00 00
+a32 idiv byte [0] ; F6 3D 00 00 00 00
+[BITS 16]
+nop
+idiv al
+idiv ax
+idiv eax
+nop
+idiv byte [word 0]
+idiv byte [dword 0xFFFFFFFF]
+idiv byte [0]
+idiv dword [es:dword 5]
+idiv dword [byte es:5]
+idiv word [es:dword edi+5]
+;idiv word [es:edi+dword 5]
+nop
--- /dev/null
+f6
+f8
+66
+f7
+f8
+f7
+f8
+67
+f6
+3e
+00
+*
+f6
+3d
+ff
+*
+f6
+3d
+00
+*
+67
+f6
+3e
+00
+*
+67
+f6
+3e
+00
+*
+f6
+3d
+00
+*
+90
+f6
+f8
+f7
+f8
+66
+f7
+f8
+90
+f6
+3e
+00
+*
+67
+f6
+3d
+ff
+*
+f6
+3e
+00
+*
+26
+66
+67
+f7
+3d
+05
+00
+*
+26
+66
+f7
+3e
+05
+26
+67
+f7
+bf
+05
+00
+*
+90
--- /dev/null
+[cpu 8086]
+pause
--- /dev/null
+./src/arch/x86/tests/cpubasic-err.asm:2: invalid combination of opcode and operands
--- /dev/null
+div byte si
+div word si
+div dword si
+div byte esi
+div word esi
+div dword esi
+
--- /dev/null
+./src/arch/x86/tests/div-err.asm:1: cannot override register size
+./src/arch/x86/tests/div-err.asm:3: cannot override register size
+./src/arch/x86/tests/div-err.asm:4: cannot override register size
+./src/arch/x86/tests/div-err.asm:5: cannot override register size
--- /dev/null
+[bits 32]
+mov ax,[eax+ebx+ecx-eax]
+mov ax,[eax+ecx+ebx-eax]
+label
+dd 5
+label2
+mov ax,[eax+ebx*(label2-label)]
--- /dev/null
+66
+8b
+04
+0b
+66
+8b
+04
+19
+05
+00
+*
+66
+8b
+04
+98
--- /dev/null
+lds ax,[1]
+lds ax,word [1]
+lds ax,dword [1]
+lds eax,[1]
+lds eax,word [1]
+lds eax,dword [1]
--- /dev/null
+./src/arch/x86/tests/lds-err.asm:2: invalid combination of opcode and operands
+./src/arch/x86/tests/lds-err.asm:3: invalid combination of opcode and operands
+./src/arch/x86/tests/lds-err.asm:5: invalid combination of opcode and operands
+./src/arch/x86/tests/lds-err.asm:6: invalid combination of opcode and operands
--- /dev/null
+mov ax,1
+mov ax,word 1
+mov ax,byte 1
--- /dev/null
+./src/arch/x86/tests/opsize-err.asm:3: invalid combination of opcode and operands
--- /dev/null
+ret
+ret 4
+ret word 2
+retn 6
+retn word 2
+retf 8
+retf word 2
--- /dev/null
+c3
+c2
+04
+00
+c2
+02
+00
+c2
+06
+00
+c2
+02
+00
+ca
+08
+00
+ca
+02
+00
--- /dev/null
+blah equ 1
+
+shl al, 1
+shl al, 2-1
+shl al, blah
+shl al, 2-blah
--- /dev/null
+d0
+e0
+d0
+e0
+d0
+e0
+d0
+e0
--- /dev/null
+#!/bin/sh
+# $IdPath$
+${srcdir}/out_test.sh x86_test src/arch/x86/tests "x86 arch" "-f bin" ""
+exit $?
+++ /dev/null
-lds ax,[1]
-lds ax,dword [1]
-