export func exit(int32);
+export func BUG_intereq(a, b interface{}) bool; // should not be necessary
"export func sys.bytestorune (? *sys.uint8, ? sys.int32, ? sys.int32) (? sys.int32, ? sys.int32)\n"
"export func sys.stringtorune (? sys.string, ? sys.int32) (? sys.int32, ? sys.int32)\n"
"export func sys.exit (? sys.int32)\n"
+ "export func sys.BUG_intereq (a interface { }, b interface { }) (? sys.bool)\n"
"\n"
"$$\n";
MOVL $1, AX
RET
+// func BUG_intereq(a, b interface{}) bool {
+// return a == b
+// }
+// TODO: delete once 6g can compile a == b on interfaces.
+TEXT sys·BUG_intereq(SB),7,$0
+ // First interface at 8(SP) and 16(SP)
+ // Second interface at 24(SP) and 32(SP)
+ // Answer at 40(SP)
+ MOVQ 8(SP), AX
+ CMPQ AX, 24(SP)
+ JNE 6(PC)
+ MOVQ 16(SP), AX
+ CMPQ AX, 32(SP)
+ JNE 3(PC)
+ MOVQ $1, 40(SP)
+ RET
+ MOVQ $0, 40(SP)
+ RET