summaryrefslogtreecommitdiffstats
path: root/xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_x86_solaris_SUNW.s
blob: af665a16286f571ddf7b9d9c1f5b1792078031b6 (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
44
45
46
47
48
49
50
51
52
53
54
55
	.globl NS_InvokeByIndex
	.type NS_InvokeByIndex, @function
NS_InvokeByIndex:
	push       %ebp
	movl       %esp,%ebp
	push       %ebx
	call       .CG0.66
.CG0.66:
	pop        %ebx
	addl       $_GLOBAL_OFFSET_TABLE_+0x1,%ebx
	push       20(%ebp)
	push       16(%ebp)
	push       12(%ebp)
	push       8(%ebp)
	/ INLINE: invoke_by_index



	pushl	%ebx
	pushl	%esi
	movl	%esp, %ebx

	pushl	0x14(%ebp)
	pushl	0x10(%ebp)
	call	invoke_count_words
	mov	%ebx, %esp

	sall	$0x2 , %eax
	subl	%eax, %esp
	movl	%esp, %esi

	pushl	%esp
	pushl	0x14(%ebp)
	pushl	0x10(%ebp)
	call	invoke_copy_to_stack
	movl	%esi, %esp

	movl	0x8(%ebp), %ecx
	pushl	%ecx
	movl	(%ecx), %edx
	movl	0xc(%ebp), %eax
	movl	0x8(%edx, %eax, 4), %edx

	call	*%edx
	mov	%ebx, %esp
	popl	%esi
	popl	%ebx
	/ INLINE_END
	addl       $16,%esp
	pop        %ebx
	movl       %ebp,%esp
	pop        %ebp
	ret        
	.size NS_InvokeByIndex, . - NS_InvokeByIndex