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/tmul.s | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 CSAPP/tmul.s (limited to 'CSAPP/tmul.s') diff --git a/CSAPP/tmul.s b/CSAPP/tmul.s new file mode 100644 index 0000000..52cee75 --- /dev/null +++ b/CSAPP/tmul.s @@ -0,0 +1,43 @@ + .file "tmul.c" + .text + .globl tmul_ok_asm + .type tmul_ok_asm, @function +tmul_ok_asm: +.LFB0: + .cfi_startproc + imulq %rdi, %rsi + movq %rsi, (%rdx) +# Code deleted +# testq %rsi, %rsi +# setg %al +# Code inserted + setae %al +# End of code inserted + movzbl %al, %eax + ret + .cfi_endproc +.LFE0: + .size tmul_ok_asm, .-tmul_ok_asm + .globl umul_ok_asm + .type umul_ok_asm, @function +umul_ok_asm: +.LFB1: + .cfi_startproc + movq %rdx, %rcx #Save copy of dest + movq %rsi, %rax #copy y to %rax + mulq %rdi #unsigned multiplication + movq %rax, (%rcx) #copy result (low 64-bit) to dest + setae %al #Set low-order byt according to mulq +# Code removed +# imulq %rdi, %rsi +# movq %rsi, (%rdx) +# testq %rsi, %rsi +# setne %al +# End of code removed + movzbl %al, %eax + ret + .cfi_endproc +.LFE1: + .size umul_ok_asm, .-umul_ok_asm + .ident "GCC: (GNU) 5.3.1 20160406 (Red Hat 5.3.1-6)" + .section .note.GNU-stack,"",@progbits -- cgit v1.2.3