tables.h: add assembler versions

Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
diff --git a/include/linux/tables.h b/include/linux/tables.h
index b6e7051..2e671cb 100644
--- a/include/linux/tables.h
+++ b/include/linux/tables.h
@@ -8,8 +8,22 @@
 #define SECTION_TBL(section, name, level)				\
 	SECTION_TYPE(section, SECTION_TYPE_TABLES, name, level)
 
-#ifndef __ASSEMBLY__
+#ifdef __ASSEMBLER__
+#define push_section_tbl(section, name, level, flags)			\
+	push_section_type(section, SECTION_TYPE_TABLES, name, level, flags)
 
+#define DECLARE_SECTION_TBL(section, name)				\
+  push_section_tbl(section, name,,) ;					\
+  .globl name ;								\
+name: ;									\
+  .popsection								\
+									\
+  push_section_tbl(section, name, ~,) ;					\
+  .popsection
+
+#else
+
+#ifndef __ASSEMBLY__
 /*
  * Linux linker tables
  *
@@ -164,6 +178,7 @@
 	push_section(section, SECTION_TYPE_TABLES, name, level, flags)
 
 #endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__ */
 
 #define SECTION_TBL_ALL(section)					\
 	SECTION_TYPE_ALL(section,SECTION_TYPE_TABLES)