Differences From Artifact [7067db37e0]:
- File
src/runtime/lookup-mips-elf.S
— part of check-in
[9c630f8f86]
at
2013-07-06 00:21:44
on branch trunk
— Add MIPS/ELF assembly lookup implementation.
Only tested on the PSP so far. (user: js, size: 1770) [annotate] [blame] [check-ins using]
To Artifact [5a290d4602]:
- File src/runtime/lookup-mips-elf.S — part of check-in [8f346088f4] at 2013-07-06 12:50:42 on branch trunk — MIPS lookup: Let the assembler insert the nops. (user: js, size: 1728) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
18 19 20 21 22 23 24 | .globl objc_msg_lookup .globl objc_msg_lookup_super .section .text objc_msg_lookup: beqz $a0, ret_nil | < | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | .globl objc_msg_lookup .globl objc_msg_lookup_super .section .text objc_msg_lookup: beqz $a0, ret_nil lw $t0, 0($a0) lw $t0, 32($t0) lookup: #if defined(_MIPSEL) # ifdef OF_SELUID24 |
︙ | ︙ | |||
56 57 58 59 60 61 62 | #endif addu $t0, $t0, $t2 lw $t0, 0($t0) addu $t0, $t0, $t3 lw $t0, 0($t0) beqz $t0, objc_not_found_handler | < < < < < | < | 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 | #endif addu $t0, $t0, $t2 lw $t0, 0($t0) addu $t0, $t0, $t3 lw $t0, 0($t0) beqz $t0, objc_not_found_handler move $v0, $t0 j $ra objc_msg_lookup_super: lw $t0, 0($a0) beqz $t0, ret_nil lw $t0, 4($a0) lw $t0, 32($t0) b lookup ret_nil: lui $v0, %hi(nil_method) addiu $v0, %lo(nil_method) j $ra nil_method: move $v0, $zero j $ra .type objc_msg_lookup, %function .type objc_msg_lookup_super, %function .size objc_msg_lookup, objc_msg_lookup_super-objc_msg_lookup .size objc_msg_lookup_super, ret_nil-objc_msg_lookup_super #ifdef __linux__ .section .note.GNU-stack, "", %progbits #endif |