+ // Init Happens-before rules table
+ newCode.addAll(generateHBInitAnnotation(semantics));
+
+ // Pass init info, including function table info & HB rules
+ newCode.add(COMMENT("Pass init info, including function table info & HB rules"));
+ String structName = "anno_init", anno = "init";
+ newCode.add(STRUCT_NEW_DECLARE_DEFINE(ANNO_INIT, structName));
+ newCode.add(ASSIGN_TO_PTR(structName, "func_table", "func_ptr_table"));
+ newCode.add(ASSIGN_TO_PTR(structName, "func_table_size",
+ "INTERFACE_SIZE"));
+ newCode.add(ASSIGN_TO_PTR(structName, "hb_init_table", "hb_init_table"));
+ newCode.add(ASSIGN_TO_PTR(structName, "hb_init_table_size",
+ "HB_INIT_TABLE_SIZE"));
+ newCode.add(STRUCT_NEW_DECLARE_DEFINE(SPEC_ANNOTATION, anno));
+ newCode.add(ASSIGN_TO_PTR(anno, "type", SPEC_ANNO_TYPE_INIT));
+ newCode.add(ASSIGN_TO_PTR(anno, "annotation", structName));
+ newCode.add(ANNOTATE(semantics, anno));
+