# );\r
#------------------------------------------------------------------------------\r
ASM_PFX(InternalMathMultU64x64):\r
- push %ebx\r
- movl 8(%esp), %ebx\r
- movl 16(%esp), %edx\r
- movl %ebx, %ecx\r
- movl %edx, %eax\r
- imull 20(%esp), %ebx\r
- imull 12(%esp), %edx\r
- addl %edx, %ebx\r
- mull %ecx\r
- addl %ebx, %edx\r
+ push %ebx \r
+ movl 8(%esp), %ebx # ebx <- M1[0..31] \r
+ movl 16(%esp), %edx # edx <- M2[0..31] \r
+ movl %ebx, %ecx \r
+ movl %edx, %eax \r
+ imull 20(%esp), %ebx # ebx <- M1[0..31] * M2[32..63] \r
+ imull 12(%esp), %edx # edx <- M1[32..63] * M2[0..31] \r
+ addl %edx, %ebx # carries are abandoned \r
+ mull %ecx # edx:eax <- M1[0..31] * M2[0..31]\r
+ addl %ebx, %edx # carries are abandoned \r
pop %ebx\r
ret\r