diff src/gpu/ptx/vm/ptxKernelArguments.hpp @ 11821:d8659ad83fcc

PTX single-threaded array store, Warp annotation
author Morris Meyer <morris.meyer@oracle.com>
date Sat, 28 Sep 2013 21:06:12 -0400
parents 91e5f927af63
children c7abc8411011
line wrap: on
line diff
--- a/src/gpu/ptx/vm/ptxKernelArguments.hpp	Fri Sep 27 19:51:01 2013 +0200
+++ b/src/gpu/ptx/vm/ptxKernelArguments.hpp	Sat Sep 28 21:06:12 2013 -0400
@@ -31,6 +31,7 @@
 #define T_BYTE_SIZE       1
 #define T_INT_BYTE_SIZE   4
 #define T_LONG_BYTE_SIZE  8
+#define T_ARRAY_BYTE_SIZE 8
 
 class PTXKernelArguments : public SignatureIterator {
 public:
@@ -46,6 +47,8 @@
   int _index;
   // Flag to indicate successful creation of kernel argument buffer
   bool _success;
+
+    bool _afterInvoocation;
   // Get next java argument
   oop next_arg(BasicType expectedType);
 
@@ -74,6 +77,17 @@
     return _bufferOffset;
   }
 
+    void reiterate() {
+        _afterInvoocation = true;
+        _bufferOffset = 0;
+        _index = 0;
+        iterate();
+    }
+
+    inline bool is_after_invocation() {
+        return _afterInvoocation;
+    }
+
   // Get the return oop value
   oop get_return_oop();
 
@@ -86,44 +100,40 @@
   void do_byte();
   void do_int();
   void do_long();
+  void do_array(int begin, int end);
+  void do_void();
 
   inline void do_bool()   {
     /* TODO : To be implemented */
-    guarantee(false, "NYI");
+    guarantee(false, "do_bool:NYI");
   }
   inline void do_char()   {
     /* TODO : To be implemented */
-    guarantee(false, "NYI");
+    guarantee(false, "do_char:NYI");
   }
   inline void do_short()  {
     /* TODO : To be implemented */
-    guarantee(false, "NYI");
+    guarantee(false, "do_short:NYI");
   }
   inline void do_float()  {
     /* TODO : To be implemented */
-    guarantee(false, "NYI");
+    guarantee(false, "do_float:NYI");
   }
   inline void do_double() {
     /* TODO : To be implemented */
-    guarantee(false, "NYI");
+    guarantee(false, "do_double:NYI");
   }
 
   inline void do_object() {
     /* TODO : To be implemented */
-    guarantee(false, "NYI");
+    guarantee(false, "do_object:NYI");
   }
+    
   inline void do_object(int begin, int end) {
     /* TODO : To be implemented */
-    guarantee(false, "NYI");
+    guarantee(false, "do_object(II):NYI");
   }
-  inline void do_array(int begin, int end)  {
-    /* TODO : To be implemented */
-    guarantee(false, "NYI");
-  }
-  inline void do_void() {
-    /* TODO : To be implemented */
-    guarantee(false, "NYI");
-  }
+
 };
 
 #endif  // KERNEL_ARGUMENTS_HPP