On Fri, Apr 25, 2014 at 9:36 PM, chen <[email protected]> wrote: > At 2014-04-25 22:41:12,"Steve Borho" <[email protected]> wrote: > >>On Thu, Apr 24, 2014 at 10:02 PM, Min Chen <[email protected]> wrote: >>> # HG changeset patch >>> # User Min Chen <[email protected]> >>> # Date 1398394872 -28800 >>> # Node ID 9505724b11bc944eaaefd35d396f92f4c2c3f88f >>> # Parent c630b0b393eec3a2e2bedf137fba0d56764672ef >>> testbench: support float ret value >>> >>> diff -r c630b0b393ee -r 9505724b11bc source/test/checkasm-a.asm >>> --- a/source/test/checkasm-a.asm Thu Apr 24 15:59:05 2014 -0500 >>> +++ b/source/test/checkasm-a.asm Fri Apr 25 11:01:12 2014 +0800 >>> @@ -87,6 +87,7 @@ >>> >>> ;----------------------------------------------------------------------------- >>> ; intptr_t x265_checkasm_call( intptr_t (*func)(), int *ok, ... ) >>> >>> ;----------------------------------------------------------------------------- >>> +cglobal checkasm_call_float >>> INIT_XMM >>> cglobal checkasm_call, 2,15,16,max_args*8+8 >>> mov r6, r0 >>> @@ -170,6 +171,7 @@ >>> >>> ;----------------------------------------------------------------------------- >>> ; intptr_t x264_checkasm_call( intptr_t (*func)(), int *ok, ... ) >>> >>> ;----------------------------------------------------------------------------- >>> +cglobal checkasm_call_float >>> cglobal checkasm_call, 1,7 >>> mov r3, n3 >>> mov r4, n4 >>> diff -r c630b0b393ee -r 9505724b11bc source/test/pixelharness.cpp >>> --- a/source/test/pixelharness.cpp Thu Apr 24 15:59:05 2014 -0500 >>> +++ b/source/test/pixelharness.cpp Fri Apr 25 11:01:12 2014 +0800 >>> @@ -915,7 +915,7 @@ >>> >>> int width = (rand() % 4) + 1; // range[1-4] >>> float cres = ref(sum0, sum1, width); >>> - float vres = (float)checked(opt, sum0, sum1, width); >>> + float vres = (float)checked_float(opt, sum0, sum1, width); >>> if (fabs(vres - cres) > 0.00001) >>> return false; >>> >>> diff -r c630b0b393ee -r 9505724b11bc source/test/testharness.h >>> --- a/source/test/testharness.h Thu Apr 24 15:59:05 2014 -0500 >>> +++ b/source/test/testharness.h Fri Apr 25 11:01:12 2014 +0800 >>> @@ -121,6 +121,7 @@ >>> /* detect when callee-saved regs aren't saved >>> * needs an explicit asm check because it only sometimes crashes in >>> normal use. */ >>> intptr_t x265_checkasm_call(intptr_t (*func)(), int *ok, ...); >>> +float x265_checkasm_call_float(intptr_t (*func)(), int *ok, ...); >> >>I suppose it might be a bit pedantic, but shouldn't the argument >>funcdef return a float instead of an intptr_t? >> > the ABI problem, intptr_t store in rax, and float in XMM0, so I made two > version
I was speaking of the function cast of the first argument passed to x265_checkasm_call_float() I changed "intptr_t (*func)()" to "float (*func)()" and it worked fine, so I pushed it that way, more informative. -- Steve Borho _______________________________________________ x265-devel mailing list [email protected] https://mailman.videolan.org/listinfo/x265-devel
