Subversion Repositories HelenOS

Rev

Rev 1037 | Rev 1052 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1037 Rev 1039
Line 149... Line 149...
149
		addl 8(%ebx), %ecx						# mbi->mem_upper
149
		addl 8(%ebx), %ecx						# mbi->mem_upper
150
		
150
		
151
		mem_invalid:
151
		mem_invalid:
152
		movl %ecx, e801memorysize
152
		movl %ecx, e801memorysize
153
		
153
		
154
		bt $3, %eax								# mbi->flags[3] (mods_count, mods_addr valid)	
154
		bt $3, %eax								# mbi->flags[3] (mods_count, mods_addr valid)
155
		jc mods_valid
155
		jc mods_valid
156
			
156
			
157
			xorl %ecx, %ecx
157
			xorl %ecx, %ecx
158
			xorl %edx, %edx
158
			movl %ecx, init
159
			jmp mods_invalid
159
			jmp mods_end
160
		
160
		
161
		mods_valid:
161
		mods_valid:
-
 
162
		
-
 
163
		xorq %rcx, %rcx
162
		movl 20(%ebx), %ecx						# mbi->mods_count
164
		movl 20(%ebx), %ecx						# mbi->mods_count
-
 
165
		movl %ecx, init
-
 
166
		
163
		cmpl $0, %ecx
167
		cmpl $0, %ecx
164
		je mods_invalid
168
		je mods_end
165
		
169
		
166
		xorq %rdx, %rdx
-
 
167
		movq %rdx, %rcx
-
 
168
		movl 24(%ebx), %esi						# mbi->mods_addr
170
		movl 24(%ebx), %esi						# mbi->mods_addr
169
		movl 0(%esi), %edx						# mods->mod_start
171
		movq $init, %rdi
-
 
172
		
170
		movl 4(%esi), %ecx						# mods->mod_end
173
		mods_loop:
-
 
174
			
171
		subl %edx, %ecx
175
			xorq %rdx, %rdx
-
 
176
			movl 0(%esi), %edx					# mods->mod_start
172
		addq $0xffffffff80000000, %rdx
177
			addq $0xffffffff80000000, %rdx
-
 
178
			movq %rdx, 4(%rdi)
173
		
179
			
174
		mods_invalid:
180
			xorq %rdx, %rdx
175
#		movq %rcx, init_size
181
			movl 4(%esi), %edx
-
 
182
			subl 0(%esi), %edx					# mods->mod_end - mods->mod_start
176
#		movq %rdx, init_addr
183
			movq %rdx, 12(%rdi)
-
 
184
			
-
 
185
			addl $16, %esi
-
 
186
			addq $16, %rdi
-
 
187
			
-
 
188
			loop mods_loop
-
 
189
			
-
 
190
		mods_end:
177
		
191
		
178
		bt $6, %eax								# mbi->flags[6] (mmap_length, mmap_addr valid)	
192
		bt $6, %eax								# mbi->flags[6] (mmap_length, mmap_addr valid)	
179
		jc mmap_valid
193
		jc mmap_valid
180
			
194
			
181
			xorl %edx, %edx
195
			xorl %edx, %edx