int main(int argc, char *argv[]) { int ret = 0; int i; if( argc > 1 && !strncmp( argv[1], "--bench", 7 ) ) { #if !defined(ARCH_X86) && !defined(ARCH_X86_64) fprintf( stderr, "no --bench for your cpu until you port rdtsc\n" ); return 1; #endif do_bench = 1; if( argv[1][7] == '=' ) { bench_pattern = argv[1]+8; bench_pattern_len = strlen(bench_pattern); } argc--; argv++; } i = ( argc > 1 ) ? atoi(argv[1]) : x264_mdate(); fprintf( stderr, "x264: using random seed %u\n", i ); srand( i ); buf1 = x264_malloc( 0x3e00 + 16*BENCH_ALIGNS ); buf2 = buf1 + 0xf00; buf3 = buf2 + 0xf00; buf4 = buf3 + 0x1000; for( i=0; i<0x1e00; i++ ) buf1[i] = rand() & 0xFF; memset( buf1+0x1e00, 0, 0x2000 ); /* 16-byte alignment is guaranteed whenever it's useful, but some functions also vary in speed depending on %64 */ if( do_bench ) for( i=0; i<BENCH_ALIGNS && !ret; i++ ) { buf2 = buf1 + 0xf00; buf3 = buf2 + 0xf00; buf4 = buf3 + 0x1000; ret |= x264_stack_pagealign( check_all_flags, i*16 ); buf1 += 16; quiet = 1; fprintf( stderr, "%d/%d\r", i+1, BENCH_ALIGNS ); } else ret = check_all_flags(); if( ret ) { fprintf( stderr, "x264: at least one test has failed. Go and fix that Right Now!\n" ); return -1; } fprintf( stderr, "x264: All tests passed Yeah :)\n" ); if( do_bench ) print_bench(); return 0; }
int run_benchmarks(int i){ /* 32-byte alignment is guaranteed whenever it's useful, * but some functions also vary in speed depending on %64 */ //return x264_stack_pagealign(check_all_flags, i*32 ); check_all_flags(); }