[Git][cmucl/cmucl][sparc64-dev-nyi] 3 commits: Registers are longs, not ints.

Raymond Toy rtoy at common-lisp.net
Thu Jan 19 03:29:53 UTC 2017


Raymond Toy pushed to branch sparc64-dev-nyi at cmucl / cmucl


Commits:
155b792b by Raymond Toy at 2017-01-17T20:34:36-08:00
Registers are longs, not ints.

Fixes a couple of compiler warnings.

- - - - -
87731e87 by Raymond Toy at 2017-01-17T20:35:03-08:00
Add EMIT-NOT-IMPLEMENTED in a few interesting vops.

- - - - -
67a3752d by Raymond Toy at 2017-01-18T19:29:29-08:00
Don't allow scheduling of not-implemented.

We want everything here to be emitted in exactly this way.

- - - - -


4 changed files:

- src/compiler/sparc64/call.lisp
- src/compiler/sparc64/insts.lisp
- src/compiler/sparc64/move.lisp
- src/lisp/solaris-os.c


Changes:

=====================================
src/compiler/sparc64/call.lisp
=====================================
--- a/src/compiler/sparc64/call.lisp
+++ b/src/compiler/sparc64/call.lisp
@@ -179,6 +179,9 @@
     (dotimes (i (1- vm:function-code-offset))
       (inst word 0)
       (inst word 0))
+
+    (emit-not-implemented)
+
     ;; The start of the actual code.
     ;; Fix CODE, cause the function object was passed in.
     (inst compute-code-from-fn code-tn code-tn start-lab temp)


=====================================
src/compiler/sparc64/insts.lisp
=====================================
--- a/src/compiler/sparc64/insts.lisp
+++ b/src/compiler/sparc64/insts.lisp
@@ -2284,21 +2284,22 @@ about function addresses and register values.")
 (defmacro not-implemented (&optional name)
   (let ((string (string name)))
     `(let ((length-label (gen-label)))
-       (inst unimp not-implemented-trap)
-       ;; NOTE: The branch offset helps estimate the length of the
-       ;; string.  The actual length of the string may be equal to the
-       ;; displacement or it may be up to three bytes shorter at the
-       ;; first trailing NUL byte.  The string may or may not be
-       ;; 0-terminated.
-       (inst b length-label)
-       (inst nop)
-       ,@(map 'list #'(lambda (c)
-			`(inst byte ,(char-code c)))
-	      string)
-       ;; Append enough zeros to end on a word boundary.
-       ,@(make-list (mod (- (length string)) 4)
-		    :initial-element '(inst byte 0))
-       (emit-label length-label))))
+       (new-assem:without-scheduling ()
+	 (inst unimp not-implemented-trap)
+	 ;; NOTE: The branch offset helps estimate the length of the
+	 ;; string.  The actual length of the string may be equal to the
+	 ;; displacement or it may be up to three bytes shorter at the
+	 ;; first trailing NUL byte.  The string may or may not be
+	 ;; 0-terminated.
+	 (inst b length-label)
+	 (inst nop)
+	 ,@(map 'list #'(lambda (c)
+			  `(inst byte ,(char-code c)))
+		string)
+	 ;; Append enough zeros to end on a word boundary.
+	 ,@(make-list (mod (- (length string)) 4)
+		      :initial-element '(inst byte 0))
+	 (emit-label length-label)))))
 

 ;;;; Instructions for dumping data and header objects.
 


=====================================
src/compiler/sparc64/move.lisp
=====================================
--- a/src/compiler/sparc64/move.lisp
+++ b/src/compiler/sparc64/move.lisp
@@ -74,6 +74,7 @@
 
 (define-move-function (store-stack 5) (vop x y)
   ((any-reg descriptor-reg) (control-stack))
+  (not-implemented "DEFINE-MOVE STORE-STACK")
   (store-stack-tn y x))
 
 (define-move-function (store-number-stack 5) (vop x y)


=====================================
src/lisp/solaris-os.c
=====================================
--- a/src/lisp/solaris-os.c
+++ b/src/lisp/solaris-os.c
@@ -315,7 +315,7 @@ long *
 solaris_register_address(struct ucontext *context, int reg)
 {
     if (reg == 0) {
-	static int zero;
+	static long zero;
 
 	zero = 0;
 
@@ -323,7 +323,7 @@ solaris_register_address(struct ucontext *context, int reg)
     } else if (reg < 16) {
 	return &context->uc_mcontext.gregs[reg + 3];
     } else if (reg < 32) {
-	int *sp = (int *) context->uc_mcontext.gregs[REG_SP];
+	long *sp = (long *) context->uc_mcontext.gregs[REG_SP];
 
 	return &sp[reg - 16];
     } else



View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/compare/794b815a0d6952170eb13687457e1f2828105e31...67a3752d5df8e84e3b0bf38a67dd4648cacc0330
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cmucl-cvs/attachments/20170119/de6dca79/attachment-0001.html>


More information about the cmucl-cvs mailing list