ObjFW  Check-in [9adb8518bb]

Overview
Comment:call-x86_64-elf.S: Fix use of overwritten %rdi
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 9adb8518bb3259c734895fbd30b7f41c33cdc8592ec588cceac9fbcd084688e6
User & Date: js on 2017-09-17 03:27:04
Other Links: manifest | tags
Context
2017-09-17
10:48
invoke-x86_64.m: Support complex long double check-in: 4628f6bbff user: js tags: trunk
03:27
call-x86_64-elf.S: Fix use of overwritten %rdi check-in: 9adb8518bb user: js tags: trunk
03:18
invoke-x86_64.m: Support complex {float,double} check-in: b35074d74a user: js tags: trunk
Changes

Modified src/invocation/call-x86_64-elf.S from [fa9ea51b67] to [dd38e0cbde].

72
73
74
75
76
77
78
79

80
81
82
83
84
85

86
87
88
89
90
91
92
	movq	40(%rdi), %r9
	movq	32(%rdi), %r8
	movq	24(%rdi), %rcx
	movq	16(%rdi), %rdx
	movq	8(%rdi), %rsi
	movq	0(%rdi), %rdi

	movq	-16(%rbp), %r11


	cmpb	$3, 225(%rdi)
	je	.jmp_r11
	cmpb	$4, 225(%rdi)
	je	.jmp_r11


	call	*%r11

.after_send:
	movq	-8(%rbp), %rdi
	movq	%rax, 48(%rdi)
	movq	%rdx, 56(%rdi)
	movdqa	%xmm0, 64(%rdi)







|
>

|
|
|
|

>







72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
	movq	40(%rdi), %r9
	movq	32(%rdi), %r8
	movq	24(%rdi), %rcx
	movq	16(%rdi), %rdx
	movq	8(%rdi), %rsi
	movq	0(%rdi), %rdi

	movq	-8(%rbp), %r11
	movb	225(%r11), %r11b

	cmpb	$3, %r11b
	je	.jmp_into_method
	cmpb	$4, %r11b
	je	.jmp_into_method

	movq	-16(%rbp), %r11
	call	*%r11

.after_send:
	movq	-8(%rbp), %rdi
	movq	%rax, 48(%rdi)
	movq	%rdx, 56(%rdi)
	movdqa	%xmm0, 64(%rdi)
109
110
111
112
113
114
115
116

117
118
119
120
121
122
123
124
125
.lookup_stret:
	movq	16(%rdi), %rsi
	movq	8(%rdi), %rdi
	call	objc_msg_lookup_stret@PLT

	jmp	.after_lookup

.jmp_r11:

	jmp	*%r11

.pop_long_double:
	fstpt	192(%rdi)
	jmp	.return

#ifdef OF_LINUX
.section .note.GNU-stack, "", %progbits
#endif







|
>









111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
.lookup_stret:
	movq	16(%rdi), %rsi
	movq	8(%rdi), %rdi
	call	objc_msg_lookup_stret@PLT

	jmp	.after_lookup

.jmp_into_method:
	movq	-16(%rbp), %r11
	jmp	*%r11

.pop_long_double:
	fstpt	192(%rdi)
	jmp	.return

#ifdef OF_LINUX
.section .note.GNU-stack, "", %progbits
#endif