Mercurial > hg > truffle
comparison src/share/vm/prims/methodHandles.hpp @ 3943:393f4b789fd0
7077806: ARM: java.lang.InternalError: bound subword value does not fit into the subword type
Summary: shared fix necessary for ARM/PPC
Reviewed-by: twisti, roland
author | bdelsart |
---|---|
date | Wed, 14 Sep 2011 16:28:39 +0200 |
parents | c26de9aef2ed |
children | 15d394228cfa |
comparison
equal
deleted
inserted
replaced
3942:10ee2b297ccd | 3943:393f4b789fd0 |
---|---|
513 if (dest == T_SHORT) return (BitsPerInt - BitsPerShort) | CONV_VMINFO_SIGN_FLAG; | 513 if (dest == T_SHORT) return (BitsPerInt - BitsPerShort) | CONV_VMINFO_SIGN_FLAG; |
514 return 0; // case T_INT | 514 return 0; // case T_INT |
515 } | 515 } |
516 // Here is the transformation the i2i adapter must perform: | 516 // Here is the transformation the i2i adapter must perform: |
517 static int truncate_subword_from_vminfo(jint value, int vminfo) { | 517 static int truncate_subword_from_vminfo(jint value, int vminfo) { |
518 jint tem = value << vminfo; | 518 int shift = vminfo & ~CONV_VMINFO_SIGN_FLAG; |
519 jint tem = value << shift; | |
519 if ((vminfo & CONV_VMINFO_SIGN_FLAG) != 0) { | 520 if ((vminfo & CONV_VMINFO_SIGN_FLAG) != 0) { |
520 return (jint)tem >> vminfo; | 521 return (jint)tem >> shift; |
521 } else { | 522 } else { |
522 return (juint)tem >> vminfo; | 523 return (juint)tem >> shift; |
523 } | 524 } |
524 } | 525 } |
525 | 526 |
526 static inline address from_compiled_entry(EntryKind ek); | 527 static inline address from_compiled_entry(EntryKind ek); |
527 static inline address from_interpreted_entry(EntryKind ek); | 528 static inline address from_interpreted_entry(EntryKind ek); |