[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