1*67e74705SXin Li 2*67e74705SXin Li // This pounds on macro expansion for performance reasons. This is currently 3*67e74705SXin Li // heavily constrained by darwin's malloc. 4*67e74705SXin Li 5*67e74705SXin Li // Function-like macros. 6*67e74705SXin Li #define A0(A, B) A B 7*67e74705SXin Li #define A1(A, B) A0(A,B) A0(A,B) A0(A,B) A0(A,B) A0(A,B) A0(A,B) 8*67e74705SXin Li #define A2(A, B) A1(A,B) A1(A,B) A1(A,B) A1(A,B) A1(A,B) A1(A,B) 9*67e74705SXin Li #define A3(A, B) A2(A,B) A2(A,B) A2(A,B) A2(A,B) A2(A,B) A2(A,B) 10*67e74705SXin Li #define A4(A, B) A3(A,B) A3(A,B) A3(A,B) A3(A,B) A3(A,B) A3(A,B) 11*67e74705SXin Li #define A5(A, B) A4(A,B) A4(A,B) A4(A,B) A4(A,B) A4(A,B) A4(A,B) 12*67e74705SXin Li #define A6(A, B) A5(A,B) A5(A,B) A5(A,B) A5(A,B) A5(A,B) A5(A,B) 13*67e74705SXin Li #define A7(A, B) A6(A,B) A6(A,B) A6(A,B) A6(A,B) A6(A,B) A6(A,B) 14*67e74705SXin Li #define A8(A, B) A7(A,B) A7(A,B) A7(A,B) A7(A,B) A7(A,B) A7(A,B) 15*67e74705SXin Li 16*67e74705SXin Li A8(a, b) 17*67e74705SXin Li 18