Mercurial > hg > graal-compiler
diff src/gpu/hsail/vm/hsailKernelArguments.hpp @ 12783:89fbf495e589
HSAIL: fix some assert logic in the argument-gathering code that shows up in non-product builds
Contributed-by: Tom Deneau <tom.deneau@amd.com>
Summary:
* computes parameter_count based on signature and uses that and parameter_index (set by the SignatureIterator) to tell if we are on the last parameter, which requires special handling whether it is an int or an object.
* if signature says last parameter is an Object, checks that the real passed in parameter is an Object Array, but for non last-parameters, lets objects go thru.
* if signature says last parameter is an int, nothing is pushed (no change to this logic)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 20 Nov 2013 01:11:10 +0100 |
parents | f1a55428a8d7 |
children | 51584f76462d |
line wrap: on
line diff
--- a/src/gpu/hsail/vm/hsailKernelArguments.hpp Tue Nov 19 17:44:26 2013 +0100 +++ b/src/gpu/hsail/vm/hsailKernelArguments.hpp Wed Nov 20 01:11:10 2013 +0100 @@ -42,6 +42,8 @@ int _index; // Kernel to push into address _kernel; + // number of parameters in the signature + int _parameter_count; bool _is_static; @@ -55,8 +57,10 @@ _args = args; _kernel = kernel; _is_static = is_static; - + _length = args->length(); + _parameter_count = ArgumentCount(signature).size(); + if (TraceGPUInteraction) { tty->print_cr("[HSAIL] sig:%s args length=%d", signature->as_C_string(), _length); }