summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorGreg Still <stillgs@us.ibm.com>2015-04-14 08:29:05 -0500
committerDerk Rembold <rembold@de.ibm.com>2015-05-21 06:33:16 -0500
commit1ebc3c0868c74833aabe3775509d65ae29cd4925 (patch)
treeb85f6a2891937e74eb2e8771e866951f732aa97a /include
parent44825c566df19373078b509251e2411b94dcda5d (diff)
downloadtalos-sbe-1ebc3c0868c74833aabe3775509d65ae29cd4925.tar.gz
talos-sbe-1ebc3c0868c74833aabe3775509d65ae29cd4925.zip
Add common ppe_compiler.mk and proc_hcd_common.H
- ppe_compiler.mk for pointing to the common PPE compiler across platforms - proc_hcd_common.H for things common across PPE HCD procedures Change-Id: Ic8883a655eacfcd860e0036c516555ab12984d08 New PPE getscom routines leveragin upgraded compiler - Pass pointers to data elements to use indexed lvdx/stvdx instructions Change-Id: I7b99393919bc533bac5743001ee2c50b778eb2b2 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/17172 Reviewed-by: Glenn R. Miles <milesg@us.ibm.com> Reviewed-by: Brian Silver <bsilver@us.ibm.com> Reviewed-by: Derk Rembold <rembold@de.ibm.com> Tested-by: Derk Rembold <rembold@de.ibm.com>
Diffstat (limited to 'include')
-rwxr-xr-xinclude/ppe_compiler.mk59
-rw-r--r--include/proc_hcd_common.H20
2 files changed, 79 insertions, 0 deletions
diff --git a/include/ppe_compiler.mk b/include/ppe_compiler.mk
new file mode 100755
index 00000000..7db9a4ca
--- /dev/null
+++ b/include/ppe_compiler.mk
@@ -0,0 +1,59 @@
+# Make header to set up PPE Compiler
+#
+ifndef CC_VERSION
+export CC_VERSION = 4.8.3
+endif
+
+ifndef CC_TARGET
+export CC_TARGET = powerpc-buildroot-linux-gnu
+endif
+
+# GCC libraries
+ifndef LIB_GCC_DIR
+export LIB_GCC_DIR = $(CC_ROOT)/usr/lib/gcc/$(CC_TARGET)/$(CC_VERSION)
+endif
+LIB_DIRS += -L$(LIB_GCC_DIR)
+
+# GCC libraries
+ifndef LIB_GCC_BASE
+export LIB_GCC_BASE = $(CC_ROOT)/usr/lib/gcc/$(CC_TARGET)
+endif
+LIB_DIRS += -L$(LIB_GCC_BASE)
+
+# GCC libraries
+ifndef LIB_BASE
+export LIB_BASE = $(CC_ROOT)/usr/lib
+endif
+LIB_DIRS += -L$(LIB_BASE)
+
+# Shared Object C and C++ libraries
+ifndef LIB_TARGET
+export LIB_TARGET = $(CC_ROOT)/usr/$(CC_TARGET)/lib
+endif
+#CLIBS += $(LIB_TARGET)/libstdc++.a
+#LIB_DIRS += -L$(LIB_TARGET)
+
+# Static C and C++ libraries
+ifndef LIB_CLIB_DIR
+export LIB_CLIB_DIR = $(CC_ROOT)/usr/$(CC_TARGET)/sysroot/lib
+endif
+LIB_DIRS += -L$(LIB_CLIB_DIR)
+
+# Runtime Static C and C++ libraries
+ifndef LIB_CULIB_DIR
+export LIB_CULIB_DIR = $(CC_ROOT)/usr/$(CC_TARGET)/sysroot/usr/lib
+endif
+LIB_DIRS += -L$(LIB_CULIB_DIR)
+
+GCCLIBS += $(LIB_CULIB_DIR)/libstdc++.a
+GCCLIBS += $(LIB_CULIB_DIR)/libm.a
+GCCLIBS += $(LIB_CULIB_DIR)/libc.a
+
+ifdef ENABLE_UCLIB
+GCCLIBS += $(LIB_CULIB_DIR)/uclibc_nonshared.a
+GCCLIBS += $(LIB_CULIB_DIR)/crt1.o
+GCCLIBS += $(LIB_CULIB_DIR)/crti.o
+endif
+
+GCCLIBS += $(LIB_GCC_DIR)/libgcc.a
+GCCLIBS += $(LIB_GCC_DIR)/libgcc_eh.a
diff --git a/include/proc_hcd_common.H b/include/proc_hcd_common.H
new file mode 100644
index 00000000..51cc1285
--- /dev/null
+++ b/include/proc_hcd_common.H
@@ -0,0 +1,20 @@
+#ifndef __PROC_HCD_COMMON_H
+#define __PROC_HCD_COMMON_H
+
+/// \file proc_hcd_common.H
+/// \brief Standard bit-manipulation macros (C and Assembler) for PORE code
+
+/// \defgroup be64_bits Bit manipulation for 64-bit Big-Endian values
+///
+/// \note These macros only work in the assembler context because we build our
+/// assemblers to do 64-bit arithmetic, which is required for PORE assembly.
+///
+/// @{
+
+/// Create a multi-bit mask of \a n bits starting at bit \a b
+#define BITS(b, n) ((ULL(0xffffffffffffffff) << (64 - (n))) >> (b))
+
+/// Create a single bit mask at bit \a b
+#define BIT(b) BITS((b), 1)
+
+#endif // __PROC_HCD_COMMON_H
OpenPOWER on IntegriCloud