Advertisement
Guest User

step2.py

a guest
Dec 19th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.23 KB | None | 0 0
  1. import sys
  2.  
  3. def write_prepare(f):
  4.     f.write("#include <stdio.h>\n#include <stdlib.h>\n#include <time.h>\n#include <stdint.h>\n\n")
  5.     f.write("union ticks {\n")
  6.     f.write("\tuint64_t t64;\n")
  7.     f.write("\tstruct s32{\n")
  8.     f.write("\t\tuint32_t th,tl;\n")
  9.     f.write("\t} t32;\n")
  10.     f.write("};\n\n")
  11.  
  12.  
  13. def write_main(f,L):
  14.     f.write("void main() {\n")
  15.     f.write("\tunion ticks start, end;\n")
  16.     f.write("\tint long unsigned i, liter = 10000;\n")
  17.     f.write("\tint a = 1;\n")
  18.     f.write("\tfor (i = 0; i < liter; ++i){\n")
  19.     for i in range(2*(L-1)):
  20.         f.write("\t\tif (i < 0) a = 1;\n")
  21.     f.write("\t\t__asm__(\"rdtsc\\n\\t\":\"=a\"(start.t32.th),\"=d\"(start.t32.tl));\n")
  22.     f.write("\t\tif ((i % ("+str(L)+"-1))==0) a=0;\n")
  23.     f.write("\t\t__asm__(\"rdtsc\\n\\t\":\"=a\"(end.t32.th),\"=d\"(end.t32.tl));\n")
  24.     #f.write("\t\tif ((i % ("+str(L)+"-1))==0)\n")
  25.     f.write("\tprintf(\"%u %lu\\n\", i, end.t64-start.t64);\n")
  26.     f.write("\t}\n")
  27.     f.write("}")
  28.  
  29. def main():
  30.     if (len(sys.argv)!=2):
  31.         print("Invalid number of arguments\n")
  32.         return
  33.  
  34.     f = open("step2.c", "w")
  35.     write_prepare(f)
  36.     write_main(f, int(sys.argv[1]))
  37.  
  38. if __name__ == "__main__":
  39.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement