equal
deleted
inserted
replaced
26 #define SHARE_VM_C1_C1_LIRGENERATOR_HPP |
26 #define SHARE_VM_C1_C1_LIRGENERATOR_HPP |
27 |
27 |
28 #include "c1/c1_Instruction.hpp" |
28 #include "c1/c1_Instruction.hpp" |
29 #include "c1/c1_LIR.hpp" |
29 #include "c1/c1_LIR.hpp" |
30 #include "ci/ciMethodData.hpp" |
30 #include "ci/ciMethodData.hpp" |
|
31 #include "utilities/macros.hpp" |
31 #include "utilities/sizes.hpp" |
32 #include "utilities/sizes.hpp" |
32 |
33 |
33 // The classes responsible for code emission and register allocation |
34 // The classes responsible for code emission and register allocation |
34 |
35 |
35 |
36 |
358 |
359 |
359 // the helper for generate_address |
360 // the helper for generate_address |
360 void add_large_constant(LIR_Opr src, int c, LIR_Opr dest); |
361 void add_large_constant(LIR_Opr src, int c, LIR_Opr dest); |
361 |
362 |
362 // machine preferences and characteristics |
363 // machine preferences and characteristics |
363 bool can_inline_as_constant(Value i) const; |
364 bool can_inline_as_constant(Value i S390_ONLY(COMMA int bits = 20)) const; |
364 bool can_inline_as_constant(LIR_Const* c) const; |
365 bool can_inline_as_constant(LIR_Const* c) const; |
365 bool can_store_as_constant(Value i, BasicType type) const; |
366 bool can_store_as_constant(Value i, BasicType type) const; |
366 |
367 |
367 LIR_Opr safepoint_poll_register(); |
368 LIR_Opr safepoint_poll_register(); |
368 |
369 |
495 static LIR_Opr exceptionOopOpr(); |
496 static LIR_Opr exceptionOopOpr(); |
496 static LIR_Opr exceptionPcOpr(); |
497 static LIR_Opr exceptionPcOpr(); |
497 static LIR_Opr divInOpr(); |
498 static LIR_Opr divInOpr(); |
498 static LIR_Opr divOutOpr(); |
499 static LIR_Opr divOutOpr(); |
499 static LIR_Opr remOutOpr(); |
500 static LIR_Opr remOutOpr(); |
|
501 #ifdef S390 |
|
502 // On S390 we can do ldiv, lrem without RT call. |
|
503 static LIR_Opr ldivInOpr(); |
|
504 static LIR_Opr ldivOutOpr(); |
|
505 static LIR_Opr lremOutOpr(); |
|
506 #endif |
500 static LIR_Opr shiftCountOpr(); |
507 static LIR_Opr shiftCountOpr(); |
501 LIR_Opr syncLockOpr(); |
508 LIR_Opr syncLockOpr(); |
502 LIR_Opr syncTempOpr(); |
509 LIR_Opr syncTempOpr(); |
503 LIR_Opr atomicLockOpr(); |
510 LIR_Opr atomicLockOpr(); |
504 |
511 |
620 |
627 |
621 void set_result(LIR_Opr opr); |
628 void set_result(LIR_Opr opr); |
622 |
629 |
623 void load_item(); |
630 void load_item(); |
624 void load_byte_item(); |
631 void load_byte_item(); |
625 void load_nonconstant(); |
632 void load_nonconstant(S390_ONLY(int bits = 20)); |
626 // load any values which can't be expressed as part of a single store instruction |
633 // load any values which can't be expressed as part of a single store instruction |
627 void load_for_store(BasicType store_type); |
634 void load_for_store(BasicType store_type); |
628 void load_item_force(LIR_Opr reg); |
635 void load_item_force(LIR_Opr reg); |
629 |
636 |
630 void dont_load_item() { |
637 void dont_load_item() { |