kaffe-0.10.1 for m68k-sunos4

Kiyo Inaba inaba at src.ricoh.co.jp
Wed Jul 1 21:13:33 PDT 1998


I made kaffe-0.10.1 (or actually kaffe-snap) to work on m68k-sunos4 with
the following patch. It passes several regression tests but still I had
error for
	ttest, burford, DeadThread, ExecTest, tthrd1, Bean,
	ReflectInvoke, GCTest

I've checked I installed klasses.zip and it was placed before classes.zip
in CLASSPATH environment. Does someone know how I can make these test
to be passed?

Kiyo
-------------------------------------------------------------------------
diff -cr kaffe-snap/config/m68k/sunos4/md.h kaffe-snap-sun3/config/m68k/sunos4/md.h
*** kaffe-snap/config/m68k/sunos4/md.h	Wed Apr  1 04:10:53 1998
--- kaffe-snap-sun3/config/m68k/sunos4/md.h	Thu Jul  2 11:04:57 1998
***************
*** 14,21 ****
--- 14,83 ----
  
  #include "m68k/threads.h"
  
+ #define	sysdepCallMethod(CALL)					       \
+                asm volatile ("                                       \n\
+        1:                                                            \n\
+                cmpl    #0,%0                                         \n\
+                beq     3f                                            \n\
+                subql   #1,%0                                         \n\
+                cmpb    #0,%2@(%0:l)                                  \n\
+                beq     1b                                            \n\
+                cmpb    #1,%2@(%0:l)                                  \n\
+                beq     2f                                            \n\
+                movel   %1@(4,%0:l:8),sp at -                            \n\
+        2:                                                            \n\
+                movel   %1@(%0:l:8),sp at -                              \n\
+                jmp     1b                                            \n\
+        3:                                                            \n\
+                jsr     %3@                                           \n\
+                cmpb    #0x46,%4                                      \n\
+                bne     4f                                            \n\
+                movel   d0,%5@                                        \n\
+                jmp     6f                                            \n\
+        4:                                                            \n\
+                cmpb    #0x44,%4                                      \n\
+                bne     5f                                            \n\
+                movel   d0,%5@                                        \n\
+                movel   d1,%5@(4)                                     \n\
+                jmp     6f                                            \n\
+        5:                                                            \n\
+                movel   d0,%5@                                        \n\
+                cmpb    #0x4a,%4                                      \n\
+                bne     6f                                            \n\
+                movel   d1,%5@(4)                                     \n\
+        6:                                                              \
+        " :                                                             \
+          : "r" ((CALL)->nrargs),                                       \
+            "a" ((CALL)->args),                                         \
+            "a" ((CALL)->callsize),                                     \
+            "a" ((CALL)->function),                                     \
+            "m" ((CALL)->rettype),                                      \
+            "a" ((CALL)->ret)                                           \
+           : "d0", "d1", "fp0", "cc", "memory");                        \
+                asm volatile ("                                       \n\
+                addw %0,sp                                            \n\
+         " : : "r" ((CALL)->argsize * sizeof(jint)) : "cc")
+ 
+ /*
+  * Redefine stack pointer offset.
+  */
+ #undef  SP_OFFSET
+ #define SP_OFFSET       2
+ 
  #if defined(TRANSLATOR)
  #include "jit-md.h"
  #endif
+ 
+ struct sockaddr;
+ extern int rename(const char*, const char*);
+ extern int remove(const char*);
+ extern int socket(int, int, int);
+ extern ssize_t sendto(int, const void*, size_t, int, const struct sockaddr*, int);
+ extern int setsockopt(int, int, int, const void*, int);
+ extern int getsockopt(int, int, int, void*, int*);
+ extern int getsockname(int, struct sockaddr*, int*);
+ extern int getpeername(int, struct sockaddr*, int*);
+ extern int select(int, fd_set*, fd_set*, fd_set*, struct timeval*);
+ extern int vfprintf(FILE *, char *, va_list);
  
  #endif


More information about the kaffe mailing list