32 // Return true if the phase output is in the scratch emit size mode.
33 virtual bool in_scratch_emit_size() override;
34
35 void element_compare(Register r1, Register r2,
36 Register result, Register cnt,
37 Register tmp1, Register tmp2,
38 VectorRegister vr1, VectorRegister vr2,
39 VectorRegister vrs,
40 bool is_latin, Label& DONE, Assembler::LMUL lmul);
41
42 void string_compare_long_same_encoding(Register result, Register str1, Register str2,
43 const bool isLL, Register cnt1, Register cnt2,
44 Register tmp1, Register tmp2, Register tmp3,
45 const int STUB_THRESHOLD, Label *STUB, Label *SHORT_STRING, Label *DONE);
46 void string_compare_long_different_encoding(Register result, Register str1, Register str2,
47 bool isLU, Register cnt1, Register cnt2,
48 Register tmp1, Register tmp2, Register tmp3,
49 const int STUB_THRESHOLD, Label *STUB, Label *DONE);
50
51 public:
52 // Code used by cmpFastLock and cmpFastUnlock mach instructions in .ad file.
53 void fast_lock(Register object, Register box,
54 Register tmp1, Register tmp2, Register tmp3, Register tmp4);
55 void fast_unlock(Register object, Register box,
56 Register tmp1, Register tmp2, Register tmp3);
57
58 void string_compare(Register str1, Register str2,
59 Register cnt1, Register cnt2, Register result,
60 Register tmp1, Register tmp2, Register tmp3,
61 int ae);
62
63 void string_indexof_char_short(Register str1, Register cnt1,
64 Register ch, Register result,
65 bool isL);
66
67 void string_indexof_char(Register str1, Register cnt1,
68 Register ch, Register result,
69 Register tmp1, Register tmp2,
70 Register tmp3, Register tmp4,
71 bool isL);
|
32 // Return true if the phase output is in the scratch emit size mode.
33 virtual bool in_scratch_emit_size() override;
34
35 void element_compare(Register r1, Register r2,
36 Register result, Register cnt,
37 Register tmp1, Register tmp2,
38 VectorRegister vr1, VectorRegister vr2,
39 VectorRegister vrs,
40 bool is_latin, Label& DONE, Assembler::LMUL lmul);
41
42 void string_compare_long_same_encoding(Register result, Register str1, Register str2,
43 const bool isLL, Register cnt1, Register cnt2,
44 Register tmp1, Register tmp2, Register tmp3,
45 const int STUB_THRESHOLD, Label *STUB, Label *SHORT_STRING, Label *DONE);
46 void string_compare_long_different_encoding(Register result, Register str1, Register str2,
47 bool isLU, Register cnt1, Register cnt2,
48 Register tmp1, Register tmp2, Register tmp3,
49 const int STUB_THRESHOLD, Label *STUB, Label *DONE);
50
51 public:
52 void entry_barrier();
53
54 // Code used by cmpFastLock and cmpFastUnlock mach instructions in .ad file.
55 void fast_lock(Register object, Register box,
56 Register tmp1, Register tmp2, Register tmp3, Register tmp4);
57 void fast_unlock(Register object, Register box,
58 Register tmp1, Register tmp2, Register tmp3);
59
60 void string_compare(Register str1, Register str2,
61 Register cnt1, Register cnt2, Register result,
62 Register tmp1, Register tmp2, Register tmp3,
63 int ae);
64
65 void string_indexof_char_short(Register str1, Register cnt1,
66 Register ch, Register result,
67 bool isL);
68
69 void string_indexof_char(Register str1, Register cnt1,
70 Register ch, Register result,
71 Register tmp1, Register tmp2,
72 Register tmp3, Register tmp4,
73 bool isL);
|