ramp 0.7.0

A high-performance multiple-precision arithmetic library
Documentation
    .text
    .file "mul_1.S"

#define wp %rdi
#define xp %rsi
#define n_param %edx
#define n %r11d
#define v %rcx

    .section .text.ramp_mul_1,"ax",@progbits
    .globl ramp_mul_1
    .align 16, 0x90
    .type ramp_mul_1,@function
ramp_mul_1:
    .cfi_startproc

#define L(lbl) .LMUL_ ## lbl

    mov n_param, n # Move n away from %rdx

    mov (xp), %rax
    mul v
    mov %rax, (wp)

    dec n
    jz L(ret)
    add $8, wp
    add $8, xp
    mov %rdx, %r8
    .align 16
L(top):
    mov (xp), %rax
    mul v
    add %r8, %rax
    adc $0, %rdx
    mov %rax, (wp)
    add $8, wp
    add $8, xp
    dec n
    jz L(ret)
    mov %rdx, %r8
    jmp L(top)
L(ret):
    mov %rdx, %rax
    ret
L(tmp):
    .size ramp_mul_1, L(tmp) - ramp_mul_1
    .cfi_endproc