 HELP: ##prologue
 { $class-description
   "An instruction for generating the prologue for a cfg. All it does is decrementing the stack register a number of cells to give the generated code some stack space to work with." }
-{ $see-also ##epilogue } ;
+  { $see-also ##epilogue } ;
+
+HELP: ##allot
+{ $class-description
+  "An instruction for allocating memory in the nursery. Usually the instruction is preceeded by " { $link ##check-nursery-branch } " which checks that there is enough room in the nursery to allocate. It has the following slots:"
+  { $table
+    { { $slot "dst" } { "Register to put the pointer to the memory in." } }
+    { { $slot "size" } { "Number of bytes to allocate." } }
+    { { $slot "class-of" } { "Class of object to allocate, e.g " { $link tuple } " or " { $link array } "." } }
+    { { $slot "temp" } { "Temporary register to clobber." } }
+  }
+} ;
 
 HELP: ##alien-invoke
 { $class-description

{ $class-description
  "Instructions which are referentially transparent; used for value numbering." } ;

HELP: ##inc-d
{ $class-description
  "An instruction that increases or decreases the data stacks height by n. For example, " { $link 2drop } " decreases it by two and pushing an item increases it by one."

{ $subsections
  ##alien-invoke
  alien-call-insn
}
"Allocation:"
{ $subsections
  ##allot
}
"Constant loading:"
{ $subsections
  ##load-integer
  ##load-reference
}
 "Integer arithmetic and bit operations:"
{ $subsections
  ##add
  ##add-imm
  ##and
  ##and-imm
  ##mul
  ##mul-imm
  ##or
  ##or-imm
  ##sar
  ##sar-imm
  ##shl
  ##shl-imm
  ##sub
  ##sub-imm
  ##xor
  ##xor-imm
}
"Slot access:"
{ $subsections
  ##slot
  ##slot-imm
  ##set-slot
  ##set-slot-imm
} ;
