ObjFW  Diff

Differences From Artifact [00fefd9a7f]:

  • File src/runtime/lookup-asm/lookup-asm-x86_64-elf.S — part of check-in [943cf97843] at 2020-07-04 00:24:54 on branch tagged-pointers — Only use 4 bits to classify tagged pointers This leaves 28/60 bits for the value. (user: js size: 2024)

To Artifact [82960b8628]:

  • File src/runtime/lookup-asm/lookup-asm-x86_64-elf.S — part of check-in [0579faebb2] at 2020-07-05 14:06:24 on branch tagged-pointers — lookup-asm-x86(_64)-*.S: Shave off one instruction (user: js size: 2012)

52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71

	test	rax, rax
	jz	short \not_found@PLT

	ret

.Ltagged_pointer_\name:
	and	dil, 0xF
	shr	dil, 1
	movzx	r8, dil

	mov	rax, [rip+objc_tagged_pointer_classes@GOTPCREL]
	mov	r8, [rax+r8*8]
	mov	r8, [r8+64]

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








|
<



|







52
53
54
55
56
57
58
59

60
61
62
63
64
65
66
67
68
69
70

	test	rax, rax
	jz	short \not_found@PLT

	ret

.Ltagged_pointer_\name:
	and	dil, 0xE

	movzx	r8, dil

	mov	rax, [rip+objc_tagged_pointer_classes@GOTPCREL]
	mov	r8, [rax+r8*4]
	mov	r8, [r8+64]

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