From d98f46ce647846b0aa30b2e16a30fd4e152a1bf5 Mon Sep 17 00:00:00 2001 From: Carlos Maiolino Date: Thu, 10 Jul 2025 22:55:07 +0200 Subject: Add new code Signed-off-by: Carlos Maiolino --- CSAPP/leaq.s | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 CSAPP/leaq.s (limited to 'CSAPP/leaq.s') diff --git a/CSAPP/leaq.s b/CSAPP/leaq.s new file mode 100644 index 0000000..a97b842 --- /dev/null +++ b/CSAPP/leaq.s @@ -0,0 +1,35 @@ + .file "leaq.c" + .text + .globl scale + .type scale, @function +scale: +.LFB0: + .cfi_startproc + pushq %rbp + .cfi_def_cfa_offset 16 + .cfi_offset 6, -16 + movq %rsp, %rbp + .cfi_def_cfa_register 6 + movq %rdi, -24(%rbp) + movq %rsi, -32(%rbp) + movq %rdx, -40(%rbp) + movq -32(%rbp), %rax + leaq 0(,%rax,4), %rdx + movq -24(%rbp), %rax + leaq (%rdx,%rax), %rcx + movq -40(%rbp), %rdx + movq %rdx, %rax + addq %rax, %rax + addq %rdx, %rax + salq $2, %rax + addq %rcx, %rax + movq %rax, -8(%rbp) + movq -8(%rbp), %rax + popq %rbp + .cfi_def_cfa 7, 8 + ret + .cfi_endproc +.LFE0: + .size scale, .-scale + .ident "GCC: (GNU) 10.2.1 20200723 (Red Hat 10.2.1-1)" + .section .note.GNU-stack,"",@progbits -- cgit v1.2.3