diff --git a/compiler/vop.lisp b/compiler/vop.lisp
index 18e6b0952f78b56b36328305103e884a8e41064c..371ede8c6320946f32f352b39ba5f156ed2f1f91 100644
--- a/compiler/vop.lisp
+++ b/compiler/vop.lisp
@@ -956,7 +956,12 @@
   (number-stack-p nil :type boolean)
   ;;
   ;; Alignment restriction.  The offset must be an even multiple of this.
-  (alignment 1 :type (and index (integer 1))))
+  (alignment 1 :type (and index (integer 1)))
+  ;;
+  ;; A list of locations that we avoid packing in during normal register
+  ;; allocation to ensure that these locations will be free for operand
+  ;; loading.  This prevents load-TN packing from thrashing by spilling a lot.
+  (reserve-locations nil :type list))
 
 (defprinter sc
   name)