summaryrefslogtreecommitdiff
path: root/CSAPP/tmul.s
blob: 52cee75688875dfa4fe7e8cec7919bd86cee9ab3 (plain)
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