s/ppc/m68k/

Lure the preprocessor to not replace #n by "123" for syscalls...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22739 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
François Revol
2007-10-26 17:09:08 +00:00
parent dd68e9e8b4
commit fac9743e5c
4 changed files with 22 additions and 26 deletions
+15 -13
View File
@@ -2,73 +2,75 @@
** Copyright 2002, Travis Geiselbrecht. All rights reserved. ** Copyright 2002, Travis Geiselbrecht. All rights reserved.
** Distributed under the terms of the NewOS License. ** Distributed under the terms of the NewOS License.
*/ */
#warning make sure $ isn't hex
#define FUNC(name) .align 2 ; .globl _##name ; .type _##name,@function ; _##name: #define FUNC(name) .align 2 ; .globl name ; .type name,@function ; name:
/* lure the preprocessor to not substitute the syscall as string */
#define IMM #
#define SYSCALL0(name, n) \ #define SYSCALL0(name, n) \
FUNC(name) \ FUNC(name) \
moveq.l #$n,%d0 ; \ move.l IMM n,%d0 ; \
trap #0 ; \ trap #0 ; \
rts rts
#define SYSCALL1(name, n) \ #define SYSCALL1(name, n) \
FUNC(name) \ FUNC(name) \
moveq.l #$n,%d0 ; \ move.l IMM n,%d0 ; \
trap #0 ; \ trap #0 ; \
rts rts
#define SYSCALL2(name, n) \ #define SYSCALL2(name, n) \
FUNC(name) \ FUNC(name) \
moveq.l #$n,%d0 ; \ move.l IMM n,%d0 ; \
trap #0 ; \ trap #0 ; \
rts rts
#define SYSCALL3(name, n) \ #define SYSCALL3(name, n) \
FUNC(name) \ FUNC(name) \
moveq.l #$n,%d0 ; \ move.l IMM n,%d0 ; \
trap #0 ; \ trap #0 ; \
rts rts
#define SYSCALL4(name, n) \ #define SYSCALL4(name, n) \
FUNC(name) \ FUNC(name) \
moveq.l #$n,%d0 ; \ move.l IMM n,%d0 ; \
trap #0 ; \ trap #0 ; \
rts rts
#define SYSCALL5(name, n) \ #define SYSCALL5(name, n) \
FUNC(name) \ FUNC(name) \
moveq.l #$n,%d0 ; \ move.l IMM n,%d0 ; \
trap #0 ; \ trap #0 ; \
rts rts
#define SYSCALL6(name, n) \ #define SYSCALL6(name, n) \
FUNC(name) \ FUNC(name) \
moveq.l #$n,%d0 ; \ move.l IMM n,%d0 ; \
trap #0 ; \ trap #0 ; \
rts rts
#define SYSCALL7(name, n) \ #define SYSCALL7(name, n) \
FUNC(name) \ FUNC(name) \
moveq.l #$n,%d0 ; \ move.l IMM n,%d0 ; \
trap #0 ; \ trap #0 ; \
rts rts
#define SYSCALL8(name, n) \ #define SYSCALL8(name, n) \
FUNC(name) \ FUNC(name) \
moveq.l #$n,%d0 ; \ move.l IMM n,%d0 ; \
trap #0 ; \ trap #0 ; \
rts rts
#define SYSCALL9(name, n) \ #define SYSCALL9(name, n) \
FUNC(name) \ FUNC(name) \
moveq.l #$n,%d0 ; \ move.l IMM n,%d0 ; \
trap #0 ; \ trap #0 ; \
rts rts
#define SYSCALL10(name, n) \ #define SYSCALL10(name, n) \
FUNC(name) \ FUNC(name) \
moveq.l #$n,%d0 ; \ move.l IMM n,%d0 ; \
trap #0 ; \ trap #0 ; \
rts rts
@@ -13,7 +13,7 @@
static vint32 *sConversionFactor; static vint32 *sConversionFactor;
void void
__ppc_setup_system_time(vint32 *cvFactor) __m68k_setup_system_time(vint32 *cvFactor)
{ {
sConversionFactor = cvFactor; sConversionFactor = cvFactor;
} }
@@ -22,7 +22,7 @@ __ppc_setup_system_time(vint32 *cvFactor)
bigtime_t bigtime_t
system_time(void) system_time(void)
{ {
uint64 timeBase = __ppc_get_time_base(); uint64 timeBase = __m68k_time_base();
uint32 cv = *sConversionFactor; uint32 cv = *sConversionFactor;
return (timeBase >> 32) * cv + (((timeBase & 0xffffffff) * cv) >> 32); return (timeBase >> 32) * cv + (((timeBase & 0xffffffff) * cv) >> 32);
@@ -7,15 +7,9 @@
.text .text
/* int64 __ppc_get_time_base(void) /* int64 __m68k_get_time_base(void)
* r3/r4
*/ */
FUNCTION(__ppc_get_time_base): FUNCTION(__m68k_get_time_base):
/* get TB (time base) register */ #warning M68K: implement __m68k_get_time_base()
carry: mftbu %r3 rts
mftb %r4
mftbu %r5 // read the upper half again
cmpw %r3, %r5 // and check if the values have changed
bne carry // try again, if they had
blr
+1 -1
View File
@@ -23,7 +23,7 @@ __arch_init_time(struct real_time_data *data, bool setDefaults)
sRealTimeData->version = 0; sRealTimeData->version = 0;
} }
__ppc_setup_system_time(&sRealTimeData->system_time_conversion_factor); __m68k_setup_system_time(&sRealTimeData->system_time_conversion_factor);
} }