apply to that specific program only; other changes apply to all of
them.
+Changes in 3.08:
+ * SYSLINUX: Fix performance regression (-s mode always enabled.)
+
Changes in 3.07:
* Fix chainloading (chain.c32).
* Fix zlib build problem.
loop .search
.miss:
+ TRACER 'M'
; Need to load it. Highly inefficient cache replacement
; algorithm: Least Recently Written (LRW)
push bx
ret
.hit: ; We have it; get the pointer
+ TRACER 'H'
sub si,CachePtrs
shl si,SECTOR_SHIFT-2
pop cx
push eax
.getfragment:
xor ebp,ebp ; Fragment sector count
+ push edx ; Starting sector pointer
.getseccnt:
inc bp
dec cx
xor eax,eax
mov ax,es
shl ax,4
- add ax,bx ; Now DI = how far into 64K block we are
+ add ax,bx ; Now AX = how far into 64K block we are
not ax ; Bytes left in 64K block
inc eax
shr eax,SECTOR_SHIFT ; Sectors left in 64K block
cmp bp,ax
jnb .do_read ; Unless there is at least 1 more sector room...
- lea eax,[edx+1] ; Linearly next sector
+ mov eax,edx ; Current sector
+ inc edx ; Predict it's the linearly next sector
call nextsector
jc .do_read
- cmp edx,eax
+ cmp edx,eax ; Did it match?
jz .getseccnt
.do_read:
- mov eax,edx
+ pop eax ; Starting sector pointer
call getlinsecsr
lea eax,[eax+ebp-1] ; This is the last sector actually read
shl bp,9
;; Write hexadecimal numbers to the console
;;
+ section .text
;
; writehex[248]: Write a hex number in (AL, AX, EAX) to the console
;