-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
It seems that rflags_compute! and rflags_compute_XXX! involve too many unstable conversions and possible exceptions. The generated code contains lots of jl_XXX.
Filename: /home/jack/julia/jia32/CPU.jl
Source line: 406
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $72, %rsp
movq %rdi, %r14
movq $8, -88(%rbp)
Source line: 406
movabsq $jl_pgcstack, %rax
movq (%rax), %rcx
movq %rcx, -80(%rbp)
leaq -88(%rbp), %rcx
movq %rcx, (%rax)
movq $0, -56(%rbp)
movq $0, -48(%rbp)
movq $0, -72(%rbp)
leaq -64(%rbp), %rax
movl $1, -92(%rbp)
Source line: 406
movabsq $jl_apply_generic, %rbx
movq %rsi, -64(%rbp)
movabsq $140323016195184, %rdi # imm = 0x7F9F7F88BC70
movq %rax, %rsi
movq %rax, %r12
movl $1, %edx
callq *%rbx
movq %rax, %r13
movq %r13, -72(%rbp)
Source line: 407
movq 120(%r14), %r15
subq 128(%r14), %r15
jb L155
movl $0, -92(%rbp)
L155: movabsq $140323002320504, %rax # imm = 0x7F9F7EB50678
Source line: 410
movq (%rax), %rax
movq %rax, -64(%rbp)
movabsq $140323025118760, %rax # imm = 0x7F9F8010E628
movq (%rax), %rax
movq %rax, -56(%rbp)
movzbl %r15b, %edi
incq %rdi
movabsq $jl_box_uint64, %rax
callq *%rax
movq %rax, -48(%rbp)
movabsq $140323016939728, %rdi # imm = 0x7F9F7F9418D0
leaq -56(%rbp), %rsi
movl $2, %edx
callq *%rbx
movq %rax, -56(%rbp)
movabsq $140323015385200, %rdi # imm = 0x7F9F7F7C6070
movq %r12, %rsi
movl $2, %edx
callq *%rbx
movabsq $35080746978788, %rcx # imm = 0x1FE7DF764DE4
movq -8(%rax), %rdx
shrq $2, %rdx
cmpq %rcx, %rdx
jne L614
Source line: 411
movq 120(%r14), %rbx
movq 128(%r14), %rcx
Source line: 410
movq %rcx, -104(%rbp)
movl (%rax), %eax
movl %eax, -108(%rbp)
Source line: 412
movq %r15, %rdi
Source line: 410
movabsq $jl_box_uint64, %rax
Source line: 412
callq *%rax
movq %rax, -64(%rbp)
movq %r13, -56(%rbp)
movabsq $jl_apply_generic, %r13
movabsq $140323018277136, %rdi # imm = 0x7F9F7FA88110
movq %r12, %rsi
movl $2, %edx
callq *%r13
movabsq $140323020865472, %rcx # imm = 0x7F9F7FCFFFC0
movq %rax, -64(%rbp)
movq %rcx, -56(%rbp)
movabsq $140322989929328, %rdi # imm = 0x7F9F7DF7F370
movq %r12, %rsi
movl $2, %edx
callq *%r13
movabsq $35080746877316, %rcx # imm = 0x1FE7DF74C184
movq -8(%rax), %rdx
shrq $2, %rdx
cmpq %rcx, %rdx
jne L665
movl $64, %r9d
movabsq $jl_false, %rcx
cmpq (%rcx), %rax
jne L452
xorl %r9d, %r9d
L452: movl $8, %ecx
Source line: 413
subq 112(%r14), %rcx
movq %rcx, %rax
sarq $63, %rax
addq %rax, %rcx
xorq %rax, %rcx
Source line: 414
movq 120(%r14), %rax
movq %rax, %rdx
xorq %r15, %rdx
xorq 128(%r14), %rax
andq %rdx, %rax
Source line: 413
movq %r15, %rdi
shrq %cl, %rdi
movq $-2262, %rsi # imm = 0xFFFFFFFFFFFFF72A
Source line: 414
shrq %cl, %rax
Source line: 416
andq 32(%r14), %rsi
movl -108(%rbp), %edx
Source line: 417
orl -92(%rbp), %edx
movabsq $jl_pgcstack, %r8
Source line: 413
andl $128, %edi
Source line: 411
xorl %r15d, %ebx
xorl %r10d, %r10d
Source line: 414
shlq $4, %rax
andl $2048, %eax # imm = 0x800
Source line: 413
cmpq $63, %rcx
Source line: 414
cmoval %r10d, %eax
Source line: 413
cmoval %r10d, %edi
Source line: 411
movq -104(%rbp), %rcx
xorl %ecx, %ebx
andl $16, %ebx
Source line: 417
orl %edx, %ebx
orl %r9d, %ebx
orl %edi, %ebx
orl %eax, %ebx
orq %rsi, %rbx
movq %rbx, 32(%r14)
movq -80(%rbp), %rax
movq %rax, (%r8)
movq %rbx, %rax
addq $72, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
ret
Source line: 410
L614: movabsq $jl_type_error_rt_line, %rbx
movabsq $140331654624464, %rdi # imm = 0x7FA1826CB4D0
movabsq $140331654623259, %rsi # imm = 0x7FA1826CB01B
movabsq $140322987915152, %rdx # imm = 0x7F9F7DD93790
movq %rax, %rcx
movl $410, %r8d # imm = 0x19A
callq *%rbx
Source line: 412
L665: movabsq $jl_type_error_rt_line, %rbx
movabsq $140331654624464, %rdi # imm = 0x7FA1826CB4D0
movabsq $140331654623345, %rsi # imm = 0x7FA1826CB071
movabsq $140322987509264, %rdx # imm = 0x7F9F7DD30610
movq %rax, %rcx
movl $412, %r8d # imm = 0x19C
callq *%rbx
Metadata
Metadata
Assignees
Labels
No labels