Raymond Toy pushed to branch sparc64-dev-nyi at cmucl / cmucl
Commits:
-
155b792b
by Raymond Toy at 2017-01-17T20:34:36-08:00
-
87731e87
by Raymond Toy at 2017-01-17T20:35:03-08:00
-
67a3752d
by Raymond Toy at 2017-01-18T19:29:29-08:00
4 changed files:
- src/compiler/sparc64/call.lisp
- src/compiler/sparc64/insts.lisp
- src/compiler/sparc64/move.lisp
- src/lisp/solaris-os.c
Changes:
... | ... | @@ -179,6 +179,9 @@ |
179 | 179 |
(dotimes (i (1- vm:function-code-offset))
|
180 | 180 |
(inst word 0)
|
181 | 181 |
(inst word 0))
|
182 |
+ |
|
183 |
+ (emit-not-implemented)
|
|
184 |
+ |
|
182 | 185 |
;; The start of the actual code.
|
183 | 186 |
;; Fix CODE, cause the function object was passed in.
|
184 | 187 |
(inst compute-code-from-fn code-tn code-tn start-lab temp)
|
... | ... | @@ -2284,21 +2284,22 @@ about function addresses and register values.") |
2284 | 2284 |
(defmacro not-implemented (&optional name)
|
2285 | 2285 |
(let ((string (string name)))
|
2286 | 2286 |
`(let ((length-label (gen-label)))
|
2287 |
- (inst unimp not-implemented-trap)
|
|
2288 |
- ;; NOTE: The branch offset helps estimate the length of the
|
|
2289 |
- ;; string. The actual length of the string may be equal to the
|
|
2290 |
- ;; displacement or it may be up to three bytes shorter at the
|
|
2291 |
- ;; first trailing NUL byte. The string may or may not be
|
|
2292 |
- ;; 0-terminated.
|
|
2293 |
- (inst b length-label)
|
|
2294 |
- (inst nop)
|
|
2295 |
- ,@(map 'list #'(lambda (c)
|
|
2296 |
- `(inst byte ,(char-code c)))
|
|
2297 |
- string)
|
|
2298 |
- ;; Append enough zeros to end on a word boundary.
|
|
2299 |
- ,@(make-list (mod (- (length string)) 4)
|
|
2300 |
- :initial-element '(inst byte 0))
|
|
2301 |
- (emit-label length-label))))
|
|
2287 |
+ (new-assem:without-scheduling ()
|
|
2288 |
+ (inst unimp not-implemented-trap)
|
|
2289 |
+ ;; NOTE: The branch offset helps estimate the length of the
|
|
2290 |
+ ;; string. The actual length of the string may be equal to the
|
|
2291 |
+ ;; displacement or it may be up to three bytes shorter at the
|
|
2292 |
+ ;; first trailing NUL byte. The string may or may not be
|
|
2293 |
+ ;; 0-terminated.
|
|
2294 |
+ (inst b length-label)
|
|
2295 |
+ (inst nop)
|
|
2296 |
+ ,@(map 'list #'(lambda (c)
|
|
2297 |
+ `(inst byte ,(char-code c)))
|
|
2298 |
+ string)
|
|
2299 |
+ ;; Append enough zeros to end on a word boundary.
|
|
2300 |
+ ,@(make-list (mod (- (length string)) 4)
|
|
2301 |
+ :initial-element '(inst byte 0))
|
|
2302 |
+ (emit-label length-label)))))
|
|
2302 | 2303 |
|
2303 | 2304 |
;;;; Instructions for dumping data and header objects.
|
2304 | 2305 |
|
... | ... | @@ -74,6 +74,7 @@ |
74 | 74 |
|
75 | 75 |
(define-move-function (store-stack 5) (vop x y)
|
76 | 76 |
((any-reg descriptor-reg) (control-stack))
|
77 |
+ (not-implemented "DEFINE-MOVE STORE-STACK")
|
|
77 | 78 |
(store-stack-tn y x))
|
78 | 79 |
|
79 | 80 |
(define-move-function (store-number-stack 5) (vop x y)
|
... | ... | @@ -315,7 +315,7 @@ long * |
315 | 315 |
solaris_register_address(struct ucontext *context, int reg)
|
316 | 316 |
{
|
317 | 317 |
if (reg == 0) {
|
318 |
- static int zero;
|
|
318 |
+ static long zero;
|
|
319 | 319 |
|
320 | 320 |
zero = 0;
|
321 | 321 |
|
... | ... | @@ -323,7 +323,7 @@ solaris_register_address(struct ucontext *context, int reg) |
323 | 323 |
} else if (reg < 16) {
|
324 | 324 |
return &context->uc_mcontext.gregs[reg + 3];
|
325 | 325 |
} else if (reg < 32) {
|
326 |
- int *sp = (int *) context->uc_mcontext.gregs[REG_SP];
|
|
326 |
+ long *sp = (long *) context->uc_mcontext.gregs[REG_SP];
|
|
327 | 327 |
|
328 | 328 |
return &sp[reg - 16];
|
329 | 329 |
} else
|