ObjFW  Check-in [2cec2f2e8d]

Overview
Comment:lookup-asm-x86_64-win64.S: Support tagged pointers
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | tagged-pointers
Files: files | file ages | folders
SHA3-256: 2cec2f2e8d8010dbc860432fe8971987dc2ae5a908f403fd7adb6c8b02291265
User & Date: js on 2020-06-30 21:12:19
Other Links: branch diff | manifest | tags
Context
2020-06-30
21:24
lookup-asm-x86-win32.S: Support tagged pointers check-in: b1ee7629b5 user: js tags: tagged-pointers
21:12
lookup-asm-x86_64-win64.S: Support tagged pointers check-in: 2cec2f2e8d user: js tags: tagged-pointers
20:52
Merge trunk into branch "tagged-pointers" check-in: c4a12e3fa1 user: js tags: tagged-pointers
Changes

Modified src/runtime/lookup-asm/lookup-asm-x86_64-win64.S from [47f8ccf7d6] to [c889c864a2].

23
24
25
26
27
28
29
30

31
32



33
34
35
36
37
38
39
23
24
25
26
27
28
29

30
31
32
33
34
35
36
37
38
39
40
41
42







-
+


+
+
+







.globl objc_msg_lookup_stret
.globl objc_msg_lookup_super
.globl objc_msg_lookup_super_stret

.section .text
.macro generate_lookup name not_found
\name:
	test	%rcx, %rcx
	test	rcx, rcx
	jz	short ret_nil

	bt	ecx, 0
	jc	short .Ltagged_pointer_\name

	mov	r8, [rcx]
	mov	r8, [r8+56]

.Lmain_\name:
	mov	r10, rcx
	mov	r11, rdx

53
54
55
56
57
58
59










60
61
62
63
64
65
66
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79







+
+
+
+
+
+
+
+
+
+








	ret

0:
	mov	rcx, r10
	mov	rdx, r11
	jmp	\not_found

.Ltagged_pointer_\name:
	movzx	r8, cl
	shr	r8, 1

	mov	rax, offset objc_tagged_pointer_classes
	mov	r8, [rax+r8*8]
	mov	r8, [r8+56]

	jmp	short .Lmain_\name
.endm

.macro generate_lookup_super name lookup
\name:
	mov	r8, rcx
	mov	rcx, [rcx]
	test	rcx, rcx