summaryrefslogtreecommitdiff
path: root/test/immwarn.asm
blob: 8bffbfae821fbd0e155e9355c802d0aac4394d90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
;Testname=onowarn; Arguments=-Ox -DOPT=1 -DWARN=0 -fbin -oimmwarn.bin; Files=stdout stderr immwarn.bin
;Testname=owarn; Arguments=-Ox -DOPT=1 -DWARN=1 -fbin -oimmwarn.bin; Files=stdout stderr immwarn.bin
;Testname=nowarn; Arguments=-O0 -DOPT=0 -DWARN=0 -fbin -oimmwarn.bin; Files=stdout stderr immwarn.bin
;Testname=warn; Arguments=-O0 -DOPT=1 -DWARN=1 -fbin -oimmwarn.bin; Files=stdout stderr immwarn.bin

%ifndef WARN
  %define WARN 1
%endif

	bits 16
	push 1
%if WARN
	push 0ffffffffh
%endif
	push -1
	push 0ffffh
	push byte 0FFFFh

	add ax,0FFFFh
%if WARN
	add ax,0FFFFFFFFh
%endif
	add ax,-1
	add ax,byte 0FFFFh
%if WARN
	add ax,byte 0FFFFFFFFh
%endif
	add ax,-1

	add cx,0FFFFh
%if WARN
	add cx,0FFFFFFFFh
%endif
	add cx,-1
	add cx,byte 0FFFFh
%if WARN
	add cx,byte 0FFFFFFFFh
%endif
	add cx,-1

	bits 32
	push 1
	push 0ffffffffh
	push -1
	push 0ffffh

	push byte 1
%if WARN
	push byte 0ffffh
%endif
	push byte -1

	push word 1
	push word 0ffffh
	push word -1

	push dword 1
	push dword 0ffffffffh
	push dword -1

	add eax,0FFFFh
	add eax,0FFFFFFFFh
	add eax,-1

	add ecx,0FFFFh
	add ecx,0FFFFFFFFh
	add ecx,-1

	bits 64
	mov eax,7fffffffh
	mov eax,80000000h
	mov rax,7fffffffh
	mov rax,80000000h
%if WARN
	mov rax,dword 80000000h
%endif
	add rcx,0FFFFh
%if WARN
	add rcx,0FFFFFFFFh
%endif
	add rcx,-1

	add ecx,0FFFFh
	add ecx,0FFFFFFFFh
	add ecx,-1

	push byte 1
%if WARN
	push byte 0ffffffffh
%endif
	push byte -1