| # /* |
| # * Copyright (C) 2015 The Android Open Source Project |
| # * All rights reserved. |
| # * |
| # * Redistribution and use in source and binary forms, with or without |
| # * modification, are permitted provided that the following conditions |
| # * are met: |
| # * * Redistributions of source code must retain the above copyright |
| # * notice, this list of conditions and the following disclaimer. |
| # * * Redistributions in binary form must reproduce the above copyright |
| # * notice, this list of conditions and the following disclaimer in |
| # * the documentation and/or other materials provided with the |
| # * distribution. |
| # * |
| # * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| # * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| # * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
| # * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
| # * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
| # * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
| # * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS |
| # * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
| # * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
| # * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT |
| # * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| # * SUCH DAMAGE. |
| # */ |
| |
| .text |
| .align 8 |
| |
| .global asm_mips_test_jacket |
| |
| # // Set the register |
| # // Calls the asm function |
| # // Reads the register values to output register |
| |
| # // Parameters |
| # // a0 - Function to jump |
| # // a1 - register values array |
| # // a2 - flag values array |
| asm_mips_test_jacket: |
| # // Save registers to stack |
| daddiu $sp, $sp, -96 |
| sd $s0, 64($sp) |
| sd $s1, 72($sp) |
| sd $s2, 80($sp) |
| sd $ra, 88($sp) |
| |
| move $s0, $a0 |
| move $s1, $a1 |
| move $s2, $a2 |
| |
| ld $v0, 16($s1) |
| ld $v1, 24($s1) |
| ld $a0, 32($s1) |
| ld $a1, 40($s1) |
| ld $a2, 48($s1) |
| ld $a3, 56($s1) |
| ld $a4, 64($s1) |
| ld $a5, 72($s1) |
| ld $a6, 80($s1) |
| ld $a7, 88($s1) |
| ld $t0, 96($s1) |
| ld $t1, 104($s1) |
| ld $t2, 112($s1) |
| ld $t3, 120($s1) |
| |
| jal $s0 |
| |
| sd $v0, 16($s1) |
| sd $v1, 24($s1) |
| sd $a0, 32($s1) |
| sd $a1, 40($s1) |
| sd $a2, 48($s1) |
| sd $a3, 56($s1) |
| sd $a4, 64($s1) |
| sd $a5, 72($s1) |
| sd $a6, 80($s1) |
| sd $a7, 88($s1) |
| sd $t0, 96($s1) |
| sd $t1, 104($s1) |
| sd $t2, 112($s1) |
| sd $t3, 120($s1) |
| |
| ld $s0, 64($sp) |
| ld $s1, 72($sp) |
| ld $s2, 80($sp) |
| ld $ra, 88($sp) |
| |
| daddiu $sp, $sp, 96 |
| |
| j $ra |