   U32(o)
   # Assign all the on-stack locals to their addresses.
   scope = o.scope
-  exprs.unshift new Assign SP, normalizePtr(SPREAL, U32.BYTES_PER_ELEMENT, 1)
+  exprs.unshift new Assign SP, normalizePtr(SPREAL, SPREAL.computedType.view.BYTES_PER_ELEMENT,
+                                                    SP.computedType.view.BYTES_PER_ELEMENT)
   exprs.unshift new Assign SPREAL, new Value(new Literal frameSize), '-='
   restoreStack = new Assign SPREAL, new Value(new Literal frameSize), '+='
   if opts.unsafe

  v = stackOffsetExpr bind.spOffset, bind.type if bind?.onStack
  cumulativeOffset = 0
  for prop in props
    field = prop.computedField
    if (fty = field.type) instanceof StructType
      cumulativeOffset += field.offset


DeclareType::declareType = (r, o) ->
  scope = o.scope
  @variables = variables = []
  declare scope, v, @type.lint(o.types), variables for v in @typeables
  return

Param::declareType = (r, o) ->
