ObjFW  Check-in [86014b7cc2]

Overview
Comment:Obfuscate tagged pointers on MIPS/ELF
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | tagged-pointers
Files: files | file ages | folders
SHA3-256: 86014b7cc23a1218dd8ea5bf94df0fc4c8a86ed51c57c024a094ea140996b39b
User & Date: js on 2020-07-18 15:52:00
Other Links: branch diff | manifest | tags
Context
2020-07-18
22:54
Add objc_setTaggedPointerSecret() to Amiga linklib check-in: 5769ce64b3 user: js tags: tagged-pointers
15:52
Obfuscate tagged pointers on MIPS/ELF check-in: 86014b7cc2 user: js tags: tagged-pointers
12:54
Obfuscate tagged pointers on ARM64/ELF check-in: 01d06c0f5d user: js tags: tagged-pointers
Changes

Modified src/runtime/lookup-asm/lookup-asm-mips-elf.S from [32c90e7cde] to [87115a51c3].

90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106










107
108
109
110
111
112
113
	addiu	$gp, $gp, 1b-\name

	lw	$t9, %call16(\not_found)($gp)
	jr	$t9
#endif

.Ltagged_pointer_\name:
	and	$t0, $a0, 0xE
	sll	$t0, $t0, 1

#ifdef OF_PIC
0:
	lui	$gp, %hi(_gp_disp)
	addiu	$gp, $gp, %lo(_gp_disp)
	addu	$gp, $gp, $t9
	addiu	$gp, $gp, 0b-\name











	lw	$t1, %got(objc_tagged_pointer_classes)($gp)
#else
	la	$t1, objc_tagged_pointer_classes
#endif
	addu	$t0, $t1, $t0
	ld	$t0, ($t0)
	ld	$t0, 32($t0)







<
<
<







>
>
>
>
>
>
>
>
>
>







90
91
92
93
94
95
96



97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
	addiu	$gp, $gp, 1b-\name

	lw	$t9, %call16(\not_found)($gp)
	jr	$t9
#endif

.Ltagged_pointer_\name:



#ifdef OF_PIC
0:
	lui	$gp, %hi(_gp_disp)
	addiu	$gp, $gp, %lo(_gp_disp)
	addu	$gp, $gp, $t9
	addiu	$gp, $gp, 0b-\name

	lw	$t0, %got(objc_tagged_pointer_secret)($gp)
#else
	la	$t0, objc_tagged_pointer_secret
#endif
	lw	$t0, 0($t0)
	xor	$t0, $a0, $t0
	and	$t0, $t0, 0xE
	sll	$t0, $t0, 1

#ifdef OF_PIC
	lw	$t1, %got(objc_tagged_pointer_classes)($gp)
#else
	la	$t1, objc_tagged_pointer_classes
#endif
	addu	$t0, $t1, $t0
	ld	$t0, ($t0)
	ld	$t0, 32($t0)