Vincent Snijders wrote: > Hi, > > Suppose I have the following code: > > var > a,b: dword; > c: qword; > > begin > a := 10000000; > b := 20000000; > c := a * b; > writeln(c); > end. > > Now, although c is large enough to contain the result only the lower > dword is filled. I can force correct results by using c := qword(a) * b, > but the slow fpc_mul_qword is used. > > The code generated for the above sample is: > # [16] c:=a*b; > movl U_P$PROJECT1_A,%edx > movl U_P$PROJECT1_B,%eax > mull %edx > movl $0,%edx > movl %eax,U_P$PROJECT1_C > movl %edx,U_P$PROJECT1_C+4 > > What I want is the above code, but without the "movl $0,%edx" > instruction. Is there a way to do this (wihtout using fpc_mul_qword).
Only assembler for now. Any suggestions how the compiler could be told to generate such code? _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal