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
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
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
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