- mov %ecx,%edx /* calculate stack size */
- shl $3,%edx
- mov %edx,%esi /* save in callee saved register */
+ mov %ecx,%edx /* calculate stack size */
+ xor %esi,%esi
+ mov %eax,%edi /* save pointer to arg block */
+calljava_calcstacksize:
+ mov offjniitemtype(%eax),%ebx
+ test $1,%ebx /* Two Word Type? */
+ jz calljava_onewordtype
+ add $4,%esi
+calljava_onewordtype:
+ add $4,%esi
+ sub $1,%edx
+ test %edx,%edx /* any args left ?*/
+ jz calljava_setstack
+ add $sizejniblock,%eax /* goto next argument block */
+ jmp calljava_calcstacksize
+
+calljava_setstack:
+ mov %edi,%eax /* restore pointer to arg block */