1 /*
2 * Copyright (c) 2015-2022 The strace developers.
3 * All rights reserved.
4 *
5 * SPDX-License-Identifier: LGPL-2.1-or-later
6 */
7
8 #include "negated_errno.h"
9
10 static void
11 arch_get_error(struct tcb *tcp, const bool check_errno)
12 {
13 unsigned int status_reg = xtensa_regs.windowbase * 4 + 2;
14
15 if (check_errno && is_negated_errno(xtensa_regs.a[status_reg])) {
16 tcp->u_rval = -1;
17 tcp->u_error = -xtensa_regs.a[status_reg];
18 } else {
19 tcp->u_rval = xtensa_regs.a[status_reg];
20 }
21 }