Mercurial > hg > truffle
comparison src/gpu/hsail/vm/gpu_hsail_Frame.hpp @ 16076:06eedda53e14
HSAIL: add support to allocate new TLAB from GPU
Contributed-by: Tom Deneau <tom.deneau@amd.com>
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Tue, 10 Jun 2014 22:36:26 +0200 |
parents | 9d456ffc6120 |
children | e9998e2be7f5 |
comparison
equal
deleted
inserted
replaced
16074:b6ab7e7fa0a5 | 16076:06eedda53e14 |
---|---|
20 * or visit www.oracle.com if you need additional information or have any | 20 * or visit www.oracle.com if you need additional information or have any |
21 * questions. | 21 * questions. |
22 * | 22 * |
23 */ | 23 */ |
24 | 24 |
25 #ifndef GPU_HSAIL_FRAME_HPP | 25 #ifndef GPU_HSAIL_VM_GPU_HSAIL_FRAME_HPP |
26 #define GPU_HSAIL_FRAME_HPP | 26 #define GPU_HSAIL_VM_GPU_HSAIL_FRAME_HPP |
27 | 27 |
28 #include "graal/graalEnv.hpp" | 28 #include "graal/graalEnv.hpp" |
29 #include "code/debugInfo.hpp" | 29 #include "code/debugInfo.hpp" |
30 #include "code/location.hpp" | 30 #include "code/location.hpp" |
31 | 31 |
41 // Accessors | 41 // Accessors |
42 jint pc_offset() { return _pc_offset; } | 42 jint pc_offset() { return _pc_offset; } |
43 jint num_s_regs() {return _num_s_regs; } | 43 jint num_s_regs() {return _num_s_regs; } |
44 jint num_d_regs() {return _num_d_regs; } | 44 jint num_d_regs() {return _num_d_regs; } |
45 jint num_stack_slots() {return _num_stack_slots; } | 45 jint num_stack_slots() {return _num_stack_slots; } |
46 jbyte * data_start() {return (jbyte *) this + sizeof(*this); } | 46 jbyte* data_start() {return (jbyte*) this + sizeof(*this); } |
47 jlong get_d_reg(int idx) { | 47 jlong get_d_reg(int idx) { |
48 int ofst = num_s_regs() * 4 + idx * 8; | 48 int ofst = num_s_regs() * 4 + idx * 8; |
49 return(*(jlong *) (data_start() + ofst)); | 49 return(*(jlong*) (data_start() + ofst)); |
50 } | 50 } |
51 jint get_s_reg(int idx) { | 51 jint get_s_reg(int idx) { |
52 int ofst = idx * 4; | 52 int ofst = idx * 4; |
53 return(*(jint *) (data_start() + ofst)); | 53 return(*(jint*) (data_start() + ofst)); |
54 } | 54 } |
55 void put_d_reg(int idx, jlong val) { | 55 void put_d_reg(int idx, jlong val) { |
56 int ofst = num_s_regs() * 4 + idx * 8; | 56 int ofst = num_s_regs() * 4 + idx * 8; |
57 (*(jlong *) (data_start() + ofst)) = val; | 57 (*(jlong*) (data_start() + ofst)) = val; |
58 } | 58 } |
59 jint get_stackslot32(int stackOffset) { | 59 jint get_stackslot32(int stackOffset) { |
60 int ofst = num_s_regs() * 4 + num_d_regs() * 8 + stackOffset; | 60 int ofst = num_s_regs() * 4 + num_d_regs() * 8 + stackOffset; |
61 return(*(jint *) (data_start() + ofst)); | 61 return(*(jint*) (data_start() + ofst)); |
62 } | 62 } |
63 jlong get_stackslot64(int stackOffset) { | 63 jlong get_stackslot64(int stackOffset) { |
64 int ofst = num_s_regs() * 4 + num_d_regs() * 8 + stackOffset; | 64 int ofst = num_s_regs() * 4 + num_d_regs() * 8 + stackOffset; |
65 return(*(jlong *) (data_start() + ofst)); | 65 return(*(jlong*) (data_start() + ofst)); |
66 } | 66 } |
67 void put_stackslot64(int stackOffset, jlong val) { | 67 void put_stackslot64(int stackOffset, jlong val) { |
68 int ofst = num_s_regs() * 4 + num_d_regs() * 8 + stackOffset; | 68 int ofst = num_s_regs() * 4 + num_d_regs() * 8 + stackOffset; |
69 (*(jlong *) (data_start() + ofst)) = val; | 69 (*(jlong*) (data_start() + ofst)) = val; |
70 } | 70 } |
71 }; | 71 }; |
72 | 72 |
73 #endif // GPU_HSAIL_FRAME_HPP | 73 #endif // GPU_HSAIL_VM_GPU_HSAIL_FRAME_HPP |