H:\Dev\Tests\00_PointerAbsolute\PointerAbsolute.lpr:27 v1 := pa1^.First.FTheValue;
00000001000015D0 8B09 mov ecx,[rcx]
H:\Dev\Tests\00_PointerAbsolute\PointerAbsolute.lpr:28 v2 := pa2^.First.FTheValue;
00000001000015D2 8B12 mov edx,[rdx]
H:\Dev\Tests\00_PointerAbsolute\PointerAbsolute.lpr:30 if v1 < v2 then exit(-1);
00000001000015D4 39CA cmp edx,ecx
00000001000015D6 7E08 jle +$08 # $00000001000015E0 PAIRKEYCOMPARE1+16 PointerAbsolute.lpr:31
00000001000015D8 B8FFFFFFFF mov eax,$FFFFFFFF
00000001000015DD C3 ret
00000001000015DE 6690 nop
; note that edx and ecx are not reloaded (they don't need to)
H:\Dev\Tests\00_PointerAbsolute\PointerAbsolute.lpr:31 if v1 = v2 then exit(-0);
00000001000015E0 39CA cmp edx,ecx
00000001000015E2 7504 jnz +$04 # $00000001000015E8 PAIRKEYCOMPARE1+24 PointerAbsolute.lpr:33
00000001000015E4 31C0 xor eax,eax
00000001000015E6 C3 ret
00000001000015E7 90 nop
H:\Dev\Tests\00_PointerAbsolute\PointerAbsolute.lpr:33 result := 1;
00000001000015E8 B801000000 mov eax,$00000001
H:\Dev\Tests\00_PointerAbsolute\PointerAbsolute.lpr:34 end;
00000001000015ED C3 ret
00000001000015EE 0000 add [rax],al
H:\Dev\Tests\00_PointerAbsolute\PointerAbsolute.lpr:44 if pa1^.First.FTheValue < pa2^.First.FTheValue then exit(-1);
00000001000015F0 8B01 mov eax,[rcx]
00000001000015F2 3B02 cmp eax,[rdx]
00000001000015F4 7D06 jnl +$06 # $00000001000015FC PAIRKEYCOMPARE2+12 PointerAbsolute.lpr:45
00000001000015F6 B8FFFFFFFF mov eax,$FFFFFFFF
00000001000015FB C3 ret
H:\Dev\Tests\00_PointerAbsolute\PointerAbsolute.lpr:45 if pa1^.First.FTheValue = pa2^.First.FTheValue then exit(-0);
; it should use eax again instead of loading the value in ecx
00000001000015FC 8B09 mov ecx,[rcx]
00000001000015FE 3B0A cmp ecx,[rdx]
0000000100001600 7506 jnz +$06 # $0000000100001608 PAIRKEYCOMPARE2+24 PointerAbsolute.lpr:47
0000000100001602 31C0 xor eax,eax
0000000100001604 C3 ret
0000000100001605 0F1F00 nop dword ptr [rax]
H:\Dev\Tests\00_PointerAbsolute\PointerAbsolute.lpr:47 result := 1;
0000000100001608 B801000000 mov eax,$00000001
H:\Dev\Tests\00_PointerAbsolute\PointerAbsolute.lpr:48 end;
000000010000160D C3 ret
000000010000160E 0000 add [rax],al
H:\Dev\Tests\00_PointerAbsolute\PointerAbsolute.lpr:53 begin
0000000100001610 488D6424D8 lea rsp,[rsp-$28]
0000000100001615 E8B6320000 call +$000032B6 # $00000001000048D0 FPC_INITIALIZEUNITS
H:\Dev\Tests\00_PointerAbsolute\PointerAbsolute.lpr:54 PairKeyCompare1(@v1, @v2);
000000010000161A 488D15FF090100 lea rdx,[rip+$000109FF] # $0000000100012020
0000000100001621 488D0DE8090100 lea rcx,[rip+$000109E8] # $0000000100012010
0000000100001628 E8A3FFFFFF call -$0000005D # $00000001000015D0 PAIRKEYCOMPARE1 PointerAbsolute.lpr:27
H:\Dev\Tests\00_PointerAbsolute\PointerAbsolute.lpr:55 PairKeyCompare2(@v1, @v2);
000000010000162D 488D15EC090100 lea rdx,[rip+$000109EC] # $0000000100012020
0000000100001634 488D0DD5090100 lea rcx,[rip+$000109D5] # $0000000100012010
000000010000163B E8B0FFFFFF call -$00000050 # $00000001000015F0 PAIRKEYCOMPARE2 PointerAbsolute.lpr:44
H:\Dev\Tests\00_PointerAbsolute\PointerAbsolute.lpr:57 readln;
0000000100001640 E88B6C0000 call +$00006C8B # $00000001000082D0 fpc_get_input
0000000100001645 4889C1 mov rcx,rax
0000000100001648 E873710000 call +$00007173 # $00000001000087C0 FPC_READLN_END
000000010000164D E8DE310000 call +$000031DE # $0000000100004830 FPC_IOCHECK
H:\Dev\Tests\00_PointerAbsolute\PointerAbsolute.lpr:58 end.
0000000100001652 E889360000 call +$00003689 # $0000000100004CE0 FPC_DO_EXIT
0000000100001657 90 nop
0000000100001658 488D642428 lea rsp,[rsp+$28]
000000010000165D C3 ret