diff --git a/hercules_cg/src/cpu.rs b/hercules_cg/src/cpu.rs
index f7fd34db98e3af776f561c094c6c18bd241aa1e5..e13a7c3f87f911aa734d6531fdc3ff645c108d55 100644
--- a/hercules_cg/src/cpu.rs
+++ b/hercules_cg/src/cpu.rs
@@ -68,7 +68,7 @@ impl<'a> CPUContext<'a> {
             if self.types[return_type.idx()].is_primitive() {
                 write!(
                     w,
-                    "define dso_local {} @{}_{}(",
+                    "define dso_local nounwind nosync willreturn norecurse {} @{}_{}(",
                     self.get_type(return_type),
                     self.module_name,
                     self.function.name,
@@ -96,7 +96,7 @@ impl<'a> CPUContext<'a> {
             )?;
             write!(
                 w,
-                "define dso_local void @{}_{}(",
+                "define dso_local nounwind nosync willreturn norecurse void @{}_{}(",
                 self.module_name, self.function.name,
             )?;
         }