ObjFW  Check-in [30ddefaf51]

Overview
Comment:*-x86-win32.S: Add .scl and .type
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 30ddefaf51a6ae83726d00632fedebae59143dfda1b503acd7479763e3aea855
User & Date: js on 2021-03-24 00:57:13
Other Links: manifest | tags
Context
2021-03-30
21:06
Rename OFProcess to OFSubprocess check-in: 79548b3c29 user: js tags: trunk
2021-03-24
00:57
*-x86-win32.S: Add .scl and .type check-in: 30ddefaf51 user: js tags: trunk
2021-03-23
23:57
Remove -Wl,--default-image-base-low again check-in: 1ec5a2b219 user: js tags: trunk
Changes

Modified src/forwarding/forwarding-x86-win32.S from [3ce3876d99] to [7cc7ad47e7].

71
72
73
74
75
76
77




78
79
80
81
82
83
84

0:
	addl	$20, %esp
	popl	%ebx
	popl	%ebp

	jmp	_of_method_not_found





_of_forward_stret:
	pushl	%ebp
	movl	%esp, %ebp

	pushl	%ebx
	subl	$20, %esp







>
>
>
>







71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88

0:
	addl	$20, %esp
	popl	%ebx
	popl	%ebp

	jmp	_of_method_not_found
.def _of_forward
.scl 2
.type 32
.endef

_of_forward_stret:
	pushl	%ebp
	movl	%esp, %ebp

	pushl	%ebx
	subl	$20, %esp
128
129
130
131
132
133
134




135
136
137
138
139
140
141

0:
	addl	$20, %esp
	popl	%ebx
	popl	%ebp

	jmp	_of_method_not_found_stret





init:
	pushl	%ebp
	movl	%esp, %ebp

	pushl	%ebx
	subl	$4, %esp







>
>
>
>







132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149

0:
	addl	$20, %esp
	popl	%ebx
	popl	%ebp

	jmp	_of_method_not_found_stret
.def _of_forward_stret
.scl 2
.type 32
.endef

init:
	pushl	%ebp
	movl	%esp, %ebp

	pushl	%ebx
	subl	$4, %esp

Modified src/runtime/lookup-asm/lookup-asm-x86-win32.S from [adce2f3bf7] to [e53fa327a6].

55
56
57
58
59
60
61




62
63
64
65
66
67
68
69
70
71
72
73
74




75
76
77
78
79
80
81
	andb	$0xE, %dl
	movzbl	%dl, %edx

	movl	_objc_tagged_pointer_classes(,%edx,2), %edx
	movl	32(%edx), %edx

	jmp	.Lmain_\name




.endm

.macro generate_lookup_super name lookup
\name:
	movl	4(%esp), %edx
	movl	(%edx), %eax
	test	%eax, %eax
	jz	ret_nil

	movl	%eax, 4(%esp)
	movl	4(%edx), %edx
	movl	32(%edx), %edx
	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








>
>
>
>













>
>
>
>







55
56
57
58
59
60
61
62
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
	andb	$0xE, %dl
	movzbl	%dl, %edx

	movl	_objc_tagged_pointer_classes(,%edx,2), %edx
	movl	32(%edx), %edx

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

.macro generate_lookup_super name lookup
\name:
	movl	4(%esp), %edx
	movl	(%edx), %eax
	test	%eax, %eax
	jz	ret_nil

	movl	%eax, 4(%esp)
	movl	4(%edx), %edx
	movl	32(%edx), %edx
	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