Overview
Comment: | runtime: Add lookup-asm-powerpc64-elf.S |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
05d65abf96645a1f10468606a33b77ea |
User & Date: | js on 2021-05-24 22:27:11 |
Other Links: | manifest | tags |
Context
2021-05-24
| ||
22:37 | OFStream.h: Remove double nonatomic check-in: 4d656c340e user: js tags: trunk | |
22:27 | runtime: Add lookup-asm-powerpc64-elf.S check-in: 05d65abf96 user: js tags: trunk | |
2021-05-13
| ||
20:07 | tests: Use +[OFSystem temporaryDirectoryPath] check-in: b30979ffc9 user: js tags: trunk | |
Changes
Added src/runtime/lookup-asm/lookup-asm-powerpc64-elf.S version [abf2533c1d].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 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 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | /* * Copyright (c) 2008-2021 Jonathan Schleifer <js@nil.im> * * All rights reserved. * * This file is part of ObjFW. It may be distributed under the terms of the * Q Public License 1.0, which can be found in the file LICENSE.QPL included in * the packaging of this file. * * Alternatively, it may be distributed under the terms of the GNU General * Public License, either version 2 or 3, which can be found in the file * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #include "config.h" #include "platform.h" .globl objc_msg_lookup .globl objc_msg_lookup_stret .globl objc_msg_lookup_super .globl objc_msg_lookup_super_stret .section .text .macro GENERATE_LOOKUP name notFound .section .opd, "aw", @progbits \name: .p2align 3 .quad .Lbegin_\name .quad .TOC.@tocbase .quad 0 .text .Lbegin_\name: cmpdi %r3, 0 beq- .LreturnNilMethod andi. %r0, %r3, 1 bne- .LtaggedPointer_\name ld %r5, 0(%r3) ld %r5, 64(%r5) .Lmain_\name: ld %r8, 0(%r4) #ifdef OF_SELUID24 rlwinm %r6, %r8, 19, 0x7F8 #endif rlwinm %r7, %r8, 27, 0x7F8 rlwinm %r8, %r8, 3, 0x7F8 #ifdef OF_SELUID24 ldx %r5, %r5, %r6 #endif ldx %r5, %r5, %r7 ldx %r5, %r5, %r8 cmpdi %r5, 0 beq- 0f mr %r3, %r5 blr 0: mflr %r0 std %r0, 16(%r1) stdu %r1, -112(%r1) bl \notFound nop addi %r1, %r1, 112 ld %r0, 16(%r1) mtlr %r0 blr .LtaggedPointer_\name: addis %r5, %r2, objc_taggedPointerSecret@toc@ha ld %r5, objc_taggedPointerSecret@toc@l(%r5) xor %r5, %r3, %r5 rlwinm %r5, %r5, 2, 0x38 addis %r6, %r2, objc_taggedPointerClasses@toc@ha addi %r6, %r6, objc_taggedPointerClasses@toc@l ldx %r5, %r6, %r5 ld %r5, 64(%r5) b .Lmain_\name .type \name, @function .size \name, .-.Lbegin_\name .endm .macro GENERATE_LOOKUP_SUPER name lookup .section .opd, "aw", @progbits \name: .p2align 3 .quad .Lbegin_\name .quad .TOC.@tocbase .quad 0 .text .Lbegin_\name: mr %r5, %r3 ld %r3, 0(%r3) cmpdi %r3, 0 beq- .LreturnNilMethod ld %r5, 8(%r5) ld %r5, 64(%r5) b .Lmain_\lookup .type \name, @function .size \name, .-.Lbegin_\name .endm GENERATE_LOOKUP objc_msg_lookup objc_methodNotFound GENERATE_LOOKUP objc_msg_lookup_stret objc_methodNotFound_stret GENERATE_LOOKUP_SUPER objc_msg_lookup_super objc_msg_lookup GENERATE_LOOKUP_SUPER objc_msg_lookup_super_stret objc_msg_lookup_stret .LreturnNilMethod: addis %r3, %r2, nilMethod@toc@ha addi %r3, %r3, nilMethod@toc@l blr .section .opd, "aw", @progbits nilMethod: .p2align 3 .quad .Lbegin_nilMethod .quad .TOC.@tocbase .quad 0 .text .Lbegin_nilMethod: li %r3, 0 blr .type nilMethod, @function .size nilMethod, .-.Lbegin_nilMethod #ifdef OF_LINUX .section .note.GNU-stack, "", @progbits #endif |
Modified src/runtime/lookup-asm/lookup-asm.S from [079786db12] to [c9c055a770].
︙ | ︙ | |||
22 23 24 25 26 27 28 29 30 31 32 33 34 35 | # include "lookup-asm-x86_64-elf.S" # elif defined(OF_X86) # include "lookup-asm-x86-elf.S" # elif defined(OF_ARM64) # include "lookup-asm-arm64-elf.S" # elif defined(OF_ARM) # include "lookup-asm-arm-elf.S" # elif defined(OF_POWERPC) # include "lookup-asm-powerpc-elf.S" # elif defined(OF_MIPS64_N64) # include "lookup-asm-mips64-n64-elf.S" # elif defined(OF_MIPS) # include "lookup-asm-mips-elf.S" # elif defined(OF_SPARC64) | > > | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | # include "lookup-asm-x86_64-elf.S" # elif defined(OF_X86) # include "lookup-asm-x86-elf.S" # elif defined(OF_ARM64) # include "lookup-asm-arm64-elf.S" # elif defined(OF_ARM) # include "lookup-asm-arm-elf.S" # elif defined(OF_POWERPC64) # include "lookup-asm-powerpc64-elf.S" # elif defined(OF_POWERPC) # include "lookup-asm-powerpc-elf.S" # elif defined(OF_MIPS64_N64) # include "lookup-asm-mips64-n64-elf.S" # elif defined(OF_MIPS) # include "lookup-asm-mips-elf.S" # elif defined(OF_SPARC64) |
︙ | ︙ |
Modified src/runtime/private.h from [133858e63f] to [c4765bd18c].
︙ | ︙ | |||
354 355 356 357 358 359 360 | extern void OF_NO_RETURN_FUNC objc_error(const char *_Nonnull title, const char *_Nonnull format, ...); #define OBJC_ERROR(...) \ objc_error("ObjFWRT @ " __FILE__ ":" OF_STRINGIFY(__LINE__), \ __VA_ARGS__) #if defined(OF_ELF) | | > | 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 | extern void OF_NO_RETURN_FUNC objc_error(const char *_Nonnull title, const char *_Nonnull format, ...); #define OBJC_ERROR(...) \ objc_error("ObjFWRT @ " __FILE__ ":" OF_STRINGIFY(__LINE__), \ __VA_ARGS__) #if defined(OF_ELF) # if defined(OF_X86_64) || defined(OF_X86) || \ defined(OF_POWERPC64) || defined(OF_POWERPC) || \ defined(OF_ARM64) || defined(OF_ARM) || \ defined(OF_MIPS64_N64) || defined(OF_MIPS) || \ defined(OF_SPARC64) || defined(OF_SPARC) # define OF_ASM_LOOKUP # endif #elif defined(OF_MACH_O) # if defined(OF_X86_64) |
︙ | ︙ |