Possibility for code_native assembly printout is impressive and 
instructive. I assume conditional jump instructions show local jump 
distance in bytes, don't they. 
Is there any chance to see from printout which label/assembly statement 
that relates too?

BTW: How do You use code_native effectively?

Example on 32-bit Linux:

leapyear(y) = y%4==0 && (y<1582 || y%100!=0 || y%400==0)

code_native(leapyear, (Int,))
.text
Filename: /home/mike/Code/Julia/bit.jl
Source line: 21
push EBP
mov EBP, ESP
push ESI
mov ECX, DWORD PTR [EBP + 8]
xor AL, AL
Source line: 21
test CL, 3
jne 57
mov ESI, 1374389535
mov EAX, ECX
imul ESI
mov EAX, EDX
shr EAX, 31
sar EDX, 5
add EDX, EAX
imul EDX, EDX, 100
mov AL, 1
cmp ECX, EDX
jne 25
mov EAX, ECX
imul ESI
mov EAX, EDX
shr EAX, 31
sar EDX, 7
add EDX, EAX
imul EAX, EDX, 400
cmp ECX, EAX
sete AL
pop ESI
pop EBP
ret

Reply via email to