switched to new calling convention that uses multiple value return array on stack to pass excess arguments