aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/symtab.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/symtab.c')
-rw-r--r--src/runtime/symtab.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/runtime/symtab.c b/src/runtime/symtab.c
index 80c49e01a0..9580cad712 100644
--- a/src/runtime/symtab.c
+++ b/src/runtime/symtab.c
@@ -127,6 +127,16 @@ dofunc(Sym *sym)
if(nfunc > 0 && func != nil)
func[nfunc-1].frame = sym->value;
break;
+ case 'p':
+ if(nfunc > 0 && func != nil) {
+ f = &func[nfunc-1];
+ // args counts 32-bit words.
+ // sym->value is the arg's offset.
+ // don't know width of this arg, so assume it is 64 bits.
+ if(f->args < sym->value/4 + 2)
+ f->args = sym->value/4 + 2;
+ }
+ break;
case 'f':
if(fname == nil) {
if(sym->value >= nfname)