summaryrefslogtreecommitdiff
path: root/src/arch/ppc/lib
diff options
context:
space:
mode:
authorEswar Nallusamy <contacteswar@gmail.com>2005-11-02 17:32:49 +0000
committerEswar Nallusamy <contacteswar@gmail.com>2005-11-02 17:32:49 +0000
commited009371030cb97571c8b8dc342f16a9fa124d59 (patch)
tree3ff2d9e14f73cbb98b5706e837adb897eb5d3c3e /src/arch/ppc/lib
parent987ca8e08c3307e46dde3b35c6190c504f0cbf19 (diff)
ppc970 initial porting.
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2082 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/arch/ppc/lib')
-rw-r--r--src/arch/ppc/lib/c_start.S3
-rw-r--r--src/arch/ppc/lib/div64.S5
-rw-r--r--src/arch/ppc/lib/timebase.S18
3 files changed, 26 insertions, 0 deletions
diff --git a/src/arch/ppc/lib/c_start.S b/src/arch/ppc/lib/c_start.S
index d0d2a8f3d7..e7ae2a20c9 100644
--- a/src/arch/ppc/lib/c_start.S
+++ b/src/arch/ppc/lib/c_start.S
@@ -7,6 +7,7 @@
* configuring the machine.
*/
+#ifndef __PPC64__
#define ASM
#include "ppcreg.h"
#include <ppc_asm.tmpl>
@@ -109,3 +110,5 @@ __DTOR_LIST__:
.globl __DTOR_END__
__DTOR_END__:
blr
+
+#endif
diff --git a/src/arch/ppc/lib/div64.S b/src/arch/ppc/lib/div64.S
index 48047747e0..1cc4e7c7bf 100644
--- a/src/arch/ppc/lib/div64.S
+++ b/src/arch/ppc/lib/div64.S
@@ -15,8 +15,13 @@
*/
#include <ppc_asm.tmpl>
+#ifndef __PPC64__
.globl __div64_32
__div64_32:
+#else
+ .globl .__div64_32
+.__div64_32:
+#endif
lwz r5,0(r3) # get the dividend into r5/r6
lwz r6,4(r3)
cmplw r5,r4
diff --git a/src/arch/ppc/lib/timebase.S b/src/arch/ppc/lib/timebase.S
index 9e0b2a9290..43023c0418 100644
--- a/src/arch/ppc/lib/timebase.S
+++ b/src/arch/ppc/lib/timebase.S
@@ -28,8 +28,13 @@
/*
* unsigned long long _get_ticks(void);
*/
+#ifndef __PPC64__
.globl _get_ticks
_get_ticks:
+#else
+ .globl ._get_ticks
+._get_ticks:
+#endif
1: mftbu r3
mftb r4
mftbu r5
@@ -40,17 +45,30 @@ _get_ticks:
/*
* Delay for a number of ticks
*/
+#ifndef __PPC64__
.globl _wait_ticks
_wait_ticks:
+#else
+ .globl ._wait_ticks
+._wait_ticks:
+#endif
mflr r8 /* save link register */
mr r7, r3 /* save tick count */
+#ifndef __PPC64__
bl _get_ticks /* Get start time */
+#else
+ bl ._get_ticks /* Get start time */
+#endif
/* Calculate end time */
addc r7, r4, r7 /* Compute end time lower */
addze r6, r3 /* and end time upper */
+#ifndef __PPC64__
1: bl _get_ticks /* Get current time */
+#else
+1: bl ._get_ticks /* Get current time */
+#endif
subfc r4, r4, r7 /* Subtract current time from end time */
subfe. r3, r3, r6
bge 1b /* Loop until time expired */