Index: contrib/arch/hadlbppp.py
===================================================================
--- contrib/arch/hadlbppp.py	(revision 0e8ad0ba19c5e0257acd89755503a13adc698128)
+++ contrib/arch/hadlbppp.py	(revision 41eca316f13f8f97122806e738e9e98dfa0f564e)
@@ -451,4 +451,17 @@
 		return flatten_binds(result, delegates, subsumes)
 
+def direct_binds(binds):
+	"Convert bindings matrix to set of sources by destination"
+	
+	result = {}
+	
+	for bind in binds:
+		if (not bind['to'] in result):
+			result[bind['to']] = set()
+		
+		result[bind['to']].add(bind['from'])
+	
+	return result
+
 def merge_subarch(prefix, arch, outdir):
 	"Merge subarchitecture into architexture"
@@ -541,6 +554,8 @@
 		dump_frame(inst['frame'], outdir, inst['var'], outf)
 	
-	for bind in flatten_binds(binds, delegates, subsumes):
-		outf.write("bind %s to %s\n" % (bind['from'], bind['to']))
+	directed_binds = direct_binds(flatten_binds(binds, delegates, subsumes))
+	
+	for dst, src in directed_binds.items():
+		outf.write("bind %s to %s\n" % (", ".join(src), dst))
 	
 	outf.close()
