1*f5478dedSAntonio Nino Diaz/* 2*f5478dedSAntonio Nino Diaz * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved. 3*f5478dedSAntonio Nino Diaz * 4*f5478dedSAntonio Nino Diaz * SPDX-License-Identifier: BSD-3-Clause 5*f5478dedSAntonio Nino Diaz */ 6*f5478dedSAntonio Nino Diaz#ifndef ASSERT_MACROS_S 7*f5478dedSAntonio Nino Diaz#define ASSERT_MACROS_S 8*f5478dedSAntonio Nino Diaz 9*f5478dedSAntonio Nino Diaz /* 10*f5478dedSAntonio Nino Diaz * Assembler macro to enable asm_assert. We assume that the stack is 11*f5478dedSAntonio Nino Diaz * initialized prior to invoking this macro. 12*f5478dedSAntonio Nino Diaz */ 13*f5478dedSAntonio Nino Diaz#define ASM_ASSERT(_cc) \ 14*f5478dedSAntonio Nino Diaz.ifndef .L_assert_filename ;\ 15*f5478dedSAntonio Nino Diaz .pushsection .rodata.str1.1, "aS" ;\ 16*f5478dedSAntonio Nino Diaz .L_assert_filename: ;\ 17*f5478dedSAntonio Nino Diaz .string __FILE__ ;\ 18*f5478dedSAntonio Nino Diaz .popsection ;\ 19*f5478dedSAntonio Nino Diaz.endif ;\ 20*f5478dedSAntonio Nino Diaz b##_cc 300f ;\ 21*f5478dedSAntonio Nino Diaz ldr r0, =.L_assert_filename ;\ 22*f5478dedSAntonio Nino Diaz ldr r1, =__LINE__ ;\ 23*f5478dedSAntonio Nino Diaz b asm_assert;\ 24*f5478dedSAntonio Nino Diaz300: 25*f5478dedSAntonio Nino Diaz 26*f5478dedSAntonio Nino Diaz#endif /* ASSERT_MACROS_S */ 27