Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- def write_prepare(f):
- f.write("#include <stdio.h>\n#include <stdlib.h>\n#include <time.h>\n#include <stdint.h>\n\n")
- f.write("union ticks {\n")
- f.write("\tuint64_t t64;\n")
- f.write("\tstruct s32{\n")
- f.write("\t\tuint32_t th,tl;\n")
- f.write("\t} t32;\n")
- f.write("};\n\n")
- def write_main(f,L):
- f.write("void main() {\n")
- f.write("\tunion ticks start, end;\n")
- f.write("\tint long unsigned i, liter = 10000;\n")
- f.write("\tint a = 1;\n")
- f.write("\tfor (i = 0; i < liter; ++i){\n")
- for i in range(2*(L-1)):
- f.write("\t\tif (i < 0) a = 1;\n")
- f.write("\t\t__asm__(\"rdtsc\\n\\t\":\"=a\"(start.t32.th),\"=d\"(start.t32.tl));\n")
- f.write("\t\tif ((i % ("+str(L)+"-1))==0) a=0;\n")
- f.write("\t\t__asm__(\"rdtsc\\n\\t\":\"=a\"(end.t32.th),\"=d\"(end.t32.tl));\n")
- #f.write("\t\tif ((i % ("+str(L)+"-1))==0)\n")
- f.write("\tprintf(\"%u %lu\\n\", i, end.t64-start.t64);\n")
- f.write("\t}\n")
- f.write("}")
- def main():
- if (len(sys.argv)!=2):
- print("Invalid number of arguments\n")
- return
- f = open("step2.c", "w")
- write_prepare(f)
- write_main(f, int(sys.argv[1]))
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement