aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-04-28 10:49:30 +0100
committergingerBill <bill@gingerbill.org>2021-04-28 10:49:30 +0100
commit24fce21d9055ac4cd2124c0fe5396f430e99f24f (patch)
tree86e9b95d03038af2a63d10d760afa34940be2eca /src/llvm_backend.cpp
parentafe185ee227b8d4540e4dc11b382eae0671575d2 (diff)
Add "naked" calling convention (removes prologue and epilogue)
Diffstat (limited to 'src/llvm_backend.cpp')
-rw-r--r--src/llvm_backend.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index 74d5bbe01..f81077b47 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -2588,6 +2588,10 @@ lbProcedure *lb_create_procedure(lbModule *m, Entity *entity) {
lb_add_attribute_to_proc(m, p->value, "noreturn");
}
+ if (pt->Proc.calling_convention == ProcCC_Naked) {
+ lb_add_attribute_to_proc(m, p->value, "naked");
+ }
+
switch (p->inlining) {
case ProcInlining_inline:
lb_add_attribute_to_proc(m, p->value, "alwaysinline");