changeset 314:3a26e9e4be71

6744422: incorrect handling of -1 in set_jump_destination Reviewed-by: rasbold
author never
date Wed, 03 Sep 2008 14:57:00 -0700
parents a10808f5a4b5
children 5fa96a5a7e76 cdbee661c7da
files src/cpu/x86/vm/nativeInst_x86.hpp
diffstat 1 files changed, 3 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/cpu/x86/vm/nativeInst_x86.hpp	Tue Sep 02 08:30:41 2008 -0700
+++ b/src/cpu/x86/vm/nativeInst_x86.hpp	Wed Sep 03 14:57:00 2008 -0700
@@ -391,6 +391,9 @@
 
   void  set_jump_destination(address dest)  {
     intptr_t val = dest - next_instruction_address();
+    if (dest == (address) -1) {
+      val = -5; // jump to self
+    }
 #ifdef AMD64
     assert((labs(val)  & 0xFFFFFFFF00000000) == 0 || dest == (address)-1, "must be 32bit offset or -1");
 #endif // AMD64