29 #include "asm/assembler.hpp"
30 #include "memory/allocation.hpp"
31 #include "runtime/icache.hpp"
32 #include "runtime/os.hpp"
33
34 // We have interfaces for the following instructions:
35 // - NativeInstruction
36 // - - NativeCall
37 // - - NativeMovConstReg
38 // - - NativeMovConstRegPatching
39 // - - NativeJump
40 // - - NativeIllegalOpCode
41 // - - NativeReturn
42 // - - NativeReturnX (return with argument)
43 // - - NativePushConst
44 // - - NativeTstRegMem
45
46 // The base class for different kinds of native instruction abstractions.
47 // Provides the primitive operations to manipulate code relative to this.
48
49 class NativeInstruction VALUE_OBJ_CLASS_SPEC {
50 public:
51 bool is_jump() {
52 ShouldNotCallThis();
53 return false;
54 }
55
56 bool is_safepoint_poll() {
57 ShouldNotCallThis();
58 return false;
59 }
60 };
61
62 inline NativeInstruction* nativeInstruction_at(address address) {
63 ShouldNotCallThis();
64 return NULL;
65 }
66
67 class NativeCall : public NativeInstruction {
68 public:
69 enum zero_specific_constants {
|
29 #include "asm/assembler.hpp"
30 #include "memory/allocation.hpp"
31 #include "runtime/icache.hpp"
32 #include "runtime/os.hpp"
33
34 // We have interfaces for the following instructions:
35 // - NativeInstruction
36 // - - NativeCall
37 // - - NativeMovConstReg
38 // - - NativeMovConstRegPatching
39 // - - NativeJump
40 // - - NativeIllegalOpCode
41 // - - NativeReturn
42 // - - NativeReturnX (return with argument)
43 // - - NativePushConst
44 // - - NativeTstRegMem
45
46 // The base class for different kinds of native instruction abstractions.
47 // Provides the primitive operations to manipulate code relative to this.
48
49 class NativeInstruction {
50 public:
51 bool is_jump() {
52 ShouldNotCallThis();
53 return false;
54 }
55
56 bool is_safepoint_poll() {
57 ShouldNotCallThis();
58 return false;
59 }
60 };
61
62 inline NativeInstruction* nativeInstruction_at(address address) {
63 ShouldNotCallThis();
64 return NULL;
65 }
66
67 class NativeCall : public NativeInstruction {
68 public:
69 enum zero_specific_constants {
|