Slide 44
Slide 44 text
$a = true; if ($a === true) { echo "Yes!"; } else { echo "No!"; }
sub $0x10, %rsp
lea 0x50(%r14), %rdi
cmp $0xa, 0x8(%rdi)
jnz .L1
mov (%rdi), %rdi
cmp $0x0, 0x18(%rdi)
jnz .L7
add $0x8, %rdi
.L1:
test $0x1, 0x9(%rdi)
jnz .L8
.L2:
mov $0x3, 0x8(%rdi)
.L3:
mov $EG(exception), %rax
cmp $0x0, (%rax)
jnz JIT$$exception_handler
lea 0x50(%r14), %rdi
cmp $0xa, 0x8(%rdi)
jnz .L4
mov (%rdi), %rdi
add $0x8, %rdi
.L4:
cmp $0x3, 0x8(%rdi)
jz .L5
jmp .L6
.L5:
add $0x60, %r15
mov %r15, (%r14)
mov $0x40af2d48, %rdi
mov $0x4, %rsi
mov $php_output_write, %rax
call *%rax
mov $EG(exception), %rax
cmp $0x0, (%rax)
jnz JIT$$exception_handler
add $0x20, %r15
add $0x10, %rsp
mov $0x559ee5a027b1, %rax
call *%rax
jmp (%r15)
.L6:
mov $0x4115d6a0, %r15
mov %r15, (%r14)
mov $0x40af2d70, %rdi
mov $0x3, %rsi
mov $php_output_write, %rax
call *%rax
mov $EG(exception), %rax
cmp $0x0, (%rax)
jnz JIT$$exception_handler
add $0x20, %r15
add $0x10, %rsp
mov $0x559ee5a027b1, %rax
call *%rax
jmp (%r15)
.L7:
mov $0x4115d5c0, %rsi
mov $zend_jit_assign_const_to_typed_ref, %rax
call *%rax
jmp .L3
.L8:
mov (%rdi), %rax
sub $0x1, (%rax)
jnz .L9
mov %rax, (%rsp)
mov $0x3, 0x8(%rdi)
mov (%rsp), %rdi
mov %r15, (%r14)
mov $rc_dtor_func, %rax
call *%rax
jmp .L3
.L9:
mov (%rdi), %rax
mov 0x4(%rax), %eax
and $0xfffffc10, %eax
cmp $0x10, %eax
jnz .L2
mov %rdi, (%rsp)
mov (%rdi), %rdi
mov $gc_possible_root, %rax
call *%rax
mov (%rsp), %rdi
jmp .L2