summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--amd64/emit.c2
-rw-r--r--arm64/emit.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/amd64/emit.c b/amd64/emit.c
index 297cc76..c949589 100644
--- a/amd64/emit.c
+++ b/amd64/emit.c
@@ -581,7 +581,7 @@ amd64_emitfn(Fn *fn, FILE *f)
 	uint64_t fs;
 
 	emitfnlnk(fn->name, &fn->lnk, f);
-	fputs("\tpushq %rbp\n\tmovq %rsp, %rbp\n", f);
+	fputs("\tendbr64\n\tpushq %rbp\n\tmovq %rsp, %rbp\n", f);
 	fs = framesz(fn);
 	if (fs)
 		fprintf(f, "\tsubq $%"PRIu64", %%rsp\n", fs);
diff --git a/arm64/emit.c b/arm64/emit.c
index 78a0358..85b5f3d 100644
--- a/arm64/emit.c
+++ b/arm64/emit.c
@@ -514,6 +514,7 @@ arm64_emitfn(Fn *fn, FILE *out)
 	if (T.apple)
 		e->fn->lnk.align = 4;
 	emitfnlnk(e->fn->name, &e->fn->lnk, e->f);
+	fputs("\thint\t#34\n", e->f);
 	framelayout(e);
 
 	if (e->fn->vararg && !T.apple) {