< prev index next >

src/hotspot/cpu/s390/s390.ad

Print this page

        

*** 10265,10282 **** %} ins_pipe(pipe_class_dummy); %} // char[] to byte[] compression ! instruct string_compress(iRegP src, rarg5RegP dst, iRegI result, roddRegI len, revenRegI evenReg, iRegI tmp, flagsReg cr) %{ match(Set result (StrCompressedCopy src (Binary dst len))); ! effect(TEMP_DEF result, USE_KILL dst, USE_KILL len, TEMP evenReg, TEMP tmp, KILL cr); // R0, R1 are killed, too. ins_cost(300); format %{ "String Compress $src->$dst($len) -> $result" %} ins_encode %{ __ string_compress($result$$Register, $src$$Register, $dst$$Register, $len$$Register, ! $evenReg$$Register, $tmp$$Register); %} ins_pipe(pipe_class_dummy); %} // byte[] to char[] inflation. trot implementation is shorter, but slower than the unrolled icm(h) loop. --- 10265,10282 ---- %} ins_pipe(pipe_class_dummy); %} // char[] to byte[] compression ! instruct string_compress(iRegP src, iRegP dst, iRegI result, iRegI len, iRegI tmp, flagsReg cr) %{ match(Set result (StrCompressedCopy src (Binary dst len))); ! effect(TEMP_DEF result, TEMP tmp, KILL cr); // R0, R1 are killed, too. ins_cost(300); format %{ "String Compress $src->$dst($len) -> $result" %} ins_encode %{ __ string_compress($result$$Register, $src$$Register, $dst$$Register, $len$$Register, ! $tmp$$Register, false); %} ins_pipe(pipe_class_dummy); %} // byte[] to char[] inflation. trot implementation is shorter, but slower than the unrolled icm(h) loop.
*** 10291,10307 **** // %} // ins_pipe(pipe_class_dummy); //%} // byte[] to char[] inflation ! instruct string_inflate(Universe dummy, rarg5RegP src, iRegP dst, roddRegI len, revenRegI evenReg, iRegI tmp, flagsReg cr) %{ match(Set dummy (StrInflatedCopy src (Binary dst len))); ! effect(USE_KILL src, USE_KILL len, TEMP evenReg, TEMP tmp, KILL cr); // R0, R1 are killed, too. ins_cost(300); format %{ "String Inflate $src->$dst($len)" %} ins_encode %{ ! __ string_inflate($src$$Register, $dst$$Register, $len$$Register, $evenReg$$Register, $tmp$$Register); %} ins_pipe(pipe_class_dummy); %} // StringCoding.java intrinsics --- 10291,10319 ---- // %} // ins_pipe(pipe_class_dummy); //%} // byte[] to char[] inflation ! instruct string_inflate(Universe dummy, iRegP src, iRegP dst, iRegI len, iRegI tmp, flagsReg cr) %{ match(Set dummy (StrInflatedCopy src (Binary dst len))); ! effect(TEMP tmp, KILL cr); // R0, R1 are killed, too. ins_cost(300); format %{ "String Inflate $src->$dst($len)" %} ins_encode %{ ! __ string_inflate($src$$Register, $dst$$Register, $len$$Register, $tmp$$Register); ! %} ! ins_pipe(pipe_class_dummy); ! %} ! ! // byte[] to char[] inflation ! instruct string_inflate_const(Universe dummy, iRegP src, iRegP dst, iRegI tmp, immI len, flagsReg cr) %{ ! match(Set dummy (StrInflatedCopy src (Binary dst len))); ! effect(TEMP tmp, KILL cr); // R0, R1 are killed, too. ! ins_cost(300); ! format %{ "String Inflate (constLen) $src->$dst($len)" %} ! ins_encode %{ ! __ string_inflate_const($src$$Register, $dst$$Register, $tmp$$Register, $len$$constant); %} ins_pipe(pipe_class_dummy); %} // StringCoding.java intrinsics
*** 10316,10333 **** %} ins_pipe(pipe_class_dummy); %} // encode char[] to byte[] in ISO_8859_1 ! instruct encode_iso_array(rarg5RegP src, iRegP dst, iRegI result, roddRegI len, revenRegI evenReg, iRegI tmp, iRegI tmp2, flagsReg cr) %{ match(Set result (EncodeISOArray src (Binary dst len))); ! effect(TEMP_DEF result, USE_KILL src, USE_KILL len, TEMP evenReg, TEMP tmp, TEMP tmp2, KILL cr); // R0, R1 are killed, too. ins_cost(300); format %{ "Encode array $src->$dst($len) -> $result" %} ins_encode %{ __ string_compress($result$$Register, $src$$Register, $dst$$Register, $len$$Register, ! $evenReg$$Register, $tmp$$Register, $tmp2$$Register); %} ins_pipe(pipe_class_dummy); %} --- 10328,10345 ---- %} ins_pipe(pipe_class_dummy); %} // encode char[] to byte[] in ISO_8859_1 ! instruct encode_iso_array(iRegP src, iRegP dst, iRegI result, iRegI len, iRegI tmp, flagsReg cr) %{ match(Set result (EncodeISOArray src (Binary dst len))); ! effect(TEMP_DEF result, TEMP tmp, KILL cr); // R0, R1 are killed, too. ins_cost(300); format %{ "Encode array $src->$dst($len) -> $result" %} ins_encode %{ __ string_compress($result$$Register, $src$$Register, $dst$$Register, $len$$Register, ! $tmp$$Register, true); %} ins_pipe(pipe_class_dummy); %}
< prev index next >