1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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
|