Skip to content

Instantly share code, notes, and snippets.

@rdm
Created July 14, 2015 11:19
Show Gist options
  • Save rdm/52d851f5f1cf15641950 to your computer and use it in GitHub Desktop.
Save rdm/52d851f5f1cf15641950 to your computer and use it in GitHub Desktop.
interpreter calling a function in a dynamically linked shared object whose argument types (and entry point name) are specified at runtime
; switch(cnt){ case 0: r = fp(); break; case 1: r = fp(d[0]); break; case 2: r = fp(d[0], d[1]); break; case 3: r = fp(d[0], d[1], d[2]); break; case 4: r = fp(d[0], d[1], d[2], d[3]); break; case 5: r = fp(d[0], d[1], d[2], d[3], d[4]); break; case 6: r = fp(d[0], d[1], d[2], d[3], d[4], d[5]); break; case 7: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6]); break; case 8: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7]); break; case 9: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8]); break; case 10: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9]); break; case 11: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10]); break; case 12: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10],d[11]); break; case 13: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10],d[11],d[12]); break; case 14: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10],d[11],d[12],d[13]); break; case 15: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10],d[11],d[12],d[13],d[14]); break; case 16: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10],d[11],d[12],d[13],d[14],d[15]); break; case 17: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10],d[11],d[12],d[13],d[14],d[15], d[16]); break; case 18: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10],d[11],d[12],d[13],d[14],d[15], d[16],d[17]); break; case 19: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10],d[11],d[12],d[13],d[14],d[15], d[16],d[17],d[18]); break; case 20: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10],d[11],d[12],d[13],d[14],d[15], d[16],d[17],d[18],d[19]); break; case 21: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10],d[11],d[12],d[13],d[14],d[15], d[16],d[17],d[18],d[19],d[20]); break; case 22: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10],d[11],d[12],d[13],d[14],d[15], d[16],d[17],d[18],d[19],d[20],d[21]); break; case 23: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10],d[11],d[12],d[13],d[14],d[15], d[16],d[17],d[18],d[19],d[20],d[21],d[22]); break; case 24: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10],d[11],d[12],d[13],d[14],d[15], d[16],d[17],d[18],d[19],d[20],d[21],d[22],d[23]); break; case 25: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10],d[11],d[12],d[13],d[14],d[15], d[16],d[17],d[18],d[19],d[20],d[21],d[22],d[23], d[24]);break; case 26: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10],d[11],d[12],d[13],d[14],d[15], d[16],d[17],d[18],d[19],d[20],d[21],d[22],d[23], d[24],d[25]);break; case 27: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10],d[11],d[12],d[13],d[14],d[15], d[16],d[17],d[18],d[19],d[20],d[21],d[22],d[23], d[24],d[25],d[26]);break; case 28: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10],d[11],d[12],d[13],d[14],d[15], d[16],d[17],d[18],d[19],d[20],d[21],d[22],d[23], d[24],d[25],d[26],d[27]);break; case 29: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10],d[11],d[12],d[13],d[14],d[15], d[16],d[17],d[18],d[19],d[20],d[21],d[22],d[23], d[24],d[25],d[26],d[27],d[28]);break; case 30: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10],d[11],d[12],d[13],d[14],d[15], d[16],d[17],d[18],d[19],d[20],d[21],d[22],d[23], d[24],d[25],d[26],d[27],d[28],d[29]);break; case 31: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10],d[11],d[12],d[13],d[14],d[15], d[16],d[17],d[18],d[19],d[20],d[21],d[22],d[23], d[24],d[25],d[26],d[27],d[28],d[29],d[30]);break; case 32: r = fp(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10],d[11],d[12],d[13],d[14],d[15], d[16],d[17],d[18],d[19],d[20],d[21],d[22],d[23], d[24],d[25],d[26],d[27],d[28],d[29],d[30],d[31]);break; };
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment