1658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat/* 2658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * Copyright (C) 2013 The Android Open Source Project 3658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * All rights reserved. 4658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * 5658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * Redistribution and use in source and binary forms, with or without 6658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * modification, are permitted provided that the following conditions 7658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * are met: 8658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * * Redistributions of source code must retain the above copyright 9658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * notice, this list of conditions and the following disclaimer. 10658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * * Redistributions in binary form must reproduce the above copyright 11658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * notice, this list of conditions and the following disclaimer in 12658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * the documentation and/or other materials provided with the 13658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * distribution. 14658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * 15658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 16658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 17658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 18658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 19658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 20658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 21658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 22658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 23658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 25658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat * SUCH DAMAGE. 27658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat */ 28658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 29658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat .text 301109f115bd016e82a4d8304b17fdaa4d3e577ba4Nikola Veljkovic .balign 0 31658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 32658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat .global asm_test_jacket 33658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 34658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat // Set the register and flag values 35658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat // Calls the asm function 36658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat // Reads the register/flag values to output register 37658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 38658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat // Parameters 39658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat // X0 - Function to jump 40658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat // X1 - register values array 41658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat // X2 - flag values array 42658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhatasm_test_jacket: 43658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat // Save registers to stack 44658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat stp x29, x30, [sp,#-16]! 45658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat stp x27, x28, [sp,#-16]! 46658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 47658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat mov x30, x0 48658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat mov x28, x1 49658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat mov x27, x2 50658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 51658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat //Set the flags based on flag array 52658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat //EQ 53658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr w0, [x27,#0] 54658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0, #1 55658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b.ne bt_aeq 56658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0,#1 57658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b bt_end 58658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhatbt_aeq: 59658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 60658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat //NE 61658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr w0, [x27,#4] 62658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0, #1 63658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b.ne bt_ane 64658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0,#2 65658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b bt_end 66658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhatbt_ane: 67658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 68658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat //CS 69658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr w0, [x27,#8] 70658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0, #1 71658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b.ne bt_acs 72658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0,#0 73658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b bt_end 74658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhatbt_acs: 75658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 76658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat //CC 77658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr w0, [x27,#12] 78658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0, #1 79658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b.ne bt_acc 80658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0,#2 81658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b bt_end 82658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhatbt_acc: 83658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 84658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat //MI 85658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr w0, [x27,#16] 86658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0, #1 87658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b.ne bt_ami 88658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat subs w0,w0,#2 89658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b bt_end 90658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhatbt_ami: 91658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 92658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat //PL 93658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr w0, [x27,#20] 94658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0, #1 95658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b.ne bt_apl 96658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat subs w0,w0,#0 97658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b bt_end 98658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhatbt_apl: 99658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat //HI - (C==1) && (Z==0) 100658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr w0, [x27,#32] 101658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0, #1 102658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b.ne bt_ahi 103658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0,#0 104658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b bt_end 105658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhatbt_ahi: 106658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 107658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat //LS - (C==0) || (Z==1) 108658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr w0, [x27,#36] 109658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0, #1 110658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b.ne bt_als 111658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0,#1 112658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b bt_end 113658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhatbt_als: 114658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 115658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat //GE 116658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr w0, [x27,#40] 117658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0, #1 118658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b.ne bt_age 119658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0,#0 120658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b bt_end 121658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhatbt_age: 122658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 123658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat //LT 124658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr w0, [x27,#44] 125658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0, #1 126658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b.ne bt_alt 127658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0,#2 128658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b bt_end 129658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhatbt_alt: 130658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 131658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat //GT 132658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr w0, [x27,#48] 133658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0, #1 134658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b.ne bt_agt 135658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0,#0 136658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b bt_end 137658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhatbt_agt: 138658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 139658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat //LE 140658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr w0, [x27,#52] 141658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0, #1 142658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b.ne bt_ale 143658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat cmp w0,#2 144658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat b bt_end 145658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhatbt_ale: 146658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 147658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 148658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhatbt_end: 149658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 150658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat // Load the registers from reg array 151658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr x0, [x28,#0] 152658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr x1, [x28,#8] 153658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr x2, [x28,#16] 154658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr x3, [x28,#24] 155658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr x4, [x28,#32] 156658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr x5, [x28,#40] 157658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr x6, [x28,#48] 158658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr x7, [x28,#56] 159658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr x8, [x28,#64] 160658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr x9, [x28,#72] 161658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr x10, [x28,#80] 162658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr x11, [x28,#88] 163658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr x12, [x28,#96] 164658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldr x14, [x28,#112] 165658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 166658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat // Call the function 167658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat blr X30 168658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 169658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat // Save the registers to reg array 170658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str x0, [x28,#0] 171658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str x1, [x28,#8] 172658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str x2, [x28,#16] 173658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str x3, [x28,#24] 174658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str x4, [x28,#32] 175658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str x5, [x28,#40] 176658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str x6, [x28,#48] 177658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str x7, [x28,#56] 178658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str x8, [x28,#64] 179658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str x9, [x28,#72] 180658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str x10, [x28,#80] 181658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str x11, [x28,#88] 182658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str x12, [x28,#96] 183658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str x14, [x28,#112] 184658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 185658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat //Set the flags array based on result flags 186658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat movz w0, #0 187658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat movz w1, #1 188658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat csel w2, w1, w0, EQ 189658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str w2, [x27,#0] 190658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat csel w2, w1, w0, NE 191658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str w2, [x27,#4] 192658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat csel w2, w1, w0, CS 193658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str w2, [x27,#8] 194658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat csel w2, w1, w0, CC 195658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str w2, [x27,#12] 196658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat csel w2, w1, w0, MI 197658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str w2, [x27,#16] 198658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat csel w2, w1, w0, PL 199658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str w2, [x27,#20] 200658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat csel w2, w1, w0, VS 201658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str w2, [x27,#24] 202658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat csel w2, w1, w0, VC 203658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str w2, [x27,#28] 204658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat csel w2, w1, w0, HI 205658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str w2, [x27,#32] 206658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat csel w2, w1, w0, LS 207658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str w2, [x27,#36] 208658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat csel w2, w1, w0, GE 209658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str w2, [x27,#40] 210658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat csel w2, w1, w0, LT 211658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str w2, [x27,#44] 212658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat csel w2, w1, w0, GT 213658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str w2, [x27,#48] 214658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat csel w2, w1, w0, LE 215658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat str w2, [x27,#52] 216658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 217658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat // Restore registers from stack 218658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldp x27, x28, [sp],#16 219658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ldp x29, x30, [sp],#16 220658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat ret 221658f89dc5c418dbbc0c5d78f5861855b90ca8c9fAshok Bhat 222