align inline constant section with long nops
authorNathan Froyd <froydnj@gmail.com>
Wed, 5 Sep 2012 02:24:37 +0000 (22:24 -0400)
committerNathan Froyd <froydnj@gmail.com>
Wed, 5 Sep 2012 02:24:37 +0000 (22:24 -0400)
Makes the disassembly much nicer, particularly at speed > space.

src/compiler/codegen.lisp
src/compiler/x86-64/insts.lisp
src/compiler/x86/insts.lisp

index 37384dc..b0107e1 100644 (file)
         (let ((constants (sb!vm:sort-inline-constants *constant-vector*)))
           (assemble (*constant-segment*)
             (sb!vm:emit-constant-segment-header
+             *constant-segment*
              constants
              (do-ir2-blocks (2block component nil)
                (when (policy (block-last (ir2-block-block 2block))
index b447952..a23f5f6 100644 (file)
     (values label (make-ea size
                            :disp (make-fixup nil :code-object label)))))
 
-(defun emit-constant-segment-header (constants optimize)
+(defun emit-constant-segment-header (segment constants optimize)
   (declare (ignore constants))
-  (loop repeat (if optimize 64 16) do (inst byte #x90)))
+  (emit-long-nop segment (if optimize 64 16)))
 
 (defun size-nbyte (size)
   (ecase size
index c779a8b..cc6b53e 100644 (file)
     (values label (make-ea size
                            :disp (make-fixup nil :code-object label)))))
 
-(defun emit-constant-segment-header (constants optimize)
+(defun emit-constant-segment-header (segment constants optimize)
   (declare (ignore constants))
   (loop repeat (if optimize 64 16) do (inst byte #x90)))