ObjFW  Check-in [eee832144e]

Overview
Comment:Obfuscate tagged pointers on PowerPC/ELF
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | tagged-pointers
Files: files | file ages | folders
SHA3-256: eee832144e8326234eb56a1543a11751526b7434bab6be2e8df851efa5279258
User & Date: js on 2020-07-12 14:17:36
Other Links: branch diff | manifest | tags
Context
2020-07-12
15:17
Obfuscate tagged pointers on SPARC/ELF check-in: 55e786c880 user: js tags: tagged-pointers
14:17
Obfuscate tagged pointers on PowerPC/ELF check-in: eee832144e user: js tags: tagged-pointers
13:46
lookup-asm-x86*-win*.S: Obfuscate tagged pointers check-in: 4491aefd93 user: js tags: tagged-pointers
Changes

Modified src/runtime/lookup-asm/lookup-asm-powerpc-elf.S from [022ff654de] to [6a0efd2f1b].

83
84
85
86
87
88
89



90
91
92
93
94
95
96
97
	bl	0f
0:
	mflr	%r6
	mtlr	%r7
	addis	%r6, %r6, .Lbiased_got2-0b@ha
	addi	%r6, %r6, .Lbiased_got2-0b@l




	rlwinm	%r5, %r3, 1, 0x1C

	lwz	%r6, .Lgot_objc_tagged_pointer_classes-.Lbiased_got2(%r6)
	lwzx	%r5, %r6, %r5
	lwz	%r5, 32(%r5)

	b	.Lmain_\name
.type \name, @function







>
>
>
|







83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
	bl	0f
0:
	mflr	%r6
	mtlr	%r7
	addis	%r6, %r6, .Lbiased_got2-0b@ha
	addi	%r6, %r6, .Lbiased_got2-0b@l

	lwz	%r5, .Lgot_objc_tagged_pointer_secret-.Lbiased_got2(%r6)
	lwz	%r5, 0(%r5)
	xor	%r5, %r3, %r5
	rlwinm	%r5, %r5, 1, 0x1C

	lwz	%r6, .Lgot_objc_tagged_pointer_classes-.Lbiased_got2(%r6)
	lwzx	%r5, %r6, %r5
	lwz	%r5, 32(%r5)

	b	.Lmain_\name
.type \name, @function
136
137
138
139
140
141
142


143
144
145
146
147
148

.section .got2, "aw"
.Lbiased_got2 = .+0x8000
.Lgot_objc_method_not_found:
	.long objc_method_not_found
.Lgot_objc_method_not_found_stret:
	.long objc_method_not_found_stret


.Lgot_objc_tagged_pointer_classes:
	.long objc_tagged_pointer_classes

#ifdef OF_LINUX
.section .note.GNU-stack, "", @progbits
#endif







>
>






139
140
141
142
143
144
145
146
147
148
149
150
151
152
153

.section .got2, "aw"
.Lbiased_got2 = .+0x8000
.Lgot_objc_method_not_found:
	.long objc_method_not_found
.Lgot_objc_method_not_found_stret:
	.long objc_method_not_found_stret
.Lgot_objc_tagged_pointer_secret:
	.long objc_tagged_pointer_secret
.Lgot_objc_tagged_pointer_classes:
	.long objc_tagged_pointer_classes

#ifdef OF_LINUX
.section .note.GNU-stack, "", @progbits
#endif