ObjFW  Check-in [7f7b2bbc90]

Overview
Comment:*-x86_64-win64.S: Add .scl and .type

This is similar to .type and .size in ELF. Adding these should help with
the patched binutils that MSYS2 uses.

Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 7f7b2bbc90ff8094babf2027d9b4cdb740dc66d8af2fe9a159ba3f4ceb025fa0
User & Date: js on 2021-03-23 23:07:46
Other Links: manifest | tags
Context
2021-03-23
23:57
Remove -Wl,--default-image-base-low again check-in: 1ec5a2b219 user: js tags: trunk
23:07
*-x86_64-win64.S: Add .scl and .type check-in: 7f7b2bbc90 user: js tags: trunk
2021-03-21
13:30
Remove Travis support check-in: 4bc6412b3a user: js tags: trunk
Changes

Modified src/forwarding/forwarding-x86_64-win64.S from [055654d84b] to [1a13549dcf].

85
86
87
88
89
90
91




92
93
94
95
96
97
98
	movq	-0x30(%rbp), %rcx
	movq	-0x38(%rbp), %rdx

	movq	%rbp, %rsp
	popq	%rbp

	jmp	of_method_not_found





of_forward_stret:
	pushq	%rbp
	movq	%rsp, %rbp

	/* Save all arguments */
	subq	$0x90, %rsp	/* 16-byte alignment */







>
>
>
>







85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
	movq	-0x30(%rbp), %rcx
	movq	-0x38(%rbp), %rdx

	movq	%rbp, %rsp
	popq	%rbp

	jmp	of_method_not_found
.def of_forward
.scl 2
.type 32
.endef

of_forward_stret:
	pushq	%rbp
	movq	%rsp, %rbp

	/* Save all arguments */
	subq	$0x90, %rsp	/* 16-byte alignment */
158
159
160
161
162
163
164




165
166
167
168
169
170
171
	movq	-0x38(%rbp), %rdx
	movq	-0x40(%rbp), %r8

	movq	%rbp, %rsp
	popq	%rbp

	jmp	of_method_not_found_stret





init:
	leaq	module(%rip), %rcx
	jmp	__objc_exec_class

.section .ctors, "aw"
	.quad init







>
>
>
>







162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
	movq	-0x38(%rbp), %rdx
	movq	-0x40(%rbp), %r8

	movq	%rbp, %rsp
	popq	%rbp

	jmp	of_method_not_found_stret
.def of_forward_stret
.scl 2
.type 32
.endef

init:
	leaq	module(%rip), %rcx
	jmp	__objc_exec_class

.section .ctors, "aw"
	.quad init

Modified src/runtime/lookup-asm/lookup-asm-x86_64-win64.S from [7209ab94f0] to [57823d1901].

63
64
65
66
67
68
69




70
71
72
73
74
75
76
77
78
79
80
81




82
83
84
85
86
87
88
	movzbl	%cl, %r8d

	leaq	objc_tagged_pointer_classes(%rip), %rax
	movq	(%rax,%r8,4), %r8
	movq	56(%r8), %r8

	jmp	.Lmain_\name




.endm

.macro generate_lookup_super name lookup
\name:
	movq	%rcx, %r8
	movq	(%rcx), %rcx
	testq	%rcx, %rcx
	jz	ret_nil

	movq	8(%r8), %r8
	movq	56(%r8), %r8
	jmp	.Lmain_\lookup




.endm

generate_lookup objc_msg_lookup objc_method_not_found
generate_lookup objc_msg_lookup_stret objc_method_not_found_stret
generate_lookup_super objc_msg_lookup_super objc_msg_lookup
generate_lookup_super objc_msg_lookup_super_stret objc_msg_lookup_stret








>
>
>
>












>
>
>
>







63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
	movzbl	%cl, %r8d

	leaq	objc_tagged_pointer_classes(%rip), %rax
	movq	(%rax,%r8,4), %r8
	movq	56(%r8), %r8

	jmp	.Lmain_\name
.def \name
.scl 2
.type 32
.endef
.endm

.macro generate_lookup_super name lookup
\name:
	movq	%rcx, %r8
	movq	(%rcx), %rcx
	testq	%rcx, %rcx
	jz	ret_nil

	movq	8(%r8), %r8
	movq	56(%r8), %r8
	jmp	.Lmain_\lookup
.def \name
.scl 2
.type 32
.endef
.endm

generate_lookup objc_msg_lookup objc_method_not_found
generate_lookup objc_msg_lookup_stret objc_method_not_found_stret
generate_lookup_super objc_msg_lookup_super objc_msg_lookup
generate_lookup_super objc_msg_lookup_super_stret objc_msg_lookup_stret