diff options
Diffstat (limited to 'core/cortex-m0/thumb_case.S')
-rw-r--r-- | core/cortex-m0/thumb_case.S | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/core/cortex-m0/thumb_case.S b/core/cortex-m0/thumb_case.S deleted file mode 100644 index 5628361a94..0000000000 --- a/core/cortex-m0/thumb_case.S +++ /dev/null @@ -1,96 +0,0 @@ -/* Copyright 2014 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. - * - * Thumb mode toolchain helpers for compact switch/case statement. - */ - -#include "config.h" - -.text - -.syntax unified -.code 16 - -/* - * Helpers for compact switch - * - * r0: the table index - * lr: the table base address (need to clear bit 0) - * - * r0 and lr must be PRESERVED. - * r12 can be clobbered. - */ -.section .text.__gnu_thumb1_case_uqi -.global __gnu_thumb1_case_uqi -.thumb_func -__gnu_thumb1_case_uqi: - mov r12, r1 - mov r1, lr - lsrs r1, r1, #1 - lsls r1, r1, #1 - ldrb r1, [r1, r0] - lsls r1, r1, #1 - add lr, lr, r1 - mov r1, r12 - bx lr - -.section .text.__gnu_thumb1_case_sqi -.global __gnu_thumb1_case_sqi -.thumb_func -__gnu_thumb1_case_sqi: - mov r12, r1 - mov r1, lr - lsrs r1, r1, #1 - lsls r1, r1, #1 - ldrsb r1, [r1, r0] - lsls r1, r1, #1 - add lr, lr, r1 - mov r1, r12 - bx lr - -.section .text.__gnu_thumb1_case_uhi -.global __gnu_thumb1_case_uhi -.thumb_func -__gnu_thumb1_case_uhi: - push {r0, r1} - mov r1, lr - lsrs r1, r1, #1 - lsls r0, r0, #1 - lsls r1, r1, #1 - ldrh r1, [r1, r0] - lsls r1, r1, #1 - add lr, lr, r1 - pop {r0, r1} - bx lr - -.section .text.__gnu_thumb1_case_shi -.global __gnu_thumb1_case_shi -.thumb_func -__gnu_thumb1_case_shi: - push {r0, r1} - mov r1, lr - lsrs r1, r1, #1 - lsls r0, r0, #1 - lsls r1, r1, #1 - ldrsh r1, [r1, r0] - lsls r1, r1, #1 - add lr, lr, r1 - pop {r0, r1} - bx lr - -.section .text.__gnu_thumb1_case_si -.global __gnu_thumb1_case_si -.thumb_func -__gnu_thumb1_case_si: - push {r0, r1} - mov r1, lr - adds.n r1, r1, #2 - lsrs r1, r1, #2 - lsls r0, r0, #2 - lsls r1, r1, #2 - ldr r0, [r1, r0] - adds r0, r0, r1 - mov lr, r0 - pop {r0, r1} - mov pc, lr |