Advertisement
Guest User

step3.py

a guest
Dec 19th, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.31 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,L1,L2):
  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,b,c;\n")
  18.     f.write("\tfor (i = 0; i < liter; ++i){\n")
  19.     f.write("\t\tif ((i % "+L1+")==0)a=1;\n")
  20.     f.write("\t\telse a=0;\n")
  21.     f.write("\t\tif ((i % "+L2+")==0)b=1;\n")
  22.     f.write("\t\telse b=0;\n")
  23.     f.write("\t\t__asm__(\"rdtsc\\n\\t\":\"=a\"(start.t32.th),\"=d\"(start.t32.tl));\n")
  24.     f.write("\t\tif ((a*b)==1) c=1;")
  25.     f.write("\t\t__asm__(\"rdtsc\\n\\t\":\"=a\"(end.t32.th),\"=d\"(end.t32.tl));\n")
  26.     #f.write("\t\tif ((i % ("+str(L)+"-1))==0)\n")
  27.     f.write("\tprintf(\"%u %lu\\n\", i, end.t64-start.t64);\n")
  28.     f.write("\t}\n")
  29.     f.write("}")
  30.  
  31. def main():
  32.     if (len(sys.argv)!=3):
  33.         print("Invalid number of arguments\n")
  34.         return
  35.  
  36.     f = open("step3.c", "w")
  37.     write_prepare(f)
  38.     write_main(f, sys.argv[1], sys.argv[2])
  39.  
  40. if __name__ == "__main__":
  41.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement