| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2013 The Native Client Authors. All rights reserved. | 2 * Copyright (c) 2013 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 "native_client/pnacl/support/nacl_mips_defs.h" | |
| 8 | |
| 9 /* | 7 /* |
| 10 * Receives no arguments, just clears registers. | 8 * Receives no arguments, just clears registers. |
| 11 */ | 9 */ |
| 12 .text | 10 .text |
| 13 .p2align 4 | 11 .p2align 4 |
| 14 .set noreorder | 12 .set noreorder |
| 15 .globl infoleak_clear_state | 13 .globl infoleak_clear_state |
| 16 infoleak_clear_state: | 14 infoleak_clear_state: |
| 17 mtc1 $zero, $f0 | 15 mtc1 $zero, $f0 |
| 18 mtc1 $zero, $f1 | 16 mtc1 $zero, $f1 |
| 19 mov.d $f2, $f0 | 17 mov.d $f2, $f0 |
| 20 mov.d $f4, $f0 | 18 mov.d $f4, $f0 |
| 21 | |
| 22 mov.d $f6, $f0 | 19 mov.d $f6, $f0 |
| 23 mov.d $f8, $f0 | 20 mov.d $f8, $f0 |
| 24 mov.d $f10, $f0 | 21 mov.d $f10, $f0 |
| 25 mov.d $f12, $f0 | 22 mov.d $f12, $f0 |
| 26 | |
| 27 mov.d $f14, $f0 | 23 mov.d $f14, $f0 |
| 28 mov.d $f16, $f0 | 24 mov.d $f16, $f0 |
| 29 mov.d $f18, $f0 | 25 mov.d $f18, $f0 |
| 30 mov.d $f20, $f0 | 26 mov.d $f20, $f0 |
| 31 | |
| 32 mov.d $f22, $f0 | 27 mov.d $f22, $f0 |
| 33 mov.d $f24, $f0 | 28 mov.d $f24, $f0 |
| 34 mov.d $f26, $f0 | 29 mov.d $f26, $f0 |
| 35 mov.d $f28, $f0 | 30 mov.d $f28, $f0 |
| 36 | |
| 37 mov.d $f30, $f0 | 31 mov.d $f30, $f0 |
| 38 and $ra, $ra, JUMP_MASK | |
| 39 jr $ra | 32 jr $ra |
| 40 nop | 33 nop |
| 41 .set reorder | 34 .set reorder |
| 42 | 35 |
| 43 | |
| 44 /* | 36 /* |
| 45 * Receives: | 37 * Receives: |
| 46 * a0: pointer to float_regs structure | 38 * a0: pointer to float_regs structure |
| 47 */ | 39 */ |
| 48 | 40 |
| 49 .p2align 4 | 41 .p2align 4 |
| 50 .set noreorder | 42 .set noreorder |
| 51 .globl infoleak_fetch_regs | 43 .globl infoleak_fetch_regs |
| 52 infoleak_fetch_regs: | 44 infoleak_fetch_regs: |
| 53 and $a0, $a0, STORE_MASK | 45 sdc1 $f0, 0($a0) |
| 54 sdc1 $f0, 0($a0) | 46 sdc1 $f2, 8($a0) |
| 55 and $a0, $a0, STORE_MASK | 47 sdc1 $f4, 16($a0) |
| 56 sdc1 $f2, 8($a0) | 48 sdc1 $f6, 24($a0) |
| 57 | 49 sdc1 $f8, 32($a0) |
| 58 and $a0, $a0, STORE_MASK | |
| 59 sdc1 $f4, 16($a0) | |
| 60 and $a0, $a0, STORE_MASK | |
| 61 sdc1 $f6, 24($a0) | |
| 62 | |
| 63 and $a0, $a0, STORE_MASK | |
| 64 sdc1 $f8, 32($a0) | |
| 65 and $a0, $a0, STORE_MASK | |
| 66 sdc1 $f10, 40($a0) | 50 sdc1 $f10, 40($a0) |
| 67 | |
| 68 and $a0, $a0, STORE_MASK | |
| 69 sdc1 $f12, 48($a0) | 51 sdc1 $f12, 48($a0) |
| 70 and $a0, $a0, STORE_MASK | |
| 71 sdc1 $f14, 56($a0) | 52 sdc1 $f14, 56($a0) |
| 72 | |
| 73 and $a0, $a0, STORE_MASK | |
| 74 sdc1 $f16, 64($a0) | 53 sdc1 $f16, 64($a0) |
| 75 and $a0, $a0, STORE_MASK | |
| 76 sdc1 $f18, 72($a0) | 54 sdc1 $f18, 72($a0) |
| 77 | |
| 78 and $a0, $a0, STORE_MASK | |
| 79 sdc1 $f20, 80($a0) | 55 sdc1 $f20, 80($a0) |
| 80 and $a0, $a0, STORE_MASK | |
| 81 sdc1 $f22, 88($a0) | 56 sdc1 $f22, 88($a0) |
| 82 | |
| 83 and $a0, $a0, STORE_MASK | |
| 84 sdc1 $f24, 96($a0) | 57 sdc1 $f24, 96($a0) |
| 85 and $a0, $a0, STORE_MASK | |
| 86 sdc1 $f26, 104($a0) | 58 sdc1 $f26, 104($a0) |
| 87 | |
| 88 and $a0, $a0, STORE_MASK | |
| 89 sdc1 $f28, 112($a0) | 59 sdc1 $f28, 112($a0) |
| 90 and $a0, $a0, STORE_MASK | |
| 91 sdc1 $f30, 120($a0) | 60 sdc1 $f30, 120($a0) |
| 92 | |
| 93 and $ra, $ra, JUMP_MASK | |
| 94 jr $ra | 61 jr $ra |
| 95 nop | 62 nop |
| 96 | 63 |
| 97 .set reorder | 64 .set reorder |
| OLD | NEW |