diff src/gpu/hsail/vm/gpu_hsail_Frame.hpp @ 15545:9d456ffc6120

HSAIL: fixed Windows build
author Doug Simon <doug.simon@oracle.com>
date Wed, 07 May 2014 11:51:52 +0200
parents 217c721b1ee1
children 06eedda53e14
line wrap: on
line diff
--- a/src/gpu/hsail/vm/gpu_hsail_Frame.hpp	Wed May 07 11:44:00 2014 +0200
+++ b/src/gpu/hsail/vm/gpu_hsail_Frame.hpp	Wed May 07 11:51:52 2014 +0200
@@ -29,14 +29,13 @@
 #include "code/debugInfo.hpp"
 #include "code/location.hpp"
 
-class HSAILFrame {
+class HSAILFrame VALUE_OBJ_CLASS_SPEC {
   friend class VMStructs;
 private:
   jint  _pc_offset;  // The HSAIL "pc_offset" where the exception happens
   jbyte _num_s_regs;
   jbyte _num_d_regs;
   jshort _num_stack_slots; 
-  jbyte  _save_area[0];     // save area size can vary per kernel compilation  
 
 public:
   // Accessors
@@ -44,29 +43,30 @@
   jint num_s_regs() {return _num_s_regs; }
   jint num_d_regs() {return _num_d_regs; }
   jint num_stack_slots() {return _num_stack_slots; }
+  jbyte * data_start() {return (jbyte *) this  + sizeof(*this); }
   jlong get_d_reg(int idx) {
     int ofst = num_s_regs() * 4 + idx * 8;
-    return(*(jlong *) (_save_area + ofst));
+    return(*(jlong *) (data_start() + ofst));
   }
   jint get_s_reg(int idx) {
     int ofst = idx * 4;
-    return(*(jint *) (_save_area + ofst));
+    return(*(jint *) (data_start() + ofst));
   }
   void put_d_reg(int idx, jlong val) {
     int ofst = num_s_regs() * 4 + idx * 8;
-    (*(jlong *) (_save_area + ofst)) = val;
+    (*(jlong *) (data_start() + ofst)) = val;
   }
   jint get_stackslot32(int stackOffset) {
     int ofst = num_s_regs() * 4 + num_d_regs() * 8 + stackOffset;
-    return(*(jint *) (_save_area + ofst));
+    return(*(jint *) (data_start() + ofst));
   }
   jlong get_stackslot64(int stackOffset) {
     int ofst = num_s_regs() * 4 + num_d_regs() * 8 + stackOffset;
-    return(*(jlong *) (_save_area + ofst));
+    return(*(jlong *) (data_start() + ofst));
   }
   void put_stackslot64(int stackOffset, jlong val) {
     int ofst = num_s_regs() * 4 + num_d_regs() * 8 + stackOffset;
-    (*(jlong *) (_save_area + ofst)) = val;
+    (*(jlong *) (data_start() + ofst)) = val;
   }
 };