src/cpu/x86/vm/x86_32.ad

changeset 4479
b30b3c2a0cf2
parent 4410
00af3a3a8df4
child 4873
e961c11b85fe
     1.1 --- a/src/cpu/x86/vm/x86_32.ad	Tue Jan 22 11:31:25 2013 -0800
     1.2 +++ b/src/cpu/x86/vm/x86_32.ad	Tue Jan 22 15:34:16 2013 -0800
     1.3 @@ -11687,6 +11687,23 @@
     1.4    ins_pipe( pipe_slow );
     1.5  %}
     1.6  
     1.7 +// encode char[] to byte[] in ISO_8859_1
     1.8 +instruct encode_iso_array(eSIRegP src, eDIRegP dst, eDXRegI len,
     1.9 +                          regD tmp1, regD tmp2, regD tmp3, regD tmp4,
    1.10 +                          eCXRegI tmp5, eAXRegI result, eFlagsReg cr) %{
    1.11 +  match(Set result (EncodeISOArray src (Binary dst len)));
    1.12 +  effect(TEMP tmp1, TEMP tmp2, TEMP tmp3, TEMP tmp4, USE_KILL src, USE_KILL dst, USE_KILL len, KILL tmp5, KILL cr);
    1.13 +
    1.14 +  format %{ "Encode array $src,$dst,$len -> $result    // KILL ECX, EDX, $tmp1, $tmp2, $tmp3, $tmp4, ESI, EDI " %}
    1.15 +  ins_encode %{
    1.16 +    __ encode_iso_array($src$$Register, $dst$$Register, $len$$Register,
    1.17 +                        $tmp1$$XMMRegister, $tmp2$$XMMRegister, $tmp3$$XMMRegister,
    1.18 +                        $tmp4$$XMMRegister, $tmp5$$Register, $result$$Register);
    1.19 +  %}
    1.20 +  ins_pipe( pipe_slow );
    1.21 +%}
    1.22 +
    1.23 +
    1.24  //----------Control Flow Instructions------------------------------------------
    1.25  // Signed compare Instructions
    1.26  instruct compI_eReg(eFlagsReg cr, rRegI op1, rRegI op2) %{

mercurial