Raymond Toy pushed to branch native-image at cmucl / cmucl

Commits:

1 changed file:

Changes:

  • src/lisp/save.c
    ... ... @@ -26,6 +26,9 @@
    26 26
     #include "gencgc.h"
    
    27 27
     #endif
    
    28 28
     
    
    29
    +/* Like (ceiling x y), but y is constrained to be a power of two */
    
    30
    +#define CEILING(x,y) (((x) + ((y) - 1)) & (~((y) - 1)))
    
    31
    +
    
    29 32
     #ifdef FEATURE_EXECUTABLE
    
    30 33
     #include "elf.h"
    
    31 34
     #if !(defined(DARWIN) && defined(__ppc__))
    
    ... ... @@ -454,6 +457,7 @@ int
    454 457
     asm_boxed(lispobj* ptr, lispobj object, FILE* f) 
    
    455 458
     {
    
    456 459
         int len = 1 + HeaderValue(object);
    
    460
    +    len = CEILING(len, 2);
    
    457 461
         int k;
    
    458 462
     
    
    459 463
         asm_label(ptr, object, f);
    
    ... ... @@ -464,8 +468,6 @@ asm_boxed(lispobj* ptr, lispobj object, FILE* f)
    464 468
             asm_lispobj(ptr + k, ptr[k], f);
    
    465 469
         }
    
    466 470
     
    
    467
    -    asm_align(f);
    
    468
    -    
    
    469 471
         return len;
    
    470 472
     }
    
    471 473
     
    
    ... ... @@ -535,6 +537,7 @@ asm_simple_vector(lispobj* ptr, lispobj object, FILE* f)
    535 537
     {
    
    536 538
         int k;
    
    537 539
         int len = ptr[1] >> 2;
    
    540
    +    len = CEILING(len, 2);
    
    538 541
         lispobj* data = ptr + 2;
    
    539 542
         
    
    540 543
         asm_label(ptr, object, f);