File tree Expand file tree Collapse file tree 3 files changed +22
-0
lines changed Expand file tree Collapse file tree 3 files changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -14,6 +14,20 @@ config SIMULATOR_XTENSA
14
14
help
15
15
Specify if the board configuration should be treated as a simulator.
16
16
17
+ config XTENSA_CALL0_ABI
18
+ bool "Use non-windowed ABI"
19
+ help
20
+ When selected, all code will be built to use the CALL0 ABI
21
+ instead of register windows (though the context management
22
+ code will still exploit the extra registers for faster
23
+ interrupt/exception handling -- this does not build a Zephyr
24
+ to run on hardware that truly lacks register windows). This
25
+ is required for userspace, as exception handling across a
26
+ priviledge boundary must be able to spill the full context.
27
+ For other systems, it improves context switch speed and
28
+ stack usage at the expense of somewhat higher code size and
29
+ execution time for function calls.
30
+
17
31
config SYS_CLOCK_HW_CYCLES_PER_SEC
18
32
prompt "Hardware clock cycles per second, 2000000 for ISS"
19
33
default 2000000
Original file line number Diff line number Diff line change @@ -78,6 +78,10 @@ elseif("${ARCH}" STREQUAL "mips")
78
78
include (${CMAKE_CURRENT_LIST_DIR} /target_mips.cmake )
79
79
endif ()
80
80
81
+ if (CONFIG_XTENSA_CALL0_ABI )
82
+ list (APPEND TOOLCHAIN_C_FLAGS -mabi=call0 )
83
+ endif ()
84
+
81
85
if (SYSROOT_DIR )
82
86
# The toolchain has specified a sysroot dir, pass it to the compiler
83
87
list (APPEND TOOLCHAIN_C_FLAGS
Original file line number Diff line number Diff line change @@ -22,4 +22,8 @@ set(NOSYSDEF_CFLAG "")
22
22
23
23
list (APPEND TOOLCHAIN_C_FLAGS -fms-extensions )
24
24
25
+ if (CONFIG_XTENSA_CALL0_ABI )
26
+ list (APPEND TOOLCHAIN_C_FLAGS -mabi=call0 )
27
+ endif ()
28
+
25
29
set (TOOLCHAIN_HAS_NEWLIB OFF CACHE BOOL "True if toolchain supports newlib" )
You can’t perform that action at this time.
0 commit comments