summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2013-10-07 06:38:04 +0200
committerAraq <rumpf_a@web.de>2013-10-07 06:38:04 +0200
commit90d25919f3ee1a84b72da84ff963e6853b650bd5 (patch)
tree5acb11c1c8c206f98e73fb5c879119156c9bd2e6
parentbb365ca424487dbad0f05cc7097cc3eca1bcc671 (diff)
downloadNim-90d25919f3ee1a84b72da84ff963e6853b650bd5.tar.gz
implemented top level asm statements
-rw-r--r--compiler/ccgstmts.nim6
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/ccgstmts.nim b/compiler/ccgstmts.nim
index 3c8c6d9a3..75cabf414 100644
--- a/compiler/ccgstmts.nim
+++ b/compiler/ccgstmts.nim
@@ -856,7 +856,11 @@ proc genAsmStmt(p: BProc, t: PNode) =
   assert(t.kind == nkAsmStmt)
   genLineDir(p, t)
   var s = genAsmOrEmitStmt(p, t, isAsmStmt=true)
-  lineF(p, cpsStmts, CC[ccompiler].asmStmtFrmt, [s])
+  if p.prc == nil:
+    # top level asm statement?
+    appf(p.module.s[cfsProcHeaders], CC[ccompiler].asmStmtFrmt, [s])
+  else:
+    lineF(p, cpsStmts, CC[ccompiler].asmStmtFrmt, [s])
 
 proc genEmit(p: BProc, t: PNode) = 
   genLineDir(p, t)