mirror of
				https://github.com/netwide-assembler/nasm.git
				synced 2025-10-10 00:25:06 -04:00 
			
		
		
		
	Only make the tests under WARN actually issue warnings. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
		
			
				
	
	
		
			118 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			NASM
		
	
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			NASM
		
	
	
	
	
	
| ;Testname=nowarn; Arguments=-fbin -oimul.bin; Files=stdout stderr imul.bin
 | |
| ;Testname=warn; Arguments=-DWARN -fbin -oimul.bin; Files=stdout stderr imul.bin
 | |
| 
 | |
| %macro test 1-3 5 -2
 | |
| 	bits %1
 | |
| 
 | |
| %undef MEM
 | |
| %if %1 == 16
 | |
|   %define MEM [di]
 | |
| %elif %1 == 32
 | |
|   %define MEM [edi]
 | |
| %elif %1 == 64
 | |
|   %define MEM [rdi]
 | |
| %endif
 | |
| 
 | |
| 	imul al
 | |
| 	imul byte MEM
 | |
| 	imul ax
 | |
| 	imul word MEM
 | |
| 	imul eax
 | |
| 	imul dword MEM
 | |
| %if %1 == 64
 | |
| 	imul rdx
 | |
| 	imul qword MEM
 | |
| %endif
 | |
| 	
 | |
| 	imul ax,cx
 | |
| 	imul ax,MEM
 | |
| 	imul ax,word MEM
 | |
| 	imul eax,ecx
 | |
| 	imul eax,MEM
 | |
| 	imul eax,dword MEM
 | |
| %if %1 == 64
 | |
| 	imul rax,rcx
 | |
| 	imul rax,MEM
 | |
| 	imul rax,qword MEM
 | |
| %endif
 | |
| 
 | |
| 	imul ax,cx,%2
 | |
| 	imul ax,cx,byte %2
 | |
| 	imul ax,MEM,%2
 | |
| 	imul ax,word MEM,%2
 | |
| 	imul eax,ecx,%2
 | |
| 	imul eax,ecx,byte %2
 | |
| 	imul eax,MEM,%2
 | |
| 	imul eax,dword MEM,%2
 | |
| %if %1 == 64
 | |
| 	imul rax,rcx,%2
 | |
| 	imul rax,rcx,byte %2
 | |
| 	imul rax,MEM,%2
 | |
| 	imul rax,qword MEM,%2
 | |
| %endif
 | |
| 
 | |
| 	imul ax,%2
 | |
| 	imul ax,byte %2
 | |
| 	imul eax,%2
 | |
| 	imul eax,byte %2
 | |
| %if %1 == 64
 | |
| 	imul rax,%2
 | |
| 	imul rax,byte %2
 | |
| %endif
 | |
| 
 | |
| 	imul ax,cx,0x1234
 | |
| 	imul ax,MEM,0x1234
 | |
| 	imul ax,word MEM,0x1234
 | |
| 	imul eax,ecx,0x12345678
 | |
| 	imul eax,MEM,0x12345678
 | |
| 	imul eax,dword MEM,0x12345678
 | |
| %if %1 == 64
 | |
| 	imul rax,rcx,0x12345678
 | |
| 	imul rax,MEM,0x12345678
 | |
| 	imul rax,qword MEM,0x12345678
 | |
| %endif
 | |
| 
 | |
| 	imul ax,0x1234
 | |
| 	imul eax,0x12345678
 | |
| %if %1 == 64
 | |
| 	imul rax,0x12345678
 | |
| %endif
 | |
| 
 | |
| 	imul ax,cx,0xfffe
 | |
| 	imul ax,MEM,0xfffe
 | |
| 	imul ax,word MEM,0xfffe
 | |
| 	imul ax,cx,0xfe
 | |
| 	imul ax,MEM,0xfe
 | |
| 	imul ax,word MEM,0xfe
 | |
| 	imul eax,ecx,0xfffffffe
 | |
| 	imul eax,MEM,0xfffffffe
 | |
| 	imul eax,dword MEM,0xfffffffe
 | |
| 	imul eax,ecx,0xfffe
 | |
| 	imul eax,MEM,0xfffe
 | |
| 	imul eax,dword MEM,0xfffe
 | |
| %if %1 == 64
 | |
| 	imul rax,rcx,%3
 | |
| 	imul rax,MEM,%3
 | |
| 	imul rax,qword MEM,%3
 | |
| 	imul rax,rcx,0xfffe
 | |
| 	imul rax,MEM,0xfffe
 | |
| 	imul rax,qword MEM,0xfffe
 | |
| %endif
 | |
| 
 | |
| 	imul ax,0xfffe
 | |
| 	imul eax,0xfffffffe
 | |
| %if %1 == 64
 | |
| 	imul rax,%3
 | |
| %endif
 | |
| %endmacro
 | |
| 
 | |
| 	test 16
 | |
| 	test 32
 | |
| 	test 64
 | |
| 
 | |
| %ifdef WARN
 | |
| 	test 16,0x999
 | |
| 	test 32,0x999999
 | |
| 	test 64,0x999999999,0xfffffffe
 | |
| %endif
 |