Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 42968 | Differences between
and this patch

Collapse All | Expand All

(-)mysql/strings/longlong2str-x86.s (-13 / +29 lines)
Lines 19-24 Link Here
19
	.file	"longlong2str.s"
19
	.file	"longlong2str.s"
20
	.version "1.01"
20
	.version "1.01"
21
21
22
	.section	.rodata
23
	.align 32
24
	.type	_dig_vec_upper, @object
25
	.size	_dig_vec_upper, 37
26
_dig_vec_upper:
27
	.string "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
28
22
.text
29
.text
23
	.align 4
30
	.align 4
24
31
Lines 31-41 longlong2str: Link Here
31
	pushl %esi
38
	pushl %esi
32
	pushl %edi
39
	pushl %edi
33
	pushl %ebx
40
	pushl %ebx
41
42
	call __i686.get_pc_thunk.bx
43
	addl $_GLOBAL_OFFSET_TABLE_,%ebx
44
34
	movl 100(%esp),%esi	# Lower part of val 
45
	movl 100(%esp),%esi	# Lower part of val 
35
	movl 104(%esp),%ebp	# Higher part of val 
46
	movl 104(%esp),%ebp	# Higher part of val 
36
	movl 108(%esp),%edi	# get dst 
47
	movl 108(%esp),%edi	# get dst 
37
	movl 112(%esp),%ebx	# Radix 
48
	movl 112(%esp),%eax	# Radix 
38
	movl %ebx,%eax
39
	testl %eax,%eax
49
	testl %eax,%eax
40
	jge .L144
50
	jge .L144
41
51
Lines 50-56 longlong2str: Link Here
50
	adcl $0,%ebp
60
	adcl $0,%ebp
51
	negl %ebp
61
	negl %ebp
52
.L146:
62
.L146:
53
	negl %ebx		# Change radix to positive 
63
	negl 112(%esp)		# Change radix to positive 
54
	jmp .L148
64
	jmp .L148
55
	.align 4
65
	.align 4
56
.L144:
66
.L144:
Lines 77-89 longlong2str: Link Here
77
87
78
	movl %ebp,%eax		# High part of value 
88
	movl %ebp,%eax		# High part of value 
79
	xorl %edx,%edx
89
	xorl %edx,%edx
80
	divl %ebx
90
	divl 112(%esp)
81
	movl %eax,%ebp
91
	movl %eax,%ebp
82
	movl %esi,%eax
92
	movl %esi,%eax
83
	divl %ebx
93
	divl 112(%esp)
84
	decl %ecx
94
	decl %ecx
85
	movl %eax,%esi		# quotent in ebp:esi 
95
	movl %eax,%esi		# quotent in ebp:esi 
86
	movb _dig_vec_upper(%edx),%al   # al is faster than dl 
96
	movb _dig_vec_upper@GOTOFF(%ebx,%edx),%al   # al is faster than dl
87
	movb %al,(%ecx)		# store value in buff 
97
	movb %al,(%ecx)		# store value in buff 
88
	.align 4
98
	.align 4
89
.L155:
99
.L155:
Lines 93-106 longlong2str: Link Here
93
	jl .L153
103
	jl .L153
94
	je .L10_mov		# Ready 
104
	je .L10_mov		# Ready 
95
	movl %esi,%eax
105
	movl %esi,%eax
96
	movl $_dig_vec_upper,%ebp
97
	.align 4
106
	.align 4
98
107
99
.L154:				# Do rest with integer precision 
108
.L154:				# Do rest with integer precision 
100
	cltd
109
	cltd
101
	divl %ebx
110
	divl 112(%esp)
102
	decl %ecx
111
	decl %ecx
103
	movb (%edx,%ebp),%dl	# bh is always zero as ebx=radix < 36 
112
	movb _dig_vec_upper@GOTOFF(%ebx,%edx),%dl
104
	testl %eax,%eax
113
	testl %eax,%eax
105
	movb %dl,(%ecx)
114
	movb %dl,(%ecx)
106
	jne .L154
115
	jne .L154
Lines 137-145 longlong2str: Link Here
137
#	
146
#	
138
147
139
	.align 4
148
	.align 4
140
.Ltmp:
141
        .long 0xcccccccd
142
	.align 4
143
	
149
	
144
.globl	longlong10_to_str
150
.globl	longlong10_to_str
145
	.type	 longlong10_to_str,@function
151
	.type	 longlong10_to_str,@function
Lines 202-208 longlong10_to_str: Link Here
202
208
203
	# The following code uses some tricks to change division by 10 to
209
	# The following code uses some tricks to change division by 10 to
204
	# multiplication and shifts
210
	# multiplication and shifts
205
	movl .Ltmp,%esi		# set %esi to 0xcccccccd
211
	movl $0xcccccccd,%esi	# set %esi to 0xcccccccd
206
	
212
	
207
.L10_40:
213
.L10_40:
208
        movl %ebx,%eax
214
        movl %ebx,%eax
Lines 221-223 longlong10_to_str: Link Here
221
227
222
.L10end:
228
.L10end:
223
	.size	 longlong10_to_str,.L10end-longlong10_to_str
229
	.size	 longlong10_to_str,.L10end-longlong10_to_str
230
231
	.section .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits
232
.globl __i686.get_pc_thunk.bx
233
	.hidden	__i686.get_pc_thunk.bx
234
	.type	__i686.get_pc_thunk.bx, @function
235
__i686.get_pc_thunk.bx:
236
	movl	(%esp), %ebx
237
	ret
238
239
	.section	.note.GNU-stack,"",@progbits
(-)mysql/strings/my_strtoll10-x86.s (-2 / +16 lines)
Lines 18-24 Link Here
18
	
18
	
19
	.file	"my_strtoll10-x86.s"
19
	.file	"my_strtoll10-x86.s"
20
	.version "01.01"
20
	.version "01.01"
21
.data
21
.section .rodata
22
	.align 32
22
	.align 32
23
	.type	 lfactor,@object
23
	.type	 lfactor,@object
24
	.size	 lfactor,36
24
	.size	 lfactor,36
Lines 315-321 my_strtoll10: Link Here
315
.Lend_i_and_j:
315
.Lend_i_and_j:
316
	movl %esi,%ecx
316
	movl %esi,%ecx
317
	subl -12(%ebp),%ecx	# ecx= number of digits in second part
317
	subl -12(%ebp),%ecx	# ecx= number of digits in second part
318
	movl lfactor(,%ecx,4),%eax
318
319
	call __i686.get_pc_thunk.bx
320
	addl $_GLOBAL_OFFSET_TABLE_,%ebx
321
322
	movl lfactor@GOTOFF(%ebx,%ecx,4),%eax
319
	jmp .L523
323
	jmp .L523
320
324
321
	# Return -8(%ebp) * $1000000000 + edi
325
	# Return -8(%ebp) * $1000000000 + edi
Lines 400-402 my_strtoll10: Link Here
400
        .comm   end_ptr,120,32
404
        .comm   end_ptr,120,32
401
        .comm   error,120,32
405
        .comm   error,120,32
402
	.ident	"Monty"
406
	.ident	"Monty"
407
408
	.section .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits
409
.globl __i686.get_pc_thunk.bx
410
	.hidden	__i686.get_pc_thunk.bx
411
	.type	__i686.get_pc_thunk.bx, @function
412
__i686.get_pc_thunk.bx:
413
	movl	(%esp), %ebx
414
	ret
415
416
	.section	.note.GNU-stack,"",@progbits
(-)mysql/strings/strings-x86.s (+2 lines)
Lines 415-417 next_str: Link Here
415
	ret
415
	ret
416
.strxmov_end:
416
.strxmov_end:
417
	.size	 strxmov,.strxmov_end-strxmov
417
	.size	 strxmov,.strxmov_end-strxmov
418
419
	.section	.note.GNU-stack,"",@progbits

Return to bug 42968