ObjFW  Check-in [4750a54072]

Overview
Comment:Fix lookup-asm-x86_64-win64.S
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 4750a540724734b4ce2b6ae3ee4e312b39c8abaa7f592ed15f71ad50ccaf32d6
User & Date: js on 2021-03-16 22:55:22
Other Links: manifest | tags
Context
2021-03-17
00:14
Work around crash on start with new MSYS2 check-in: dba770bccc user: js tags: trunk
2021-03-16
22:55
Fix lookup-asm-x86_64-win64.S check-in: 4750a54072 user: js tags: trunk
21:16
OFASN1*: Clean up the API a little check-in: ca9b843d37 user: js tags: trunk
Changes

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

54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73

0:
	movq	%r10, %rcx
	movq	%r11, %rdx
	jmp	\not_found

.Ltagged_pointer_\name:
	movq	objc_tagged_pointer_secret(%rip), %rax
	xorq	(%rax), %rcx
	andb	$0xE, %cl
	movzbl	%cl, %r8d

	movq	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







|
<



|







54
55
56
57
58
59
60
61

62
63
64
65
66
67
68
69
70
71
72

0:
	movq	%r10, %rcx
	movq	%r11, %rdx
	jmp	\not_found

.Ltagged_pointer_\name:
	xorq	objc_tagged_pointer_secret(%rip), %rcx

	andb	$0xE, %cl
	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
84
85
86
87
88
89
90
91
92
93
94
95
96

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

ret_nil:
	movq	nil_method(%rip), %rax
	ret

nil_method:
	xorq	%rax, %rax
	ret







|





83
84
85
86
87
88
89
90
91
92
93
94
95

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

ret_nil:
	leaq	nil_method(%rip), %rax
	ret

nil_method:
	xorq	%rax, %rax
	ret