Overview
Comment: | lookup-asm-powerpc-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: |
a0e61a47608ae351f9b54dfbee4d0645 |
User & Date: | js on 2020-07-08 19:52:02 |
Other Links: | branch diff | manifest | tags |
Context
2020-07-09
| ||
00:11 | lookup-asm-arm-elf.S: Support tagged pointers check-in: eb007abba9 user: js tags: tagged-pointers | |
2020-07-08
| ||
19:52 | lookup-asm-powerpc-elf.S: Support tagged pointers check-in: a0e61a4760 user: js tags: tagged-pointers | |
00:17 | Merge trunk into branch "tagged-pointers" check-in: 3e57593e8d user: js tags: tagged-pointers | |
Changes
Modified src/runtime/lookup-asm/lookup-asm-powerpc-elf.S from [5f9a77b0a0] to [022ff654de].
︙ | ︙ | |||
26 27 28 29 30 31 32 33 34 35 36 37 38 39 | .section .text .macro generate_lookup name not_found \name: cmpwi %r3, 0 beq- ret_nil lwz %r5, 0(%r3) lwz %r5, 32(%r5) .Lmain_\name: lwz %r8, 0(%r4) #ifdef OF_SELUID24 rlwinm %r6, %r8, 18, 0x3FC | > > > | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | .section .text .macro generate_lookup name not_found \name: cmpwi %r3, 0 beq- ret_nil andi. %r0, %r3, 1 bne- .Ltagged_pointer_\name lwz %r5, 0(%r3) lwz %r5, 32(%r5) .Lmain_\name: lwz %r8, 0(%r4) #ifdef OF_SELUID24 rlwinm %r6, %r8, 18, 0x3FC |
︙ | ︙ | |||
50 51 52 53 54 55 56 | cmpwi %r5, 0 beq- 0f mr %r3, %r5 blr 0: | > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 53 54 55 56 57 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 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | cmpwi %r5, 0 beq- 0f mr %r3, %r5 blr 0: stwu %r1, -16(%r1) mflr %r0 stw %r0, 20(%r1) stw %r30, 8(%r1) bl 0f 0: mflr %r30 addis %r30, %r30, .Lbiased_got2-0b@ha addi %r30, %r30, .Lbiased_got2-0b@l lwz %r0, .Lgot_\not_found-.Lbiased_got2(%r30) mtctr %r0 lwz %r30, 8(%r1) lwz %r0, 20(%r1) addi %r1, %r1, 16 mtlr %r0 bctr .Ltagged_pointer_\name: mflr %r7 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 .size \name, .-\name .endm .macro generate_lookup_super name lookup \name: mr %r5, %r3 |
︙ | ︙ | |||
91 92 93 94 95 96 97 98 99 100 | li %r3, 0 blr get_pc: mflr %r3 blr #ifdef OF_LINUX .section .note.GNU-stack, "", @progbits #endif | > > > > > > > > > | 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | li %r3, 0 blr get_pc: mflr %r3 blr .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 |