.section .text.n_p$project1_$$_test3$array_of_longint$$int64,"x" .section .text.n_p$project1_$$_test2$array_of_longint$$int64,"x"
.balign 16,0x90 .balign 16,0x90
.globl P$PROJECT1_$$_TEST3$array_of_LONGINT$$INT64 .globl P$PROJECT1_$$_TEST2$array_of_LONGINT$$INT64
P$PROJECT1_$$_TEST3$array_of_LONGINT$$INT64: P$PROJECT1_$$_TEST2$array_of_LONGINT$$INT64:
.Lc13: .Lc8:
.seh_proc P$PROJECT1_$$_TEST3$array_of_LONGINT$$INT64 .seh_proc P$PROJECT1_$$_TEST2$array_of_LONGINT$$INT64
.Ll22: .Ll13:
# [49] begin # [33] begin
pushq %rbp pushq %rbp
.seh_pushreg %rbp .seh_pushreg %rbp
.Lc15: .Lc10:
.Lc16: .Lc11:
movq %rsp,%rbp movq %rsp,%rbp
.Lc17: .Lc12:
leaq -16(%rsp),%rsp leaq -16(%rsp),%rsp
.seh_stackalloc 16 .seh_stackalloc 16
# Var Value located in register rcx # Var Value located in register rcx
# Var $highVALUE located in register rdx # Var $highVALUE located in register rdx
# Var $result located in register rax # Var $result located in register rax
# Var TempI located in register r9
.seh_endprologue .seh_endprologue
# Var I located at rbp-8, size=OS_S64 # Var I located at rbp-8, size=OS_S64
# Var $result located in register rax # Var $result located in register rax
.Ll23: .Ll14:
# [50] Result := 0; # [34] Result := 0;
movq $0,%rax movq $0,%rax
.Ll24: .Ll15:
# [52] I := 0; # [36] I := 0;
movq $0,-8(%rbp) movq $0,-8(%rbp)
.Ll25: .Lj40:
# [54] TempI := I; .Ll16:
movq -8(%rbp),%r9 { move I to r9 }
.Lj66:
.Ll26:
# [56] if Odd(Value[TempI]) then # [39] if Odd(Value[I]) then
movq -8(%rbp),%r8 { move I to r8 }
leaq (%rcx,%r9,4),%r8 movl (%rcx,%r8,4),%r8d
movl (%r8),%r8d
andl $1,%r8d andl $1,%r8d
testb %r8b,%r8b testb %r8b,%r8b
je .Lj70 je .Lj44
.Ll27: .Ll17:
# [57] Result += 1; # [40] Result += 1;
leaq 1(%rax),%r8 leaq 1(%rax),%r8
movq %r8,%rax movq %r8,%rax
.Lj70: .Lj44:
.Ll28: .Ll18:
# [58] TempI += 1; # [41] I += 1;
movq -8(%rbp),%r8 { additonal move }
leaq 1(%r9),%r8 leaq 1(%r8),%r8
movq %r8,%r9 movq %r8,-8(%rbp) { slower - 1 }
.Ll29: .Ll19:
# [59] until TempI = Length(Value); # [42] until I = Length(Value);
leaq 1(%rdx),%r8 leaq 1(%rdx),%r8
cmpq %r9,%r8 cmpq -8(%rbp),%r8 { slower }
jne .Lj66 jne .Lj40
.Ll30: .Ll20:
# [60] I := TempI;
movq %r9,-8(%rbp) { match 1 }
.Ll31:
# [62] end; # [44] end;
leaq (%rbp),%rsp leaq (%rbp),%rsp { no call to Check since it does nothing }
popq %rbp popq %rbp
ret ret
.seh_endproc .seh_endproc
.Lc14:
.Lt5:
.Ll32: