Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 8062 → Rev 8063

/programs/develop/libraries/TinyGL/asm_fork/list.asm
5,8 → 5,10
db 'gl',`a,' ',c,0
}
include 'opinfo.inc'
purge ADD_OP
 
;указатели на функции ;static void (*op_table_func[])(GLContext *,GLParam *)=
align 4
op_table_func:
macro ADD_OP a,b,c
{
13,8 → 15,10
dd glop#a
}
include 'opinfo.inc'
purge ADD_OP
 
;число параметров в функциях
align 4
op_table_size:
macro ADD_OP a,b,c
{
21,8 → 25,20
dd b+1
}
include 'opinfo.inc'
purge ADD_OP
 
;коды функций у которых нет входных параметров
align 4
macro ADD_OP a,b,c
{
if b eq 0
op_#a dd OP_#a
end if
}
include 'opinfo.inc'
purge ADD_OP
 
 
;output:
; eax = context.shared_state.lists[list]
align 4
30,8 → 46,7
mov eax,[context]
mov eax,[eax+GLContext.shared_state]
mov ebx,[list]
shl ebx,2
add eax,ebx
lea eax,[eax+4*ebx]
mov eax,[eax]
ret
endp
55,10 → 70,9
.end_w:
 
stdcall gl_free,edx
mov ebx,[ebx+GLContext.shared_state] ;ebx = &context.shared_state.lists
mov ecx,[list]
shl ecx,2
mov ebx,[ebx+GLContext.shared_state] ;ebx = &context.shared_state.lists
add ebx,ecx
lea ebx,[ebx+4*ecx]
mov dword[ebx],0 ;=NULL
ret
endp
77,8 → 91,7
mov ebx,[context]
mov ebx,[ebx+GLContext.shared_state]
mov ecx,[list]
shl ecx,2
add ebx,ecx
lea ebx,[ebx+4*ecx]
mov [ebx],eax ;context.shared_state.lists[list]=l
ret
endp
116,18 → 129,15
pushad
mov edx,[context]
 
lea ebx,[op_table_size]
mov ecx,[p]
mov ecx,[ecx]
shl ecx,2
add ecx,ebx
mov ecx,[ecx] ;код операции
lea ecx,[op_table_size+4*ecx]
mov ecx,[ecx] ;ecx = кол-во параметров в компилируемой функции
mov ebx,[edx+GLContext.current_op_buffer_index]
mov eax,[edx+GLContext.current_op_buffer]
 
; we should be able to add a NextBuffer opcode
mov esi,ebx
add esi,ecx
lea esi,[ebx+ecx]
cmp esi,(OP_BUFFER_MAX_SIZE-2)
jle @f
mov edi,eax
135,9 → 145,7
mov dword[eax+offs_gpbu_next],0 ;=NULL
 
mov dword[edi+offs_gpbu_next],eax
mov esi,ebx
shl esi,2
add esi,edi
lea esi,[edi+4*ebx]
mov dword[esi+offs_gpbu_ops],OP_NextBuffer
mov dword[esi+offs_gpbu_ops+4],eax
 
147,9 → 155,7
 
mov esi,[p]
@@:
mov edi,ebx
shl edi,2
add edi,eax
lea edi,[eax+4*ebx]
movsd
inc ebx
loop @b