src/cpu/x86/vm/templateTable_x86_32.cpp

changeset 6059
ea79ab313e98
parent 5914
d13d7aba8c12
child 6064
42790b7e4d48
     1.1 --- a/src/cpu/x86/vm/templateTable_x86_32.cpp	Mon Oct 28 21:41:48 2013 +0400
     1.2 +++ b/src/cpu/x86/vm/templateTable_x86_32.cpp	Wed Oct 30 15:35:25 2013 +0100
     1.3 @@ -558,7 +558,7 @@
     1.4  
     1.5  
     1.6  void TemplateTable::locals_index_wide(Register reg) {
     1.7 -  __ movl(reg, at_bcp(2));
     1.8 +  __ load_unsigned_short(reg, at_bcp(2));
     1.9    __ bswapl(reg);
    1.10    __ shrl(reg, 16);
    1.11    __ negptr(reg);
    1.12 @@ -1552,7 +1552,11 @@
    1.13                                InvocationCounter::counter_offset();
    1.14  
    1.15    // Load up EDX with the branch displacement
    1.16 -  __ movl(rdx, at_bcp(1));
    1.17 +  if (is_wide) {
    1.18 +    __ movl(rdx, at_bcp(1));
    1.19 +  } else {
    1.20 +    __ load_signed_short(rdx, at_bcp(1));
    1.21 +  }
    1.22    __ bswapl(rdx);
    1.23    if (!is_wide) __ sarl(rdx, 16);
    1.24    LP64_ONLY(__ movslq(rdx, rdx));

mercurial