nds32: make code build with gcc 8.1

*** 21744 bytes still available in flash on reef_it8320 ****

BUG=b:65441143
BRANCH=none
TEST=make BOARD=reef_it8320 builds with gcc 8.1. not tested at all

Change-Id: Ie79ee23452574fd883c7f9425b8614346e46fdd7
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-on: https://chromium-review.googlesource.com/1077207
Commit-Ready: Patrick Georgi <pgeorgi@chromium.org>
Tested-by: Patrick Georgi <pgeorgi@chromium.org>
Reviewed-by: Stefan Reinauer <reinauer@google.com>
This commit is contained in:
Patrick Georgi
2018-05-29 22:44:35 +02:00
committed by chrome-bot
parent 620f21d07b
commit 194c7a7e0a
2 changed files with 29 additions and 0 deletions

26
core/nds32/abort.S Normal file
View File

@@ -0,0 +1,26 @@
/* Copyright 2018 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
* abort() handler
*/
#include "config.h"
#define PSW_INTL_SHIFT 1 /* Interrupt Stack Level */
#define PSW_INTL_MASK (0x3 << PSW_INTL_SHIFT)
.text
.global abort
abort:
movi55 $r6, 3 // assert
movi55 $r7, 0 // no info. doubles for the equality test below
// in interrupt context -> $r5 != 0
mfsr $r5, $PSW
andi $r5, $r5, PSW_INTL_MASK
beq $r5, $r7, .L1
j excep_handler
.L1:
break 0

View File

@@ -20,5 +20,8 @@ CFLAGS_CPU+=-flto
LDFLAGS_EXTRA+=-flto
endif
LDFLAGS_EXTRA+=-Wl,--relax
core-y=cpu.o init.o panic.o task.o switch.o __muldi3.o math.o __builtin.o
core-y+=abort.o
core-$(CONFIG_FPU)+=__libsoftfpu.o