From 94fb8ee096e46da8a50d4c087ba9ab0652d0317d Mon Sep 17 00:00:00 2001 From: Vic Yang Date: Sun, 12 Feb 2012 10:42:22 +0800 Subject: [PATCH] Sqrt function for Cortex-M Add an arch include folder. Implement sqrtf for Cortex-M in math.h. BUG=chrome-os-partner:7920 TEST=none Change-Id: Ib7b480b6a0bf7760f014a1f73df54673a9016cb6 Signed-off-by: Vic Yang --- Makefile | 2 +- core/cortex-m/include/math.h | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 core/cortex-m/include/math.h diff --git a/Makefile b/Makefile index 076f7433cc..331be13137 100644 --- a/Makefile +++ b/Makefile @@ -43,6 +43,6 @@ all-y+=$(call objs_from_dir,board/$(BOARD),$(board-y)) all-y+=$(call objs_from_dir,common,$(common-y)) all-y+=$(call objs_from_dir,test,$($(PROJECT)-y)) dirs=core/$(CORE) chip/$(CHIP) board/$(BOARD) common test util -includes=include $(dirs) +includes=include core/$(CORE)/include $(dirs) include Makefile.rules diff --git a/core/cortex-m/include/math.h b/core/cortex-m/include/math.h new file mode 100644 index 0000000000..485f28ba23 --- /dev/null +++ b/core/cortex-m/include/math.h @@ -0,0 +1,24 @@ +/* Copyright (c) 2012 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. + */ + +/* Math utility functions for ARMv7 */ + +#ifndef __EC_MATH_H +#define __EC_MATH_H + +#ifdef CONFIG_FPU +static inline float sqrtf(float v) +{ + float root; + asm volatile( + "fsqrts %0, %1" + : "=w" (root) + : "w" (v) + ); + return root; +} +#endif /* CONFIG_FPU */ + +#endif /* __EC_MATH_H */