[list -]
%if 0

Warn for near jumps
Public Domain by C. Masloch, 2018

%endif

%ifndef __JN_WARN_MAC__
%assign __JN_WARN_MAC__ 1

	%imacro jz 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro jnz 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro je 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro jne 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro jc 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro jnc 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro jb 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro jnb 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro ja 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro jna 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro jae 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro jnae 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro jbe 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro jnbe 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro


	%imacro js 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro jns 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro

	%imacro jo 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro jno 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro

	%imacro jp 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro jnp 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro


	%imacro jl 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro jnl 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro jg 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro jng 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro jge 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro jnge 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro jle 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro
	%imacro jnle 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro


	%imacro jecxz 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro

	%imacro jcxz 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro


	%imacro jmp 1.nolist
%%start:
		%? %1
%%end:
%assign %%length %%end - %%start
%if %%length > 2 && %%length < 5
 %warning __FILE__ __LINE__ %? %1 %%length
%endif
	%endmacro

%endif
[list +]
