Codebase list fasm / 69067c9
New upstream version 1.73.13 Tomasz Buchert 4 years ago
5 changed file(s) with 59 addition(s) and 12 deletion(s). Raw diff Collapse all Expand all
Binary diff not shown
Binary diff not shown
3434 xor edi,edi
3535 mov eax,12
3636 syscall
37 mov r9,not 0FFFFFFFFh
38 test rax,r9
39 jnz no_low_memory
40 mov [additional_memory],eax
4137 mov ecx,[memory_setting]
4238 shl ecx,10
4339 jnz allocate_memory
4440 mov ecx,1000000h
4541 allocate_memory:
46 mov edi,[additional_memory]
47 add edi,ecx
42 mov r9d,eax
43 cmp rax,r9
44 jne high_brk
45 mov [additional_memory],eax
46 lea edi,[eax+ecx]
4847 mov eax,12
4948 syscall
50 mov r9,not 0FFFFFFFFh
51 test rax,r9
52 jnz no_low_memory
49 mov r9d,eax
50 cmp rax,r9
51 jne no_low_memory
5352 mov [memory_end],eax
5453 sub eax,[additional_memory]
5554 shr eax,2
5756 mov [additional_memory_end],eax
5857 mov [memory_start],eax
5958 ret
60
61 no_low_memory:
59 high_brk:
60 xor r9d,r9d
61 or r8,-1
62 mov r10d,62h ; MAP_PRIVATE + MAP_ANONYMOUS + MAP_32BIT
63 mov edx,3 ; PROT_READ + PROT_WRITE
64 mov esi,ecx
65 xor edi,edi
66 mov eax,9 ; sys_mmap
67 syscall
68 cmp eax,-1
69 je mmap_with_hint
70 mov r9d,eax
71 cmp rax,r9
72 jne mmap_unusable
73 add r9d,esi
74 jnc mmap_ok
75 mmap_unusable:
76 mov rdi,rax
77 mov eax,11 ; sys_munmap
78 syscall
79 mmap_with_hint:
80 mov r10d,22h ; MAP_PRIVATE + MAP_ANONYMOUS
81 mov edx,3 ; PROT_READ + PROT_WRITE
82 mov edi,480000h
83 mov eax,9 ; sys_mmap
84 syscall
85 cmp eax,-1
86 je no_low_memory
87 mov r9d,eax
88 cmp rax,r9
89 jne no_low_memory
90 add r9d,esi
91 jnc mmap_ok
92 no_low_memory:
93 mov esi,lf
94 call display_string
6295 push _no_low_memory
6396 jmp fatal_error
97 mmap_ok:
98 mov [additional_memory],eax
99 lea edi,[eax+esi]
100 mov [memory_end],edi
101 shr esi,2
102 add eax,esi
103 mov [additional_memory_end],eax
104 mov [memory_start],eax
105 ret
64106
65107 exit_program:
66108 movzx edi,al
3232 ; cannot simply be copied and put under another distribution licence
3333 ; (including the GNU Public Licence).
3434
35 VERSION_STRING equ "1.73.12"
35 VERSION_STRING equ "1.73.13"
3636
3737 VERSION_MAJOR = 1
3838 VERSION_MINOR = 73
00
11 Visit http://flatassembler.net/ for more information.
2
3
4 version 1.73.13 (July 14, 2019)
5
6 [-] Corrections in 64-bit Linux interface.
27
38
49 version 1.73.12 (May 19, 2019)