< prev index next >

src/hotspot/cpu/aarch64/aarch64.ad

Print this page




16238 instruct string_compress(iRegP_R2 src, iRegP_R1 dst, iRegI_R3 len,
16239                          vRegD_V0 tmp1, vRegD_V1 tmp2,
16240                          vRegD_V2 tmp3, vRegD_V3 tmp4,
16241                          iRegI_R0 result, rFlagsReg cr)
16242 %{
16243   match(Set result (StrCompressedCopy src (Binary dst len)));
16244   effect(TEMP tmp1, TEMP tmp2, TEMP tmp3, TEMP tmp4, USE_KILL src, USE_KILL dst, USE_KILL len, KILL cr);
16245 
16246   format %{ "String Compress $src,$dst -> $result    // KILL R1, R2, R3, R4" %}
16247   ins_encode %{
16248     __ char_array_compress($src$$Register, $dst$$Register, $len$$Register,
16249                            $tmp1$$FloatRegister, $tmp2$$FloatRegister,
16250                            $tmp3$$FloatRegister, $tmp4$$FloatRegister,
16251                            $result$$Register);
16252   %}
16253   ins_pipe( pipe_slow );
16254 %}
16255 
16256 // fast byte[] to char[] inflation
16257 instruct string_inflate(Universe dummy, iRegP_R0 src, iRegP_R1 dst, iRegI_R2 len,
16258                         vRegD tmp1, vRegD tmp2, vRegD tmp3, iRegP_R3 tmp4, rFlagsReg cr)
16259 %{
16260   match(Set dummy (StrInflatedCopy src (Binary dst len)));
16261   effect(TEMP tmp1, TEMP tmp2, TEMP tmp3, TEMP tmp4, USE_KILL src, USE_KILL dst, USE_KILL len, KILL cr);
16262 
16263   format %{ "String Inflate $src,$dst    // KILL $tmp1, $tmp2" %}
16264   ins_encode %{
16265     __ byte_array_inflate($src$$Register, $dst$$Register, $len$$Register,
16266                           $tmp1$$FloatRegister, $tmp2$$FloatRegister, $tmp3$$FloatRegister, $tmp4$$Register);
16267   %}
16268   ins_pipe(pipe_class_memory);
16269 %}
16270 
16271 // encode char[] to byte[] in ISO_8859_1
16272 instruct encode_iso_array(iRegP_R2 src, iRegP_R1 dst, iRegI_R3 len,
16273                           vRegD_V0 Vtmp1, vRegD_V1 Vtmp2,
16274                           vRegD_V2 Vtmp3, vRegD_V3 Vtmp4,
16275                           iRegI_R0 result, rFlagsReg cr)
16276 %{
16277   match(Set result (EncodeISOArray src (Binary dst len)));
16278   effect(USE_KILL src, USE_KILL dst, USE_KILL len,




16238 instruct string_compress(iRegP_R2 src, iRegP_R1 dst, iRegI_R3 len,
16239                          vRegD_V0 tmp1, vRegD_V1 tmp2,
16240                          vRegD_V2 tmp3, vRegD_V3 tmp4,
16241                          iRegI_R0 result, rFlagsReg cr)
16242 %{
16243   match(Set result (StrCompressedCopy src (Binary dst len)));
16244   effect(TEMP tmp1, TEMP tmp2, TEMP tmp3, TEMP tmp4, USE_KILL src, USE_KILL dst, USE_KILL len, KILL cr);
16245 
16246   format %{ "String Compress $src,$dst -> $result    // KILL R1, R2, R3, R4" %}
16247   ins_encode %{
16248     __ char_array_compress($src$$Register, $dst$$Register, $len$$Register,
16249                            $tmp1$$FloatRegister, $tmp2$$FloatRegister,
16250                            $tmp3$$FloatRegister, $tmp4$$FloatRegister,
16251                            $result$$Register);
16252   %}
16253   ins_pipe( pipe_slow );
16254 %}
16255 
16256 // fast byte[] to char[] inflation
16257 instruct string_inflate(Universe dummy, iRegP_R0 src, iRegP_R1 dst, iRegI_R2 len,
16258                         vRegD_V0 tmp1, vRegD_V1 tmp2, vRegD_V2 tmp3, iRegP_R3 tmp4, rFlagsReg cr)
16259 %{
16260   match(Set dummy (StrInflatedCopy src (Binary dst len)));
16261   effect(TEMP tmp1, TEMP tmp2, TEMP tmp3, TEMP tmp4, USE_KILL src, USE_KILL dst, USE_KILL len, KILL cr);
16262 
16263   format %{ "String Inflate $src,$dst    // KILL $tmp1, $tmp2" %}
16264   ins_encode %{
16265     __ byte_array_inflate($src$$Register, $dst$$Register, $len$$Register,
16266                           $tmp1$$FloatRegister, $tmp2$$FloatRegister, $tmp3$$FloatRegister, $tmp4$$Register);
16267   %}
16268   ins_pipe(pipe_class_memory);
16269 %}
16270 
16271 // encode char[] to byte[] in ISO_8859_1
16272 instruct encode_iso_array(iRegP_R2 src, iRegP_R1 dst, iRegI_R3 len,
16273                           vRegD_V0 Vtmp1, vRegD_V1 Vtmp2,
16274                           vRegD_V2 Vtmp3, vRegD_V3 Vtmp4,
16275                           iRegI_R0 result, rFlagsReg cr)
16276 %{
16277   match(Set result (EncodeISOArray src (Binary dst len)));
16278   effect(USE_KILL src, USE_KILL dst, USE_KILL len,


< prev index next >