comparison src/share/vm/graal/graalCompilerToGPU.cpp @ 12743:f1a55428a8d7

more HSAIL support in the C++ layer for executing HSAIL code on the simulator Contributed-by: Eric Caspole <eric.caspole@amd.com>
author Doug Simon <doug.simon@oracle.com>
date Sun, 10 Nov 2013 13:18:09 +0100
parents 1a7e7011a341
children ca10e53c03ab
comparison
equal deleted inserted replaced
12742:40924dbc623b 12743:f1a55428a8d7
115 break; 115 break;
116 } 116 }
117 } 117 }
118 return JNIHandles::make_local(o); 118 return JNIHandles::make_local(o);
119 } 119 }
120
121 C2V_END 120 C2V_END
122 121
123 C2V_VMENTRY(jobject, executeParallelMethodVarargs, (JNIEnv *env, 122 C2V_VMENTRY(jobject, executeParallelMethodVarargs, (JNIEnv *env,
124 jobject, 123 jobject,
125 jint dimX, jint dimY, jint dimZ, 124 jint dimX, jint dimY, jint dimZ,
137 Symbol* signature = mh->signature(); 136 Symbol* signature = mh->signature();
138 137
139 // start value is the kernel 138 // start value is the kernel
140 jlong startValue = HotSpotInstalledCode::codeStart(hotspotInstalledCode); 139 jlong startValue = HotSpotInstalledCode::codeStart(hotspotInstalledCode);
141 140
141 if (UseHSAILSimulator) {
142 gpu::execute_kernel_void_1d((address)startValue, dimX, args, mh);
143 return NULL;
144 }
145
142 PTXKernelArguments ptxka(signature, (arrayOop) JNIHandles::resolve(args), mh->is_static()); 146 PTXKernelArguments ptxka(signature, (arrayOop) JNIHandles::resolve(args), mh->is_static());
143 JavaValue result(ptxka.get_ret_type()); 147 JavaValue result(ptxka.get_ret_type());
144 if (!gpu::execute_warp(dimX, dimY, dimZ, (address)startValue, ptxka, result)) { 148 if (!gpu::execute_warp(dimX, dimY, dimZ, (address) startValue, ptxka, result)) {
145 return NULL; 149 return NULL;
146 } 150 }
147 151
148 if (ptxka.get_ret_type() == T_VOID) { 152 if (ptxka.get_ret_type() == T_VOID) {
149 return NULL; 153 return NULL;
167 break; 171 break;
168 } 172 }
169 } 173 }
170 return JNIHandles::make_local(o); 174 return JNIHandles::make_local(o);
171 } 175 }
172
173 C2V_END 176 C2V_END
174 177
175 C2V_VMENTRY(jboolean, deviceInit, (JNIEnv *env, jobject)) 178 C2V_VMENTRY(jboolean, deviceInit, (JNIEnv *env, jobject))
176 if (gpu::is_available() == false || gpu::has_gpu_linkage() == false) { 179 if (gpu::is_available() == false || gpu::has_gpu_linkage() == false) {
177 tty->print_cr("deviceInit - not available / no linkage"); 180 tty->print_cr("deviceInit - not available / no linkage");