Rev 5363 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5363 | Rev 9715 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2 | ;; ;; |
2 | ;; ;; |
3 | ;; Copyright (C) KolibriOS team 2004-2015. All rights reserved. ;; |
3 | ;; Copyright (C) KolibriOS team 2004-2022. All rights reserved. ;; |
4 | ;; Distributed under terms of the GNU General Public License ;; |
4 | ;; Distributed under terms of the GNU General Public License ;; |
5 | ;; ;; |
5 | ;; ;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 7... | Line 7... | ||
7 | 7 | ||
Line 8... | Line 8... | ||
8 | $Revision: 5363 $ |
8 | $Revision: 9715 $ |
9 | 9 | ||
10 | 10 | ||
Line 580... | Line 580... | ||
580 | .parent: |
580 | .parent: |
581 | test edi, edi |
581 | test edi, edi |
582 | je .done |
582 | je .done |
Line 583... | Line 583... | ||
583 | 583 | ||
584 | mov ecx, [edx+28] |
584 | mov ecx, [edx+28] |
585 | cmp edx, [mst.treebins+ecx*4] |
585 | cmp edx, [mst.treebins + ecx*4] |
586 | lea ecx, [mst.treebins+ecx*4] |
586 | lea ecx, [mst.treebins + ecx*4] |
Line 587... | Line 587... | ||
587 | jne .l3 |
587 | jne .l3 |
588 | 588 | ||
589 | test eax, eax |
589 | test eax, eax |
Line 638... | Line 638... | ||
638 | mov ebp, esi |
638 | mov ebp, esi |
Line 639... | Line 639... | ||
639 | 639 | ||
Line 640... | Line 640... | ||
640 | push edi |
640 | push edi |
641 | 641 | ||
Line 642... | Line 642... | ||
642 | bsf eax, [mst.treemap] |
642 | bsf eax, [mst.treemap] |
Line 643... | Line 643... | ||
643 | mov ecx, [mst.treebins+eax*4] |
643 | mov ecx, [mst.treebins + eax*4] |
644 | 644 | ||
Line 688... | Line 688... | ||
688 | 688 | ||
689 | ; r = chunk_plus_offset((mchunkptr)v, nb); |
689 | ; r = chunk_plus_offset((mchunkptr)v, nb); |
Line 690... | Line 690... | ||
690 | ; unlink_large_chunk(v); |
690 | ; unlink_large_chunk(v); |
691 | 691 | ||
692 | mov edx, ebx |
692 | mov edx, ebx |
Line 693... | Line 693... | ||
693 | lea esi, [ebx+ebp] |
693 | lea esi, [ebx + ebp] |
Line 694... | Line 694... | ||
694 | call unlink_large_chunk |
694 | call unlink_large_chunk |
695 | 695 | ||
Line 696... | Line 696... | ||
696 | ; if (rsize < 16) |
696 | ; if (rsize < 16) |
Line 697... | Line 697... | ||
697 | 697 | ||
Line 698... | Line 698... | ||
698 | cmp edi, 16 |
698 | cmp edi, 16 |
Line 699... | Line 699... | ||
699 | jae .split |
699 | jae .split |
700 | 700 | ||
701 | ; v->head = (rsize + nb)|PINUSE_BIT|CINUSE_BIT; |
701 | ; v->head = (rsize + nb)|PINUSE_BIT|CINUSE_BIT; |
702 | 702 | ||
703 | lea ecx, [edi+ebp] |
703 | lea ecx, [edi + ebp] |
704 | 704 | ||
705 | ; (v+rsize + nb)->head |= PINUSE_BIT; |
705 | ; (v+rsize + nb)->head |= PINUSE_BIT; |
Line 706... | Line 706... | ||
706 | 706 | ||
707 | add edi, ebx |
707 | add edi, ebx |
Line 708... | Line 708... | ||
708 | lea eax, [edi+ebp+4] |
708 | lea eax, [edi + ebp + 4] |
Line 709... | Line 709... | ||
709 | pop edi |
709 | pop edi |
Line 784... | Line 784... | ||
784 | shr edx, 8 |
784 | shr edx, 8 |
785 | bsr eax, edx |
785 | bsr eax, edx |
786 | lea ecx, [eax+7] |
786 | lea ecx, [eax+7] |
787 | shr esi, cl |
787 | shr esi, cl |
788 | and esi, 1 |
788 | and esi, 1 |
789 | lea ecx, [esi+eax*2] |
789 | lea ecx, [esi + eax*2] |
790 | mov [.idx], ecx |
790 | mov [.idx], ecx |
Line 791... | Line 791... | ||
791 | 791 | ||
Line 792... | Line 792... | ||
792 | ; if ((t = ms.treebins[idx]) != 0) |
792 | ; if ((t = ms.treebins[idx]) != 0) |
793 | 793 | ||
794 | mov eax, [mst.treebins+ecx*4] |
794 | mov eax, [mst.treebins + ecx*4] |
Line 795... | Line 795... | ||
795 | test eax, eax |
795 | test eax, eax |
Line 847... | Line 847... | ||
847 | shr esi, 31 |
847 | shr esi, 31 |
Line 848... | Line 848... | ||
848 | 848 | ||
Line 849... | Line 849... | ||
849 | ; if (rt != 0 && rt != t) |
849 | ; if (rt != 0 && rt != t) |
850 | 850 | ||
851 | test ecx, ecx |
851 | test ecx, ecx |
852 | mov eax, [eax+esi*4+16] |
852 | mov eax, [eax + esi*4+16] |
853 | jz @F |
853 | jz @F |
Line 854... | Line 854... | ||
854 | cmp ecx, eax |
854 | cmp ecx, eax |
Line 891... | Line 891... | ||
891 | and edx, [mst.treemap] |
891 | and edx, [mst.treemap] |
892 | jz @F |
892 | jz @F |
Line 893... | Line 893... | ||
893 | 893 | ||
894 | bsf eax, edx |
894 | bsf eax, edx |
895 | ; t = ms.treebins[i]; |
895 | ; t = ms.treebins[i]; |
Line 896... | Line 896... | ||
896 | mov eax, [mst.treebins+eax*4] |
896 | mov eax, [mst.treebins + eax*4] |
Line 897... | Line 897... | ||
897 | 897 | ||
898 | @@: |
898 | @@: |
Line 950... | Line 950... | ||
950 | 950 | ||
951 | ; r = chunk_plus_offset((mchunkptr)v, nb); |
951 | ; r = chunk_plus_offset((mchunkptr)v, nb); |
Line 952... | Line 952... | ||
952 | ; unlink_large_chunk(v); |
952 | ; unlink_large_chunk(v); |
953 | 953 | ||
954 | mov edx, ebp |
954 | mov edx, ebp |
Line 955... | Line 955... | ||
955 | lea esi, [ebx+ebp] |
955 | lea esi, [ebx + ebp] |
Line 956... | Line 956... | ||
956 | call unlink_large_chunk |
956 | call unlink_large_chunk |
957 | 957 | ||
Line 958... | Line 958... | ||
958 | ; if (rsize < 16) |
958 | ; if (rsize < 16) |
Line 959... | Line 959... | ||
959 | 959 | ||
Line 960... | Line 960... | ||
960 | cmp edi, 16 |
960 | cmp edi, 16 |
Line 961... | Line 961... | ||
961 | jae .large |
961 | jae .large |
962 | 962 | ||
963 | ; v->head = (rsize + nb)|PINUSE_BIT|CINUSE_BIT; |
963 | ; v->head = (rsize + nb)|PINUSE_BIT|CINUSE_BIT; |
964 | 964 | ||
965 | lea ecx, [edi+ebx] |
965 | lea ecx, [edi + ebx] |
966 | 966 | ||
967 | ; (v+rsize + nb)->head |= PINUSE_BIT; |
967 | ; (v+rsize + nb)->head |= PINUSE_BIT; |
Line 1023... | Line 1023... | ||
1023 | 1023 | ||
1024 | @@: |
1024 | @@: |
1025 | mov [eax+8], eax |
1025 | mov [eax+8], eax |
1026 | mov [eax+12], eax |
1026 | mov [eax+12], eax |
1027 | add eax, 16 |
1027 | add eax, 16 |
1028 | cmp eax, mst.smallbins+512 |
1028 | cmp eax, mst.smallbins + 512 |
Line 1029... | Line 1029... | ||
1029 | jb @B |
1029 | jb @B |
1030 | 1030 |