1// Copyright 2016 The Fuchsia Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "asm.h" 6 7.macro check_simd reg1 reg2 8 fmov x0, \reg1 9 cbnz x0, .Lfail 10 fmov x0, \reg2 11 cbnz x0, .Lfail 12.endm 13 14# int thread_entry(void *arg) 15FUNCTION(thread_entry) 16 bmi .Lfail 17 beq .Lfail 18 bcs .Lfail 19 bvs .Lfail 20 21 cbnz x1, .Lfail 22 cbnz x2, .Lfail 23 cbnz x3, .Lfail 24 cbnz x4, .Lfail 25 cbnz x5, .Lfail 26 cbnz x6, .Lfail 27 cbnz x7, .Lfail 28 cbnz x8, .Lfail 29 cbnz x9, .Lfail 30 cbnz x10, .Lfail 31 cbnz x11, .Lfail 32 cbnz x12, .Lfail 33 cbnz x13, .Lfail 34 cbnz x14, .Lfail 35 cbnz x15, .Lfail 36 cbnz x16, .Lfail 37 cbnz x17, .Lfail 38 cbnz x18, .Lfail 39 cbnz x19, .Lfail 40 cbnz x20, .Lfail 41 cbnz x21, .Lfail 42 cbnz x22, .Lfail 43 cbnz x23, .Lfail 44 cbnz x24, .Lfail 45 cbnz x25, .Lfail 46 cbnz x26, .Lfail 47 cbnz x27, .Lfail 48 cbnz x28, .Lfail 49 cbnz x29, .Lfail 50 cbnz x30, .Lfail 51 52 # test thread arg 53 ldr x1, =0x12345678 54 lsl x1, x1, 32 55 ldr x2, =0x90abcdef 56 orr x1, x2, x1 57 sub x0, x0, x1 58 cbnz x0, .Lfail 59 60 check_simd d0, v0.D[1] 61 check_simd d1, v1.D[1] 62 check_simd d2, v2.D[1] 63 check_simd d3, v3.D[1] 64 check_simd d4, v4.D[1] 65 check_simd d5, v5.D[1] 66 check_simd d6, v6.D[1] 67 check_simd d7, v7.D[1] 68 check_simd d8, v8.D[1] 69 check_simd d9, v9.D[1] 70 check_simd d10, v10.D[1] 71 check_simd d11, v11.D[1] 72 check_simd d12, v12.D[1] 73 check_simd d13, v13.D[1] 74 check_simd d14, v14.D[1] 75 check_simd d15, v15.D[1] 76 check_simd d16, v16.D[1] 77 check_simd d17, v17.D[1] 78 check_simd d18, v18.D[1] 79 check_simd d19, v19.D[1] 80 check_simd d20, v20.D[1] 81 check_simd d21, v21.D[1] 82 check_simd d22, v22.D[1] 83 check_simd d23, v23.D[1] 84 check_simd d24, v24.D[1] 85 check_simd d25, v25.D[1] 86 check_simd d26, v26.D[1] 87 check_simd d27, v27.D[1] 88 check_simd d28, v28.D[1] 89 check_simd d29, v29.D[1] 90 check_simd d30, v30.D[1] 91 check_simd d31, v31.D[1] 92 b zx_thread_exit 93.Lfail: 94 b print_fail 95