harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From var...@apache.org
Subject svn commit: r521134 - in /harmony/enhanced/drlvm/trunk/vm: jitrino/src/codegenerator/ia32/ jitrino/src/jet/ port/src/lil/em64t/pim/
Date Thu, 22 Mar 2007 06:27:30 GMT
Author: varlax
Date: Wed Mar 21 23:27:29 2007
New Revision: 521134

URL: http://svn.apache.org/viewvc?view=rev&rev=521134
Log:
HARMONY-3426 [drlvm][winx64] Problem with callee save registers on Win64T

Modified:
    harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32CallingConvention.cpp
    harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32StackInfo.cpp
    harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/compiler.cpp
    harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/enc_ia32.cpp
    harmony/enhanced/drlvm/trunk/vm/port/src/lil/em64t/pim/stack_iterator_em64t.cpp

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32CallingConvention.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32CallingConvention.cpp?view=diff&rev=521134&r1=521133&r2=521134
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32CallingConvention.cpp
(original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32CallingConvention.cpp
Wed Mar 21 23:27:29 2007
@@ -170,7 +170,9 @@
 {
     switch (regKind){
         case OpndKind_GPReg:
-#ifdef _EM64T_
+#ifdef _WIN64
+            return (Constraint(RegName_RBX)|RegName_RBP|RegName_R12|RegName_R13|RegName_R14|RegName_R15|RegName_RSI|RegName_RDI);
+#elif _EM64T_
             return (Constraint(RegName_RBX)|RegName_RBP|RegName_R12|RegName_R13|RegName_R14|RegName_R15);
 #else
             return (Constraint(RegName_EBX)|RegName_EBP|RegName_ESI|RegName_EDI);

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32StackInfo.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32StackInfo.cpp?view=diff&rev=521134&r1=521133&r2=521134
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32StackInfo.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32StackInfo.cpp Wed Mar
21 23:27:29 2007
@@ -232,6 +232,14 @@
         context->p_r12 = (POINTER_SIZE_INT *)  offset;
         offset += offset_step;
     }
+    if(getRegMask(RegName_RDI) & icalleeMask) {
+        context->p_rdi = (POINTER_SIZE_INT *)  offset;
+        offset += offset_step;
+    }
+    if(getRegMask(RegName_RSI) & icalleeMask) {
+        context->p_rsi = (POINTER_SIZE_INT *)  offset;
+        offset += offset_step;
+    }
     if(getRegMask(RegName_RBP) & icalleeMask) {
         context->p_rbp = (POINTER_SIZE_INT *)  offset;
         offset += offset_step;
@@ -294,6 +302,12 @@
                 return context->p_rbp;
             case RegName_RBX:
                 return context->p_rbx;
+#ifdef _WIN64
+            case RegName_RSI:
+                return context->p_rsi;
+            case RegName_RDI:
+                return context->p_rdi;
+#endif
 #else
             case RegName_ESI:
                 return context->p_esi;

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/compiler.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/compiler.cpp?view=diff&rev=521134&r1=521133&r2=521134
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/compiler.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/compiler.cpp Wed Mar 21 23:27:29 2007
@@ -1448,7 +1448,7 @@
     // Collect runtime constants
     //
     rt_array_length_offset = vector_length_offset();
-    rt_suspend_req_flag_offset = hythread_tls_get_suspend_request_offset();
+    rt_suspend_req_flag_offset = (unsigned)hythread_tls_get_suspend_request_offset();
     rt_vtable_offset = object_get_vtable_offset();
     
     Class_Handle clss;

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/enc_ia32.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/enc_ia32.cpp?view=diff&rev=521134&r1=521133&r2=521134
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/enc_ia32.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/enc_ia32.cpp Wed Mar 21 23:27:29 2007
@@ -305,6 +305,10 @@
     if (equals(reg, RegName_EBX))   return true;
     if (equals(reg, RegName_EBP))   return true;
 #ifdef _EM64T_
+#ifdef _WIN64
+    if (equals(reg, RegName_RDI))   return true;
+    if (equals(reg, RegName_RSI))   return true;
+#endif
     if (equals(reg, RegName_R12))   return true;
     if (equals(reg, RegName_R13))   return true;
     if (equals(reg, RegName_R14))   return true;

Modified: harmony/enhanced/drlvm/trunk/vm/port/src/lil/em64t/pim/stack_iterator_em64t.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/port/src/lil/em64t/pim/stack_iterator_em64t.cpp?view=diff&rev=521134&r1=521133&r2=521134
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/port/src/lil/em64t/pim/stack_iterator_em64t.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/port/src/lil/em64t/pim/stack_iterator_em64t.cpp Wed Mar
21 23:27:29 2007
@@ -117,6 +117,10 @@
         si->jit_frame_context.p_rbp = &current_m2n_frame->rbp;
         si->jit_frame_context.p_rip = &current_m2n_frame->rip;
 
+#ifdef _WIN64
+        si->jit_frame_context.p_rdi = &current_m2n_frame->rdi;
+        si->jit_frame_context.p_rsi = &current_m2n_frame->rsi;
+#endif
         si->jit_frame_context.p_rbx = &current_m2n_frame->rbx;
         si->jit_frame_context.p_r12 = &current_m2n_frame->r12;
         si->jit_frame_context.p_r13 = &current_m2n_frame->r13;



Mime
View raw message