ObjFW  Check-in [7f493d2446]

Overview
Comment:lookup-asm-x86-elf.S: Support tagged pointers
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | tagged-pointers
Files: files | file ages | folders
SHA3-256: 7f493d2446750873226aeebc7a6641017b30d47feb93740d1615f0d53ab06c4c
User & Date: js on 2020-06-30 00:29:47
Other Links: branch diff | manifest | tags
Context
2020-06-30
20:52
Merge trunk into branch "tagged-pointers" check-in: c4a12e3fa1 user: js tags: tagged-pointers
00:29
lookup-asm-x86-elf.S: Support tagged pointers check-in: 7f493d2446 user: js tags: tagged-pointers
2020-06-29
23:24
lookup-asm-x86_64-elf.S: Support tagged pointers check-in: 577564693c user: js tags: tagged-pointers
Changes

Modified src/runtime/lookup-asm/lookup-asm-x86-elf.S from [65ed1dc5ee] to [9f1f33cd94].

29
30
31
32
33
34
35



36
37
38
39
40
41
42
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45







+
+
+







.section .text
.macro generate_lookup name not_found
\name:
	mov	edx, [esp+4]
	test	edx, edx
	jz	short ret_nil

	bt	edx, 0
	jc	short .Ltagged_pointer_\name

	mov	edx, [edx]
	mov	edx, [edx+32]

.Lmain_\name:
	mov	eax, [esp+8]

#ifdef OF_SELUID24
55
56
57
58
59
60
61













62
63
64
65
66
67
68
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







+
+
+
+
+
+
+
+
+
+
+
+
+








0:
	call	get_eip
1:
	add	eax, offset _GLOBAL_OFFSET_TABLE_
	mov	eax, [eax+\not_found@GOT]
	jmp	eax

.Ltagged_pointer_\name:
	movzx	edx, dl
	shr	edx, 1

	call	get_eip
	add	eax, offset _GLOBAL_OFFSET_TABLE_

	lea	eax, [eax+objc_tagged_pointer_classes@GOTOFF]
	mov	edx, [eax+edx*4]
	mov	edx, [edx+32]

	jmp	short .Lmain_\name
.type \name, %function
.size \name, .-\name
.endm

.macro generate_lookup_super name lookup
\name:
	mov	edx, [esp+4]