* Direct params to internal assembler

This commit is contained in:
marco 2000-01-11 21:11:34 +00:00
parent e8258f23c9
commit f2142127d8

View File

@ -23,7 +23,7 @@ asm
push %ecx
push %edx
// decide what type it is
movl 12(%ebp),%ebx
movl TypeInfo,%ebx
movb (%ebx),%al
// This is MANIFESTLY wrong
subb $9,%al
@ -62,7 +62,7 @@ asm
addl $4,%ebx
// %ebx points to offset in record.
// Us it to calculate data
movl 8(%ebp),%eax
movl Data,%eax
addl (%ebx),%eax
addl $4,%ebx
// push data
@ -92,14 +92,14 @@ asm
// calculate data
movl %ecx,%eax
imull %edx,%eax
addl 8(%ebp),%eax
addl Data,%eax
// push data
pushl %eax
call INITIALIZE
jmp .LMyArrayInitLoop
// AnsiString handling :
.LDoAnsiStringInit:
movl 8(%ebp), %eax
movl Data, %eax
movl $0,(%eax)
.LExitInitialize:
pop %edx
@ -116,7 +116,7 @@ asm
push %ecx
push %edx
// decide what type it is
movl 12(%ebp),%ebx
movl TypeInfo,%ebx
movb (%ebx),%al
subb $9,%al
jz .LDoAnsiStringFinal
@ -154,7 +154,7 @@ asm
addl $4,%ebx
// %ebx points to offset.
// Use to calculate data
movl 8(%ebp),%eax
movl Data,%eax
addl (%ebx),%eax
addl $4,%ebx
// push data
@ -184,14 +184,14 @@ asm
// calculate data
movl %ecx,%eax
imull %edx,%eax
addl 8(%ebp),%eax
addl Data,%eax
// push data
pushl %eax
call FINALIZE
jmp .LMyArrayFinalLoop
// AnsiString handling :
.LDoAnsiStringFinal:
pushl 8(%ebp)
pushl Data
call ANSISTR_DECR_REF
.LExitFinalize:
pop %edx
@ -209,7 +209,7 @@ asm
push %ecx
push %edx
// decide what type it is
movl 12(%ebp),%ebx
movl TypeInfo,%ebx
movb (%ebx),%al
subb $9,%al
jz .LDoAnsiStringAddRef
@ -242,7 +242,7 @@ asm
decl %edx
jl .LExitAddRef
// Calculate data
movl 8(%ebp),%eax
movl Data,%eax
addl (%ebx),%eax
addl $4,%ebx
// Push type
@ -270,14 +270,14 @@ asm
// calculate data
movl %ecx,%eax
imull %edx,%eax
addl 8(%ebp),%eax
addl Data,%eax
// push data
pushl %eax
call ADDREF
jmp .LMyArrayAddRefLoop
// AnsiString handling :
.LDoAnsiStringAddRef:
pushl 8(%ebp)
pushl Data
call ANSISTR_INCR_REF
.LExitAddRef:
pop %edx
@ -295,7 +295,7 @@ asm
push %ecx
push %edx
// decide what type it is
movl 12(%ebp),%ebx
movl TypeInfo,%ebx
movb (%ebx),%al
subb $9,%al
jz .LDoAnsiStringDecRef
@ -328,7 +328,7 @@ asm
decl %edx
jl .LExitDecRef
// Calculate data
movl 8(%ebp),%eax
movl Data,%eax
addl (%ebx),%eax
addl $4,%ebx
// Push type
@ -356,14 +356,14 @@ asm
// calculate data
movl %ecx,%eax
imull %edx,%eax
addl 8(%ebp),%eax
addl Data,%eax
// push data
pushl %eax
call DECREF
jmp .LMyArrayDecRefLoop
// AnsiString handling :
.LDoAnsiStringDecRef:
movl 8(%ebp),%eax
movl Data,%eax
pushl %eax
call ANSISTR_DECR_REF
.LExitDecRef:
@ -375,7 +375,10 @@ end;
{
$Log$
Revision 1.18 2000-01-07 16:41:33 daniel
Revision 1.19 2000-01-11 21:11:34 marco
* Direct params to internal assembler
Revision 1.18 2000/01/07 16:41:33 daniel
* copyright 2000
Revision 1.17 1999/07/31 22:27:28 michael