Artifact e8c309c610cf921dc6132a4cfed3063b2ae66a5378c47315ebbbec27cf7e4cac:
- File
src/runtime/lookup-asm/lookup-asm-ppc-macho.S
— part of check-in
[2a27cf3000]
at
2016-01-03 00:41:26
on branch trunk
— Update copyright
While at it, also update the mail address. (user: js, size: 1650) [annotate] [blame] [check-ins using] [more...]
/* * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 * Jonathan Schleifer <js@heap.zone> * * 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" .globl _objc_msg_lookup .globl _objc_msg_lookup_stret .globl _objc_msg_lookup_super .globl _objc_msg_lookup_super_stret .section __TEXT, __text, regular, pure_instructions .macro generate_lookup $0: cmpwi r3, 0 beq- ret_nil lwz r5, 0(r3) lwz r5, 32(r5) Lmain_$0: lwz r8, 0(r4) #ifdef OF_SELUID24 rlwinm r6, r8, 18, 0x3FC #endif rlwinm r7, r8, 26, 0x3FC rlwinm r8, r8, 2, 0x3FC #ifdef OF_SELUID24 lwzx r5, r5, r6 #endif lwzx r5, r5, r7 lwzx r5, r5, r8 cmpwi r5, 0 beq- 0f mr r3, r5 blr 0: b $1 .endmacro .macro generate_lookup_super $0: lwz r5, 0(r3) cmpwi r5, 0 beq- ret_nil lwz r5, 4(r3) lwz r5, 32(r5) b Lmain_$1 .endmacro generate_lookup _objc_msg_lookup, _objc_method_not_found generate_lookup _objc_msg_lookup_stret, _objc_method_not_found_stret generate_lookup_super _objc_msg_lookup_super, _objc_msg_lookup generate_lookup_super _objc_msg_lookup_super_stret, _objc_msg_lookup_stret ret_nil: mflr r0 bl get_pc mtlr r0 0: addi r3, r3, lo16(nil_method-0b) blr nil_method: li r3, 0 blr get_pc: mflr r3 blr