ObjFW  Check-in [8870c49908]

Overview
Comment:lookup-asm-mips-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: 8870c49908df09c25d938d746bdda8236ca95216083f221404f484f01e2f6da8
User & Date: js on 2020-07-06 23:36:50
Other Links: branch diff | manifest | tags
Context
2020-07-08
00:17
Merge trunk into branch "tagged-pointers" check-in: 3e57593e8d user: js tags: tagged-pointers
2020-07-06
23:36
lookup-asm-mips-elf.S: Support tagged pointers check-in: 8870c49908 user: js tags: tagged-pointers
20:07
lookup-asm-mips64-n64-elf.S: Tagged pointers check-in: 681c2e3087 user: js tags: tagged-pointers
Changes

Modified src/runtime/lookup-asm/lookup-asm-arm64-elf.S from [577d4b7ca0] to [ff623479ef].

26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

.section .text
.macro generate_lookup name not_found
\name:
	cbz	x0, ret_nil

	tst	x0, #1
	bne	.Ltagged_pointer_\name

	ldr	x2, [x0]
	ldr	x2, [x2, #64]

.Lmain_\name:
#ifdef OF_SELUID24
	ldrb	w3, [x1, #2]







|







26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

.section .text
.macro generate_lookup name not_found
\name:
	cbz	x0, ret_nil

	tst	x0, #1
	b.ne	.Ltagged_pointer_\name

	ldr	x2, [x0]
	ldr	x2, [x2, #64]

.Lmain_\name:
#ifdef OF_SELUID24
	ldrb	w3, [x1, #2]

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

25
26
27
28
29
30
31



32
33
34
35
36
37
38
.globl objc_msg_lookup_super_stret

.section .text
.macro generate_lookup name not_found
\name:
	beqz	$a0, 0f




	lw	$t0, 0($a0)
	lw	$t0, 32($t0)

.Lmain_\name:
#ifdef OF_BIG_ENDIAN
# ifdef OF_SELUID24
	lbu	$t1, 1($a1)







>
>
>







25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
.globl objc_msg_lookup_super_stret

.section .text
.macro generate_lookup name not_found
\name:
	beqz	$a0, 0f

	andi	$t0, $a0, 1
	bnez	$t0, .Ltagged_pointer_\name

	lw	$t0, 0($a0)
	lw	$t0, 32($t0)

.Lmain_\name:
#ifdef OF_BIG_ENDIAN
# ifdef OF_SELUID24
	lbu	$t1, 1($a1)
85
86
87
88
89
90
91





















92
93
94
95
96
97
98
	addiu	$gp, $gp, %lo(_gp_disp)
	addu	$gp, $gp, $t9
	addiu	$gp, $gp, 1b-\name

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





















.type \name, %function
.size \name, .-\name
.endm

.macro generate_lookup_super name lookup
\name:
	move	$t0, $a0







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







88
89
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
121
122
	addiu	$gp, $gp, %lo(_gp_disp)
	addu	$gp, $gp, $t9
	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)

	b	.Lmain_\name
.type \name, %function
.size \name, .-\name
.endm

.macro generate_lookup_super name lookup
\name:
	move	$t0, $a0