Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (c) 2012 The Native Client Authors. All rights reserved. | 2 * Copyright (c) 2012 The Native Client Authors. All rights reserved. |
| 3 * Use of this source code is governed by a BSD-style license that can be | 3 * Use of this source code is governed by a BSD-style license that can be |
| 4 * found in the LICENSE file. | 4 * found in the LICENSE file. |
| 5 */ | 5 */ |
| 6 | 6 |
| 7 #include "nacl_mips_defs.h" | 7 #include "nacl_mips_defs.h" |
| 8 | 8 |
| 9 .text | 9 .text |
| 10 .p2align 4 | 10 .p2align 4 |
| 11 .align NACL_BLOCK_SHIFT | 11 .align NACL_BLOCK_SHIFT |
| 12 .globl setjmp | 12 .globl setjmp |
| 13 .ent setjmp | 13 .ent setjmp |
| 14 .frame $sp, 0, $31 | 14 .frame $sp, 0, $31 |
| 15 .set noreorder | 15 .set noreorder |
| 16 | 16 |
| 17 /* int setjmp(jmp_buf env) */ | 17 /* int setjmp(jmp_buf env) */ |
| 18 setjmp: | 18 setjmp: |
| 19 | 19 |
| 20 /* The code here is grouped by instruction bundle. */ | 20 /* The code here is grouped by instruction bundle. */ |
|
Mark Seaborn
2016/11/22 19:41:40
You should remove this comment.
petarj
2016/11/23 16:04:17
Done.
| |
| 21 | 21 |
| 22 /* NACL_CALLEE_SAVE_LIST BEGIN */ | 22 /* NACL_CALLEE_SAVE_LIST BEGIN */ |
| 23 and $a0, $a0, STORE_MASK | 23 sw $s0, 0($a0) |
| 24 sw $s0, 0($a0) | 24 sw $s1, 4($a0) |
| 25 and $a0, $a0, STORE_MASK | 25 sw $s2, 8($a0) |
| 26 sw $s1, 4($a0) | 26 sw $s3, 12($a0) |
| 27 | 27 sw $s4, 16($a0) |
| 28 and $a0, $a0, STORE_MASK | 28 sw $s5, 20($a0) |
| 29 sw $s2, 8($a0) | 29 sw $s6, 24($a0) |
| 30 and $a0, $a0, STORE_MASK | 30 sw $s7, 28($a0) |
| 31 sw $s3, 12($a0) | 31 sw $sp, 32($a0) |
| 32 | 32 sw $fp, 36($a0) |
| 33 and $a0, $a0, STORE_MASK | 33 sw $ra, 40($a0) |
| 34 sw $s4, 16($a0) | |
| 35 and $a0, $a0, STORE_MASK | |
| 36 sw $s5, 20($a0) | |
| 37 | |
| 38 and $a0, $a0, STORE_MASK | |
| 39 sw $s6, 24($a0) | |
| 40 and $a0, $a0, STORE_MASK | |
| 41 sw $s7, 28($a0) | |
| 42 | |
| 43 and $a0, $a0, STORE_MASK | |
| 44 sw $sp, 32($a0) | |
| 45 and $a0, $a0, STORE_MASK | |
| 46 sw $fp, 36($a0) | |
| 47 | |
| 48 and $a0, $a0, STORE_MASK | |
| 49 sw $ra, 40($a0) | |
| 50 and $a0, $a0, STORE_MASK | |
| 51 swc1 $f20, 44($a0) | 34 swc1 $f20, 44($a0) |
| 52 | |
| 53 and $a0, $a0, STORE_MASK | |
| 54 swc1 $f21, 48($a0) | 35 swc1 $f21, 48($a0) |
| 55 and $a0, $a0, STORE_MASK | |
| 56 swc1 $f22, 52($a0) | 36 swc1 $f22, 52($a0) |
| 57 | |
| 58 and $a0, $a0, STORE_MASK | |
| 59 swc1 $f23, 56($a0) | 37 swc1 $f23, 56($a0) |
| 60 and $a0, $a0, STORE_MASK | |
| 61 swc1 $f24, 60($a0) | 38 swc1 $f24, 60($a0) |
| 62 | |
| 63 and $a0, $a0, STORE_MASK | |
| 64 swc1 $f25, 64($a0) | 39 swc1 $f25, 64($a0) |
| 65 and $a0, $a0, STORE_MASK | |
| 66 swc1 $f26, 68($a0) | 40 swc1 $f26, 68($a0) |
| 67 | |
| 68 and $a0, $a0, STORE_MASK | |
| 69 swc1 $f27, 72($a0) | 41 swc1 $f27, 72($a0) |
| 70 and $a0, $a0, STORE_MASK | |
| 71 swc1 $f28, 76($a0) | 42 swc1 $f28, 76($a0) |
| 72 | |
| 73 and $a0, $a0, STORE_MASK | |
| 74 swc1 $f29, 80($a0) | 43 swc1 $f29, 80($a0) |
| 75 and $a0, $a0, STORE_MASK | |
| 76 swc1 $f30, 84($a0) | 44 swc1 $f30, 84($a0) |
| 77 | |
| 78 and $a0, $a0, STORE_MASK | |
| 79 swc1 $f31, 88($a0) | 45 swc1 $f31, 88($a0) |
| 80 /* NACL_CALLEE_SAVE_LIST END */ | 46 /* NACL_CALLEE_SAVE_LIST END */ |
| 81 move $v0, $zero | 47 move $v0, $zero |
| 82 nop | 48 nop |
| 83 | |
| 84 and $ra, $ra, JUMP_MASK | |
| 85 j $ra | 49 j $ra |
| 86 nop | 50 nop |
| 87 nop | |
| 88 | 51 |
| 89 .end setjmp | 52 .end setjmp |
| 90 | 53 |
| 91 .text | 54 .text |
| 92 .p2align 4 | 55 .p2align 4 |
| 93 .align NACL_BLOCK_SHIFT | 56 .align 4 |
|
Mark Seaborn
2016/11/22 19:41:40
Code above still has NACL_BLOCK_SHIFT. I suggest
petarj
2016/11/23 16:04:17
Done.
| |
| 94 .globl longjmp | 57 .globl longjmp |
| 95 .ent longjmp | 58 .ent longjmp |
| 96 .set noreorder | 59 .set noreorder |
| 97 | 60 |
| 98 /* void longjmp(jmp_buf env, int val) */ | 61 /* void longjmp(jmp_buf env, int val) */ |
| 99 longjmp: | 62 longjmp: |
| 100 | 63 |
| 101 /* NACL_CALLEE_LOAD_LIST BEGIN */ | 64 /* NACL_CALLEE_LOAD_LIST BEGIN */ |
| 102 and $a0, $a0, STORE_MASK | 65 lw $s0, 0($a0) |
| 103 lw $s0, 0($a0) | 66 lw $s1, 4($a0) |
| 104 and $a0, $a0, STORE_MASK | 67 lw $s2, 8($a0) |
| 105 lw $s1, 4($a0) | 68 lw $s3, 12($a0) |
| 106 | 69 lw $s4, 16($a0) |
| 107 and $a0, $a0, STORE_MASK | 70 lw $s5, 20($a0) |
| 108 lw $s2, 8($a0) | 71 lw $s6, 24($a0) |
| 109 and $a0, $a0, STORE_MASK | 72 lw $s7, 28($a0) |
| 110 lw $s3, 12($a0) | 73 lw $sp, 32($a0) |
| 111 | |
| 112 and $a0, $a0, STORE_MASK | |
| 113 lw $s4, 16($a0) | |
| 114 and $a0, $a0, STORE_MASK | |
| 115 lw $s5, 20($a0) | |
| 116 | |
| 117 and $a0, $a0, STORE_MASK | |
| 118 lw $s6, 24($a0) | |
| 119 and $a0, $a0, STORE_MASK | |
| 120 lw $s7, 28($a0) | |
| 121 | |
| 122 and $a0, $a0, STORE_MASK | |
| 123 lw $sp, 32($a0) | |
| 124 and $sp, $sp, STORE_MASK | |
| 125 nop | 74 nop |
|
Mark Seaborn
2016/11/22 19:41:40
Not needed now?
petarj
2016/11/23 16:04:17
Done.
| |
| 126 | 75 lw $fp, 36($a0) |
| 127 and $a0, $a0, STORE_MASK | 76 lw $ra, 40($a0) |
| 128 lw $fp, 36($a0) | |
| 129 and $a0, $a0, STORE_MASK | |
| 130 lw $ra, 40($a0) | |
| 131 | |
| 132 and $a0, $a0, STORE_MASK | |
| 133 lwc1 $f20, 44($a0) | 77 lwc1 $f20, 44($a0) |
| 134 and $a0, $a0, STORE_MASK | |
| 135 lwc1 $f21, 48($a0) | 78 lwc1 $f21, 48($a0) |
| 136 | |
| 137 and $a0, $a0, STORE_MASK | |
| 138 lwc1 $f22, 52($a0) | 79 lwc1 $f22, 52($a0) |
| 139 and $a0, $a0, STORE_MASK | |
| 140 lwc1 $f23, 56($a0) | 80 lwc1 $f23, 56($a0) |
| 141 | |
| 142 and $a0, $a0, STORE_MASK | |
| 143 lwc1 $f24, 60($a0) | 81 lwc1 $f24, 60($a0) |
| 144 and $a0, $a0, STORE_MASK | |
| 145 lwc1 $f25, 64($a0) | 82 lwc1 $f25, 64($a0) |
| 146 | |
| 147 and $a0, $a0, STORE_MASK | |
| 148 lwc1 $f26, 68($a0) | 83 lwc1 $f26, 68($a0) |
| 149 and $a0, $a0, STORE_MASK | |
| 150 lwc1 $f27, 72($a0) | 84 lwc1 $f27, 72($a0) |
| 151 | |
| 152 and $a0, $a0, STORE_MASK | |
| 153 lwc1 $f28, 76($a0) | 85 lwc1 $f28, 76($a0) |
| 154 and $a0, $a0, STORE_MASK | |
| 155 lwc1 $f29, 80($a0) | 86 lwc1 $f29, 80($a0) |
| 156 | |
| 157 and $a0, $a0, STORE_MASK | |
| 158 lwc1 $f30, 84($a0) | 87 lwc1 $f30, 84($a0) |
| 159 and $a0, $a0, STORE_MASK | |
| 160 lwc1 $f31, 88($a0) | 88 lwc1 $f31, 88($a0) |
| 161 /* NACL_CALLEE_LOAD_LIST END */ | 89 /* NACL_CALLEE_LOAD_LIST END */ |
| 162 | 90 |
| 163 bne $a1, $zero, 1f | 91 bne $a1, $zero, 1f |
| 164 nop | 92 nop |
|
Mark Seaborn
2016/11/22 19:41:40
Same with these other nops? Maybe comment which o
| |
| 165 ori $a1, $zero, 1 | 93 ori $a1, $zero, 1 |
| 166 1: | 94 1: |
| 167 move $v0, $a1 | 95 move $v0, $a1 |
| 168 | |
| 169 and $ra, $ra, JUMP_MASK | |
| 170 j $ra | 96 j $ra |
| 171 nop | 97 nop |
| 172 nop | 98 nop |
| 173 | 99 |
| 174 .end longjmp | 100 .end longjmp |
| 175 | 101 |
| OLD | NEW |