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

Commits:

4 changed files:

Changes:

  • src/compiler/sparc64/call.lisp
    ... ... @@ -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)
    

  • src/compiler/sparc64/insts.lisp
    ... ... @@ -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
     
    

  • src/compiler/sparc64/move.lisp
    ... ... @@ -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)
    

  • src/lisp/solaris-os.c
    ... ... @@ -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