Mercurial > hg > truffle
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; } };