MS/CW-style inline assembly for GCC
Robert Dewar
dewar@gnat.com
Tue May 11 07:32:00 GMT 2004
Neil Booth wrote:
Robert Dewar wrote:-
Robert Dewar wrote:
For reference, the code on the x86 should look something like
(in Intel syntax):
lp: mov eax, [ebx]
adc eax, [ecx]
inc ebx
inc ecx
loop lp
that's the code that was wrong, should be
lp: mov eax, [ebx]
adc eax, [ecx]
lea ebx, [ebx+4]
lea ecx, [ecx+4]
loop lp
Except that loop decrements ecx and loops if non-zero, so I
think you've still got some work to do 8-)
OK, well I did say look something like :-)
Yes indeed we need to use some other register
than ecx for the second index register. Might
also be nice to store the result :-) Just goes to show
that dashing off code in email is a hazzardous
occupation. How about
lp: lodsw
adc eax, [ebx]
lea ebx, [ebx+4]
stosw
loop lp
Here source registers are esi,ebx and destination register is edi
Did someone check what GCC generates for the C code?
More information about the Gcc
mailing list