logo       
Google Custom Search
    AddThis Social Bookmark Button

r9750 - in trunk/fundev/Sources: harp/core-harp harp/gnu-outputter harp/pen: msg#00042

Subject: r9750 - in trunk/fundev/Sources: harp/core-harp harp/gnu-outputter harp/pentium-harp harp/pentium-linux-rtg lib/run-time lib/run-time/pentium-linux
Author: andreas
Date: Sun Jan 16 19:38:45 2005
New Revision: 9750

Modified:
   trunk/fundev/Sources/harp/core-harp/asm-code-select.dylan
   trunk/fundev/Sources/harp/core-harp/constant-ref.dylan
   trunk/fundev/Sources/harp/core-harp/module.dylan
   trunk/fundev/Sources/harp/gnu-outputter/gnu-outputter.dylan
   trunk/fundev/Sources/harp/pentium-harp/general.dylan
   trunk/fundev/Sources/harp/pentium-harp/moves.dylan
   trunk/fundev/Sources/harp/pentium-linux-rtg/ffi-barrier.dylan
   trunk/fundev/Sources/lib/run-time/collector.c
   trunk/fundev/Sources/lib/run-time/pentium-linux/runtime.harp
   trunk/fundev/Sources/lib/run-time/pentium-linux/runtime.s
Log:
bug: 6985

Replace the two broken implementations of storing the teb pointer in a
thread-local place by one that makes use of the system-provided 
facilities for thread-local storage. I'm not too sure whether I'm using
the correct relocation type (R_386_TLS_LE at the moment), it could
break when linking against other libraries that use TLS.  I'm following
what http://docsun.cites.uiuc.edu/sun_docs/C/solaris_9/SUNWdev/LLM/p62.html
says, though.


Modified: trunk/fundev/Sources/harp/core-harp/asm-code-select.dylan
==============================================================================
--- trunk/fundev/Sources/harp/core-harp/asm-code-select.dylan   (original)
+++ trunk/fundev/Sources/harp/core-harp/asm-code-select.dylan   Sun Jan 16 
19:38:45 2005
@@ -177,6 +177,8 @@
     case
       high? => <labelled-absolute-constant-high>;
       low? => <labelled-absolute-constant-low>;
+      instance?(constant-ref, <i-thread-constant-reference>) 
+        => <labelled-absolute-thread-constant>;
       otherwise => <labelled-absolute-constant>;
     end;
   let label 

Modified: trunk/fundev/Sources/harp/core-harp/constant-ref.dylan
==============================================================================
--- trunk/fundev/Sources/harp/core-harp/constant-ref.dylan      (original)
+++ trunk/fundev/Sources/harp/core-harp/constant-ref.dylan      Sun Jan 16 
19:38:45 2005
@@ -53,6 +53,9 @@
 define abstract open class <indirect-constant-reference> (<constant-reference>)
 end class;
 
+define abstract open class <thread-constant-reference> (<constant-reference>)
+end class;
+
 define abstract open class <imported-constant-reference> (<constant-reference>)
 end class;
 
@@ -118,7 +121,9 @@
       (<i-indirect-constant-reference>, <imported-constant-reference>) 
 end class;
 
-
+define class <i-thread-constant-reference> 
+    (<i-address-constant-reference>, <thread-constant-reference>)
+end class;
 
 define class <interactor-indirect-constant-reference>
       (<i-indirect-constant-reference>, <interactor-constant-reference>) 
@@ -309,6 +314,8 @@
 define class <labelled-absolute-constant-low> (<labelled-absolute-constant>)
 end class;
 
+define class <labelled-absolute-thread-constant> (<labelled-absolute-constant>)
+end class;
 
 /// And a subclass for relative constants.
 

Modified: trunk/fundev/Sources/harp/core-harp/module.dylan
==============================================================================
--- trunk/fundev/Sources/harp/core-harp/module.dylan    (original)
+++ trunk/fundev/Sources/harp/core-harp/module.dylan    Sun Jan 16 19:38:45 2005
@@ -258,6 +258,7 @@
     <constant-reference>, 
     <address-constant-reference>, 
     <indirect-constant-reference>,
+    <thread-constant-reference>,
     <imported-constant-reference>,
     <interactor-constant-reference>,
     <i-constant-reference>, 
@@ -266,6 +267,7 @@
     <df-constant-reference>, 
     <i-address-constant-reference>, 
     <i-indirect-constant-reference>,
+    <i-thread-constant-reference>,
     <sf-address-constant-reference>, 
     <sf-indirect-constant-reference>,
     <df-address-constant-reference>, 
@@ -277,6 +279,7 @@
     <labelled-absolute-constant>,
     <labelled-absolute-constant-high>,
     <labelled-absolute-constant-low>,
+    <labelled-absolute-thread-constant>,
     <labelled-relative-constant>,
     <labelled-constant-with-opcode>,
     labelled-constant-size,

Modified: trunk/fundev/Sources/harp/gnu-outputter/gnu-outputter.dylan
==============================================================================
--- trunk/fundev/Sources/harp/gnu-outputter/gnu-outputter.dylan (original)
+++ trunk/fundev/Sources/harp/gnu-outputter/gnu-outputter.dylan Sun Jan 16 
19:38:45 2005
@@ -321,6 +321,14 @@
   (outputter, item, increment, attr: "@l");
 end method;
 
+define method output-code-label
+    (outputter :: <harp-gnu-outputter>,
+     item :: <labelled-absolute-thread-constant>,
+     increment :: <integer>) => ()
+  output-code-label-internal
+  (outputter, item, increment, attr: "@ntpoff");
+end method;
+
 
 define method output-code-label
     (outputter :: <harp-gnu-outputter>,

Modified: trunk/fundev/Sources/harp/pentium-harp/general.dylan
==============================================================================
--- trunk/fundev/Sources/harp/pentium-harp/general.dylan        (original)
+++ trunk/fundev/Sources/harp/pentium-harp/general.dylan        Sun Jan 16 
19:38:45 2005
@@ -414,10 +414,16 @@
        const-offset: 0);
 end method;
 
+define method thread-local-runtime-reference
+(name :: <byte-string>) => (c :: <constant-reference>)
+  make(<i-thread-constant-reference>, 
+       refers-to: name,
+       const-offset: 0);
+end method;
+    
+
 define method output-implicit-externals
     (backend :: <pentium-linux-back-end>, outputter :: <harp-outputter>)
   output-external(backend, outputter, remove-optionals-runtime);
-  output-external(backend, outputter, 
segment-register-load-instruction-offset);
-  output-external(backend, outputter, 
segment-register-store-instruction-offset);
   output-external(backend, outputter, dylan-integer-overflow-handler);
 end method;

Modified: trunk/fundev/Sources/harp/pentium-harp/moves.dylan
==============================================================================
--- trunk/fundev/Sources/harp/pentium-harp/moves.dylan  (original)
+++ trunk/fundev/Sources/harp/pentium-harp/moves.dylan  Sun Jan 16 19:38:45 2005
@@ -412,8 +412,6 @@
 end method;
 
 
-// Temporary: the TLB is currently stored in the Windows TIB at offset #x14
-// (reserved for application use as pvArbitrary).
 
 
 define method op--store-thread-local
@@ -448,151 +446,29 @@
   op--load-thread-local(be, dest, /* dummy */ 0);
 end method;
 
-/*
-define method op--store-thread-local
-    (be :: <pentium-linux-back-end>, data, offset :: <integer>) => ()
-  emit(be, gs.segment-prefix);
-  harp-out(be)
-    st(be, data, 0, #x3c);
-  end harp-out;
-end method;
-
-define method op--load-thread-local
-    (be :: <pentium-linux-back-end>, dest :: <real-register>, offset :: 
<integer>) => ()
-
-//     57c:       65 8b 0d 3c 00 00 00    mov    %gs:0x3c,%ecx
-//     583:       89 ce                   mov    %ecx,%esi
-
-  emit(be, gs.segment-prefix);
-  harp-out(be)
-    ld(be, dest, 0, #x3c);
-  end harp-out;
-end method;
-*/
-
-///  Some versions of LinuxThreads have aligned 2MB stacks.
-///  Use a position at a fixed offset from the bottom of stack to 
-///  store the TEB while running Dylan code.
-
-define constant $linux-stack-bot-mask = (2 * 1024 * 1024) - 1;
-define constant $linux-teb-stack-bot-offset = 1 - 256; /* hope this is safe */
-
-/*
-define method op--store-thread-local
-    (be :: <pentium-linux-back-end>, data, offset :: <integer>) => ()
-  let temp = reg--tmp2;
-  harp-out(be)
-    or(be, temp, reg--stack, $linux-stack-bot-mask);
-    st(be, data, temp, $linux-teb-stack-bot-offset);
-  end harp-out;
-end method;
-
-define method op--load-thread-local
-    (be :: <pentium-linux-back-end>, dest :: <real-register>, offset :: 
<integer>) => ()
-  harp-out(be)
-    or(be, dest, reg--stack, $linux-stack-bot-mask);
-    ld(be, dest, dest, $linux-teb-stack-bot-offset);
-  end harp-out;
-end method;
-*/
-
-///  Support both versions of LinuxThreads (gs segment register, aligned 2MB 
stacks).
-///  Generate code to dispatch at runtime to the appropriate inlined block of 
machine code.
-
-define constant segment-register-load-instruction-offset = 
-    indirect-runtime-reference("Psegment_register_load_instruction_offset");
-
-define constant segment-register-store-instruction-offset = 
-    indirect-runtime-reference("Psegment_register_store_instruction_offset");
+define constant $teb = 
+    thread-local-runtime-reference("teb");
 
 define method op--store-thread-local
     (be :: <pentium-linux-back-end>, data, offset :: <integer>) => ()
-  unless (data == reg--tmp1)
-    harp-out (be)
-      move(be, reg--tmp1, data)
-    end;
-  end;
-  let temp = reg--tmp2;
-  emit(be, call, 0, 0, 0, 0);                                         // call 
$+0
-  harp-out(be)
-    ld(be, temp, reg--stack, 0);                                      // 3; 
mov    (%esp,1),%ecx
-    add(be, temp, temp, 3 + 3 + 6 + 2);                               // 3; 
add    $0x0e,%ecx
-    add(be, temp, temp, segment-register-store-instruction-offset);   // 6; 
add    Psegment_register_store_instruction_offset,%ecx
-  end harp-out;
-
-  jump-to-register(be, temp);                                         // 2; 
jmp    *%ecx
-
-  harp-out(be)
-    move(be, temp, reg--stack);                                       // 2; 
mov    %esp,%ecx
-    or(be, temp, temp, $linux-stack-bot-mask);                        // 6; or 
    $0x1fffff,%ecx
-    st(be, reg--tmp1, temp, $linux-teb-stack-bot-offset);             // 6; 
mov    %esi,0xffffff01(%ecx)
-
-    ld(be, temp, reg--stack, 0);                                      // 3; 
mov    (%esp,1),%ecx
-    add(be, temp, temp, 3 + 3 + 6 + 2 + 2 + 6 + 6 + 3 + 3 + 2 + 7);   // 3; 
add    $0x2b,%ecx
-  end harp-out;
-
-  jump-to-register(be, temp);                                         // 2; 
jmp    *%ecx
-
   emit(be, gs.segment-prefix);
   harp-out(be)
-    st(be, reg--tmp1, 0, #x3c);                                       // 7; 
mov    %esi,%gs:0x3c
-
-    add(be, reg--stack, reg--stack, 4);                               // return
+    st(be, data, $teb, 0 /*ignore offset for Linux */);
   end harp-out;
 end method;
 
 define method op--load-thread-local
     (be :: <pentium-linux-back-end>, dest :: <real-register>, offset :: 
<integer>) => ()
-  unless (dest == reg--tmp1)
-       // preserve reg--tmp1; parts of runtime (e.g. 
primitive_build_bind_exit_frame) requires it.
-    harp-out (be)
-      push(be, reg--tmp1)
-    end;
-  end;
-  emit(be, call, 0, 0, 0, 0);                                                  
          // call $+0
-  harp-out(be)
-    ld(be, reg--tmp1, reg--stack, 0);                                          
          // 3; mov    (%esp,1),%esi
-    add(be, reg--tmp1, reg--tmp1, 3 + 3 + 6 + 2);                              
          // 3; add    $0x0e,%esi
-    add(be, reg--tmp1, reg--tmp1, segment-register-load-instruction-offset);   
          // 6; add    Psegment_register_load_instruction_offset,%esi
-  end harp-out;
-
-  jump-to-register(be, reg--tmp1);                                             
          // 2; jmp    *%esi
-
-  harp-out(be)
-    move(be, reg--tmp1, reg--stack);                                           
          // 2; mov    %esp,%esi
-    or(be, reg--tmp1, reg--tmp1, $linux-stack-bot-mask);                       
          // 6; or     $0x1fffff,%esi
-    ld(be, reg--tmp1, reg--tmp1, $linux-teb-stack-bot-offset);                 
          // 6; mov    0xffffff01(%esi),%esi
-    push(be, reg--tmp1);                                                       
          // 1; push   %esi
-
-    ld(be, reg--tmp1, reg--stack, 4);                                          
          // 4; mov    0x4(%esp,1),%esi
-    add(be, reg--tmp1, reg--tmp1, 3 + 3 + 6 + 2 + 2 + 6 + 6 + 1 + 4 + 3 + 2 + 
7 + 1);    // 3; add    $0x2e,%esi
-  end harp-out;
-
-  jump-to-register(be, reg--tmp1);                                             
          // 2; jmp    *%esi
-
   emit(be, gs.segment-prefix);
   harp-out(be)
-    ld(be, reg--tmp1, 0, #x3c);                                                
          // 7; mov    %gs:0x3c,%esi
-    push(be, reg--tmp1);                                                       
          // 1; push   %esi
-
-    ld(be, dest, reg--stack, 0);
-    add(be, reg--stack, reg--stack, 8);                                        
          // return
+    ld(be, dest, $teb, 0 /*ignore offset for Linux */);
   end harp-out;
-  unless (dest == reg--tmp1)
-       // preserve reg--tmp1; parts of runtime (e.g. 
primitive_build_bind_exit_frame) requires it.
-    harp-out (be)
-      pop(be, reg--tmp1)
-    end;
-  end;
-end method;
-
-define method jump-to-register(be :: <pentium-linux-back-end>, dest :: 
<real-register>) => ()
-  emit(be, grp5);
-  emit-reg-direct(be, dest, #b100000);
 end method;
 
 /// Now the templates
 
+// Temporary: the TLB is currently stored in the Windows TIB at offset #x14
+// (reserved for application use as pvArbitrary).
 
 with-ops-in pentium-instructions (get-teb, set-teb) info := #x14 end;
 with-ops-in pentium-instructions (get-seh, set-seh) info := 0 end;

Modified: trunk/fundev/Sources/harp/pentium-linux-rtg/ffi-barrier.dylan
==============================================================================
--- trunk/fundev/Sources/harp/pentium-linux-rtg/ffi-barrier.dylan       
(original)
+++ trunk/fundev/Sources/harp/pentium-linux-rtg/ffi-barrier.dylan       Sun Jan 
16 19:38:45 2005
@@ -8,40 +8,4 @@
 Warranty:     Distributed WITHOUT WARRANTY OF ANY KIND
 
 
-
-define sideways method op--initialize-thread-instructions (be :: 
<pentium-linux-back-end>) => ()
-  when-base
-    op--call-c(be, check-runtime-thread-library-uses-segment-register);
-  end when-base;
-
-  let load-offset = 2 + 6 + 6 + 1 + 4 + 3 + 2;
-  let store-offset = 2 + 6 + 6 + 3 + 3 + 2;
-  let tmp = make-n-register(be);
-  when-base
-    ins--muls(be, tmp, thread-library-uses-segment-register0, load-offset);
-       ins--move(be, segment-register-load-instruction-offset, tmp);
-    ins--muls(be, tmp, thread-library-uses-segment-register0, store-offset);
-       ins--move(be, segment-register-store-instruction-offset, tmp);
-  end;
-  when-client
-    ins--muls(be, tmp, thread-library-uses-segment-register, load-offset);
-       ins--move(be, segment-register-load-instruction-offset, tmp);
-    ins--muls(be, tmp, thread-library-uses-segment-register, store-offset);
-       ins--move(be, segment-register-store-instruction-offset, tmp);
-  end;
-end method;
-
-define c-fun runtime-external 
check-runtime-thread-library-uses-segment-register
-  = "check_runtime_thread_library_uses_segment_register";
-
-define c-full-indirect runtime-variable thread-library-uses-segment-register0 
= "%thread-library-uses-segment-register?",
-   client?: #f, base?: #t;
-
-define c-full-indirect runtime-external thread-library-uses-segment-register = 
"%thread-library-uses-segment-register?",
-   client?: #t, base?: #f;
-
-define runtime-variable segment-register-load-instruction-offset = 
"%segment-register-load-instruction-offset",
-   data: 0, client?: #t, base?: #t;
-
-define runtime-variable segment-register-store-instruction-offset = 
"%segment-register-store-instruction-offset",
-   data: 0, client?: #t, base?: #t;
+//empty

Modified: trunk/fundev/Sources/lib/run-time/collector.c
==============================================================================
--- trunk/fundev/Sources/lib/run-time/collector.c       (original)
+++ trunk/fundev/Sources/lib/run-time/collector.c       Sun Jan 16 19:38:45 2005
@@ -263,6 +263,12 @@
 
 /* Thread Local Variables, accessed via the GC-TEB*/
 
+#ifdef X86_LINUX_PLATFORM
+// On Linux, use the thread-local storage provided by the system to
+// hold the TEB pointer
+__thread void* teb;
+#endif
+
 typedef struct gc_teb_s {       /* GC Thread Environment block descriptor */
   mps_bool_t gc_teb_inside_tramp;  /* the HARP runtime assumes offset 0 for 
this */
   mps_ap_t   gc_teb_main_ap;       /* the HARP runtime assumes offset 1 for 
this */
@@ -590,49 +596,13 @@
 }
 
 
-#ifdef LINUX_PLATFORM
-/* TEMPORARY - while booting the compiler */
-void *Pthread_local_storage_for_gc[10];
-void *Pthread_local_storage[100];
-#endif
-
-#if defined(X86_LINUX_PLATFORM)
-extern BOOL Pthread_library_uses_segment_registerQ;
-#endif
-
 __inline 
  gc_teb_t current_gc_teb()
 { 
   gc_teb_t gc_teb;
 #if defined(X86_LINUX_PLATFORM)
 
-  if (Pthread_library_uses_segment_registerQ)
-    __asm__
-      (
-       "movl %%gs:%c1,%%ecx\n\t"
-       "movl   %%ecx,%0\n\t" /* the TEB */
-
-       // output operands
-       : "=g" (gc_teb)
-       // input operands
-       : "i" (4 * 15)
-       // clobbered machine registers
-       : "cx"
-       );
-  else
-    __asm__
-      (
-        "movl   %%esp, %%ecx\n\t"
-        "orl    $0x1fffff, %%ecx\n\t"         /* the top of stack */
-        "movl   0xffffff01(%%ecx), %%ecx\n\t"  /* offset -255; intermediate 
mov to avoid too many memory references */
-        "movl   %%ecx,%0\n\t" /* the TEB */
-  
-        // output operands
-        : "=g" (gc_teb)
-        : // no input operands
-        // clobbered machine registers
-        : "cx"
-      );
+  gc_teb = teb;
 
 #elif defined(PPC_LINUX_PLATFORM)
   __asm__
@@ -2525,43 +2495,7 @@
 RUN_TIME_API
 void check_runtime_thread_library_uses_segment_register() {
 
-  char *value = getenv("THREAD_LIBRARY_USES_SEGMENT_REGISTER");
-  if ((value == NULL) || (strlen(value) == 0))
-    {
-      void *gs = NULL;
-      __asm__
-        (
-         "movl %%gs,%0\n\t"
-
-         // output operands
-         : "=g" (gs)
-         );
-      //fprintf(stderr,"(gs=%d) \n",gs);
-      if (gs != NULL)
-        {
-          void *tid = (void *)pthread_self();
-          void *tid2 = NULL;
-          __asm__
-            (
-             "movl %%gs:0x50,%0\n\t"
-
-             // output operands
-             : "=g" (tid2)
-             );
-          //fprintf(stderr,"(tid=%d) \n",tid);
-          //fprintf(stderr,"(tid2=%d) \n",tid2);
-          if (tid == tid2)
-            Pthread_library_uses_segment_registerQ = TRUE;
-        }
-    }
-  else
-    {
-      if (strcmp(value, "TRUE") == 0)
-        {
-          //fputs("value is TRUE", stderr);
-          Pthread_library_uses_segment_registerQ = TRUE;
-        }
-    }
+  // XXX track down caller and eliminate
 
   return;
 }

Modified: trunk/fundev/Sources/lib/run-time/pentium-linux/runtime.harp
==============================================================================
--- trunk/fundev/Sources/lib/run-time/pentium-linux/runtime.harp        
(original)
+++ trunk/fundev/Sources/lib/run-time/pentium-linux/runtime.harp        Sun Jan 
16 19:38:45 2005
@@ -3099,7 +3099,7 @@
 
 +++ Live variable scopes for primitive_type_check_values +++
 Start scope at 3 with frame for no variables
-End scope at 388
+End scope at 278
 
 +++ No Source Code Locators for primitive_type_check_values +++
 
@@ -3223,7 +3223,7 @@
 
 +++ Live variable scopes for primitive_type_check_rest_values +++
 Start scope at 3 with frame for no variables
-End scope at 248
+End scope at 139
 
 +++ No Source Code Locators for primitive_type_check_rest_values +++
 
@@ -4000,8 +4000,8 @@
 +++ ending code for primitive_heap_vector_remaining_values +++
 
 +++ Live variable scopes for primitive_heap_vector_remaining_values +++
-Start scope at 183 with frame for no variables
-End scope at 211
+Start scope at 81 with frame for no variables
+End scope at 109
 
 +++ No Source Code Locators for primitive_heap_vector_remaining_values +++
 
@@ -5060,7 +5060,7 @@
 
 +++ Live variable scopes for call_dylan_function_returning_all_values +++
 Start scope at 7 with frame for no variables
-End scope at 131
+End scope at 71
 
 +++ No Source Code Locators for call_dylan_function_returning_all_values +++
 
@@ -5165,7 +5165,7 @@
 
 +++ Live variable scopes for get_tlv_vector +++
 Start scope at 4 with frame for no variables
-End scope at 65
+End scope at 13
 
 +++ No Source Code Locators for get_tlv_vector +++
 
@@ -5201,7 +5201,7 @@
 
 +++ Live variable scopes for set_tlv_vector +++
 Start scope at 4 with frame for no variables
-End scope at 66
+End scope at 16
 
 +++ No Source Code Locators for set_tlv_vector +++
 
@@ -5236,7 +5236,7 @@
 
 +++ Live variable scopes for get_current_thread +++
 Start scope at 4 with frame for no variables
-End scope at 65
+End scope at 13
 
 +++ No Source Code Locators for get_current_thread +++
 
@@ -5272,7 +5272,7 @@
 
 +++ Live variable scopes for set_current_thread +++
 Start scope at 4 with frame for no variables
-End scope at 66
+End scope at 16
 
 +++ No Source Code Locators for set_current_thread +++
 
@@ -5307,7 +5307,7 @@
 
 +++ Live variable scopes for get_current_thread_handle +++
 Start scope at 4 with frame for no variables
-End scope at 65
+End scope at 13
 
 +++ No Source Code Locators for get_current_thread_handle +++
 
@@ -5343,7 +5343,7 @@
 
 +++ Live variable scopes for set_current_thread_handle +++
 Start scope at 4 with frame for no variables
-End scope at 66
+End scope at 16
 
 +++ No Source Code Locators for set_current_thread_handle +++
 
@@ -5493,7 +5493,7 @@
 
 +++ Live variable scopes for spy_read_thread_variable_at_offset +++
 Start scope at 4 with frame for no variables
-End scope at 71
+End scope at 19
 
 +++ No Source Code Locators for spy_read_thread_variable_at_offset +++
 

Modified: trunk/fundev/Sources/lib/run-time/pentium-linux/runtime.s
==============================================================================
--- trunk/fundev/Sources/lib/run-time/pentium-linux/runtime.s   (original)
+++ trunk/fundev/Sources/lib/run-time/pentium-linux/runtime.s   Sun Jan 16 
19:38:45 2005
@@ -353,8 +353,7 @@
        .size Kdenormal_float,. - Kdenormal_float
 
        .global primitive_remove_optionals
-       .global Psegment_register_load_instruction_offset
-       .global Psegment_register_store_instruction_offset
+       .global dylan_integer_overflow_handler
 
        .section .text
        .align 4
@@ -856,13 +855,12 @@
        .type primitive_type_check_values,@function
 primitive_type_check_values:
        .byte   85,137,229,131,236,32,139,85,8,80,156,89,128,229,4,15
-       .byte   132,148,0,0,0,106,1,139,52,36,137,117,240,141,116,36
+       .byte   132,140,0,0,0,106,1,139,52,36,137,117,240,141,116,36
        .byte   4,137,117,244,141,114,8,137,117,224,139,114,4,137,117,228
        .byte   131,109,228,1,199,69,252,0,0,0,0,199,69,236,0,0
-       .byte   0,0,139,117,236,59,117,228,15,132,231,0,0,0,139,117
-       .byte   236,59,117,240,15,141,219,0,0,0,139,117,244,3,117,252
-       .byte   139,54,137,117,248,139,117,224,3,117,236,139,54,137,117,232
-       .byte   129,125,232
+       .byte   0,0,139,117,236,59,117,228,116,125,139,117,236,59,117,240
+       .byte   125,117,139,117,244,3,117,252,139,54,137,117,248,139,117,224
+       .byte   3,117,236,139,54,137,117,232,129,125,232
        .long   KPfalseVKi
        .byte   116,38,139,125,232,129,255
        .long   KLobjectGVKd
@@ -870,18 +868,12 @@
        .long   KPfalseVKi
        .byte   117,11,255,117,232,139,69,248,232
        .long   Ktype_check_errorVKiI - 4 - .
-       .byte   131,69,252,4,131,69,236,4,235,153,86,232,0,0,0,0
-       .byte   139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,12,36,131,196,8,94,139,73,32,137,203,193,227
-       .byte   2,43,227,232,0,0,0,0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,52,36,131,196,8,131,198,36,137,231,252,243,165
-       .byte   83,233,226,254,255,255,129,125,12
+       .byte   131,69,252,4,131,69,236,4,235,161,101,139,13
+       .long   teb@ntpoff
+       .byte   139,73,32,137,203,193,227,2,43,227,101,139,53
+       .long   teb@ntpoff
+       .byte   131,198,36,137,231,252,243,165,83,233,80,255,255,255,129,125
+       .byte   12
        .long   KPfalseVKi
        .byte   116,63,139,117,252,59,117,240,125,55,139,117,244,3,117,252
        .byte   139,54,137,117,248,139,125,12,129,255
@@ -891,305 +883,178 @@
        .byte   117,11,255,117,12,139,69,248,232
        .long   Ktype_check_errorVKiI - 4 - .
        .byte   131,69,252,4,235,193,91,131,251,1,117,6,253,88,201,194
-       .byte   8,0,137,218,193,250,2,232,0,0,0,0,139,52,36,131
-       .byte   198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,52,36,131,196,8,137,86,32,86,232,0,0,0
-       .byte   0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,60,36,131,196,8,94,131,199,36,137,209,137,230
-       .byte   252,243,165,3,227,252,233,109,255,255,255
+       .byte   8,0,137,218,193,250,2,101,139,53
+       .long   teb@ntpoff
+       .byte   137,86,32,101,139,61
+       .long   teb@ntpoff
+       .byte   131,199,36,137,209,137,230,252,243,165,3,227,252,235,214
 
 
        .global primitive_type_check_rest_values
        .type primitive_type_check_rest_values,@function
 primitive_type_check_rest_values:
-       .byte   85,137,229,131,236,16,137,194,80,156,89,128,229,4,116,85
+       .byte   85,137,229,131,236,16,137,194,80,156,89,128,229,4,116,81
        .byte   106,1,139,52,36,137,117,240,141,116,36,4,137,117,244,137
-       .byte   85,252,139,117,252,59,117,240,15,141,195,0,0,0,139,117
-       .byte   244,3,117,252,139,54,137,117,248,139,125,8,129,255
+       .byte   85,252,139,117,252,59,117,240,125,90,139,117,244,3,117,252
+       .byte   139,54,137,117,248,139,125,8,129,255
        .long   KLobjectGVKd
        .byte   116,27,139,95,4,87,139,69,248,255,211,61
        .long   KPfalseVKi
        .byte   117,11,255,117,8,139,69,248,232
        .long   Ktype_check_errorVKiI - 4 - .
-       .byte   131,69,252,4,235,189,86,232,0,0,0,0,139,52,36,131
-       .byte   198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,12,36,131,196,8,94,139,73,32,137,203,193,227
-       .byte   2,43,227,232,0,0,0,0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,52,36,131,196,8,131,198,36,137,231,252,243,165
-       .byte   83,233,33,255,255,255,91,131,251,1,117,6,253,88,201,194
-       .byte   4,0,137,218,193,250,2,232,0,0,0,0,139,52,36,131
-       .byte   198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,52,36,131,196,8,137,86,32,86,232,0,0,0
-       .byte   0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,60,36,131,196,8,94,131,199,36,137,209,137,230
-       .byte   252,243,165,3,227,252,233,109,255,255,255
+       .byte   131,69,252,4,235,193,101,139,13
+       .long   teb@ntpoff
+       .byte   139,73,32,137,203,193,227,2,43,227,101,139,53
+       .long   teb@ntpoff
+       .byte   131,198,36,137,231,252,243,165,83,235,142,91,131,251,1,117
+       .byte   6,253,88,201,194,4,0,137,218,193,250,2,101,139,53
+       .long   teb@ntpoff
+       .byte   137,86,32,101,139,61
+       .long   teb@ntpoff
+       .byte   131,199,36,137,209,137,230,252,243,165,3,227,252,235,214
 
 
        .global primitive_adjust_mv
        .type primitive_adjust_mv,@function
 primitive_adjust_mv:
-       .byte   156,89,128,229,4,15,132,152,0,0,0,131,255,1,15,132
-       .byte   142,0,0,0,232,0,0,0,0,139,52,36,131,198,14,3
-       .byte   53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,52,36,131,196,8,137,126,32,131,255,0,116,76
-       .byte   86,232,0,0,0,0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,28,36,131,196,8,94,131,195,36,137,249,184
+       .byte   156,89,128,229,4,116,46,131,255,1,116,40,101,139,53
+       .long   teb@ntpoff
+       .byte   137,126,32,131,255,0,116,24,101,139,29
+       .long   teb@ntpoff
+       .byte   131,195,36,137,249,184
        .long   KPfalseVKi
-       .byte   137,223,252,243,171,137,3,253,195,86,232,0,0,0,0,139
-       .byte   52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,28,36,131,196,8,94,139,91,32,59,251,116,189
-       .byte   131,255,1,116,183,232,0,0,0,0,139,52,36,131,198,14
-       .byte   3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,52,36,131,196,8,137,126,32,59,251,124,81,137
-       .byte   249,43,203,137,223,86,232,0,0,0,0,139,52,36,131,198
-       .byte   14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,28,36,131,196,8,94,131,195,36,193,231,2,3
-       .byte   251,184
+       .byte   137,223,252,243,171,137,3,253,195,101,139,29
+       .long   teb@ntpoff
+       .byte   139,91,32,59,251,116,241,131,255,1,116,235,101,139,53
+       .long   teb@ntpoff
+       .byte   137,126,32,59,251,124,29,137,249,43,203,137,223,101,139,29
+       .long   teb@ntpoff
+       .byte   131,195,36,193,231,2,3,251,184
        .long   KPfalseVKi
-       .byte   252,243,171,252,233,33,255,255,255
+       .byte   252,243,171,252,235,190
 
 
        .global primitive_adjust_mv_rest
        .type primitive_adjust_mv_rest,@function
 primitive_adjust_mv_rest:
-       .byte   156,89,128,229,4,15,132,147,0,0,0,131,255,1,15,142
-       .byte   137,0,0,0,232,0,0,0,0,139,52,36,131,198,14,3
-       .byte   53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,52,36,131,196,8,137,126,32,86,232,0,0,0
-       .byte   0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,20,36,131,196,8,94,131,194,36,137,249,184
+       .byte   156,89,128,229,4,116,41,131,255,1,126,35,101,139,53
+       .long   teb@ntpoff
+       .byte   137,126,32,101,139,21
+       .long   teb@ntpoff
+       .byte   131,194,36,137,249,184
        .long   KPfalseVKi
-       .byte   137,215,252,243,171,137,2,253,195,86,232,0,0,0,0,139
-       .byte   52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,28,36,131,196,8,94,139,91,32,59,251,126,189
-       .byte   131,255,1,116,183,137,249,43,203,86,232,0,0,0,0,139
-       .byte   52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,20,36,131,196,8,94,131,194,36,193,227,2,3
-       .byte   218,184
+       .byte   137,215,252,243,171,137,2,253,195,101,139,29
+       .long   teb@ntpoff
+       .byte   139,91,32,59,251,126,241,131,255,1,116,235,137,249,43,203
+       .byte   101,139,21
+       .long   teb@ntpoff
+       .byte   131,194,36,193,227,2,3,218,184
        .long   KPfalseVKi
-       .byte   137,223,252,243,171,232,0,0,0,0,139,52,36,131,198,14
-       .byte   3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,52,36,131,196,8,137,126,32,252,233,37,255,255
-       .byte   255
+       .byte   137,223,252,243,171,101,139,53
+       .long   teb@ntpoff
+       .byte   137,126,32,252,235,194
 
 
        .global primitive_pad_mv
        .type primitive_pad_mv,@function
 primitive_pad_mv:
-       .byte   156,89,128,229,4,116,80,131,255,1,126,74,86,232,0,0
-       .byte   0,0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,28,36,131,196,8,94,131,195,36,137,249,184
+       .byte   156,89,128,229,4,116,28,131,255,1,126,22,101,139,29
+       .long   teb@ntpoff
+       .byte   131,195,36,137,249,184
        .long   KPfalseVKi
-       .byte   137,223,252,243,171,195,86,232,0,0,0,0,139,52,36,131
-       .byte   198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,28,36,131,196,8,94,139,91,32,131,255,1,116
-       .byte   188,59,251,126,184,137,249,43,203,137,223,86,232,0,0,0
-       .byte   0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,28,36,131,196,8,94,131,195,36,193,231,2,3
-       .byte   251,184
+       .byte   137,223,252,243,171,195,101,139,29
+       .long   teb@ntpoff
+       .byte   139,91,32,131,255,1,116,240,59,251,126,236,137,249,43,203
+       .byte   137,223,101,139,29
+       .long   teb@ntpoff
+       .byte   131,195,36,193,231,2,3,251,184
        .long   KPfalseVKi
-       .byte   252,243,171,233,98,255,255,255
+       .byte   252,243,171,235,205
 
 
        .global primitive_set_mv_from_vector
        .type primitive_set_mv_from_vector,@function
 primitive_set_mv_from_vector:
        .byte   139,80,4,193,250,2,131,250,1,117,5,139,64,8,253,195
-       .byte   232,0,0,0,0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,52,36,131,196,8,137,86,32,131,250,0,116,78
-       .byte   141,112,8,139,6,86,232,0,0,0,0,139,52,36,131,198
-       .byte   14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,60,36,131,196,8,94,131,199,36,137,209,252,243
-       .byte   165,252,233,112,255,255,255,184
+       .byte   101,139,53
+       .long   teb@ntpoff
+       .byte   137,86,32,131,250,0,116,23,141,112,8,139,6,101,139,61
+       .long   teb@ntpoff
+       .byte   131,199,36,137,209,252,243,165,252,235,217,184
        .long   KPfalseVKi
-       .byte   252,233,101,255,255,255
+       .byte   252,235,209
 
 
        .global primitive_build_bind_exit_frame
        .type primitive_build_bind_exit_frame,@function
 primitive_build_bind_exit_frame:
-       .byte   94,131,236,56,137,68,36,52,86,232,0,0,0,0,139,52
-       .byte   36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,4,36,131,196,8,94,139,0,137,108,36,48,137
-       .byte   68,36,44,137,224,255,230
+       .byte   94,131,236,56,137,68,36,52,101,139,5
+       .long   teb@ntpoff
+       .byte   139,0,137,108,36,48,137,68,36,44,137,224,255,230
 
 
        .global primitive_build_unwind_protect_frame
        .type primitive_build_unwind_protect_frame,@function
 primitive_build_unwind_protect_frame:
-       .byte   95,131,236,12,137,68,36,8,86,232,0,0,0,0,139,52
-       .byte   36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,4,36,131,196,8,94,139,0,137,108,36,4,137
-       .byte   4,36,137,224,232,0,0,0,0,139,52,36,131,198,14,3
-       .byte   53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,52,36,131,196,8,137,38,255,231
+       .byte   95,131,236,12,137,68,36,8,101,139,5
+       .long   teb@ntpoff
+       .byte   139,0,137,108,36,4,137,4,36,137,224,101,139,53
+       .long   teb@ntpoff
+       .byte   137,38,255,231
 
 
        .global primitive_unwind_protect_cleanup
        .type primitive_unwind_protect_cleanup,@function
 primitive_unwind_protect_cleanup:
-       .byte   86,232,0,0,0,0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,28,36,131,196,8,94,139,27,139,59,232,0,0
-       .byte   0,0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,52,36,131,196,8,137,62,80,156,89,128,229,4
-       .byte   116,29,106,1,83,139,123,8,255,215,91,90,131,250,1,15
-       .byte   133,150,0,0,0,253,88,139,52,36,141,99,12,255,230,86
-       .byte   232,0,0,0,0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,12,36,131,196,8,94,139,73,32,137,202,193,226
-       .byte   2,43,226,232,0,0,0,0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,52,36,131,196,8,131,198,36,137,231,252,243,165
-       .byte   82,233,89,255,255,255,137,208,193,248,2,232,0,0,0,0
-       .byte   139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,52,36,131,196,8,137,70,32,86,232,0,0,0
-       .byte   0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,60,36,131,196,8,94,131,199,36,137,193,137,230
-       .byte   252,243,165,3,226,252,233,221,254,255,255
+       .byte   101,139,29
+       .long   teb@ntpoff
+       .byte   139,27,139,59,101,139,53
+       .long   teb@ntpoff
+       .byte   137,62,80,156,89,128,229,4,116,25,106,1,83,139,123,8
+       .byte   255,215,91,90,131,250,1,117,45,253,88,139,52,36,141,99
+       .byte   12,255,230,101,139,13
+       .long   teb@ntpoff
+       .byte   139,73,32,137,202,193,226,2,43,226,101,139,53
+       .long   teb@ntpoff
+       .byte   131,198,36,137,231,252,243,165,82,235,198,137,208,193,248,2
+       .byte   101,139,53
+       .long   teb@ntpoff
+       .byte   137,70,32,101,139,61
+       .long   teb@ntpoff
+       .byte   131,199,36,137,193,137,230,252,243,165,3,226,252,235,175
 
 
        .global primitive_nlx
        .type primitive_nlx,@function
 primitive_nlx:
-       .byte   86,232,0,0,0,0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,20,36,131,196,8,94,139,18,139,72,44,137,195
-       .byte   139,124,36,4,59,209,117,13,137,248,139,123,52,139,107,48
-       .byte   141,99,56,255,231,141,67,4,156,89,128,229,4,15,132,201
-       .byte   0,0,0,137,120,8,199,64,4,5,0,0,0,137,3,131
-       .byte   250,0,15,132,229,1,0,0,137,212,139,60,36,139,68,36
-       .byte   8,232,0,0,0,0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,52,36,131,196,8,137,62,139,108,36,4,83,255
-       .byte   208,91,86,232,0,0,0,0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,20,36,131,196,8,94,139,18,139,123,44,59,250
-       .byte   15,133,99,255,255,255,139,3,139,80,4,193,250,2,131,250
-       .byte   1,15,133,177,0,0,0,139,64,8,253,139,123,52,139,107
-       .byte   48,141,99,56,255,231,86,232,0,0,0,0,139,52,36,131
-       .byte   198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,12,36,131,196,8,94,139,73,32,131,249,8,126
-       .byte   13,81,83,82,137,200,232
+       .byte   101,139,21
+       .long   teb@ntpoff
+       .byte   139,18,139,72,44,137,195,139,124,36,4,59,209,117,13,137
+       .byte   248,139,123,52,139,107,48,141,99,56,255,231,141,67,4,156
+       .byte   89,128,229,4,116,91,137,120,8,199,64,4,5,0,0,0
+       .byte   137,3,131,250,0,15,132,168,0,0,0,137,212,139,60,36
+       .byte   139,68,36,8,101,139,53
+       .long   teb@ntpoff
+       .byte   137,62,139,108,36,4,83,255,208,91,101,139,21
+       .long   teb@ntpoff
+       .byte   139,18,139,123,44,59,250,117,205,139,3,139,80,4,193,250
+       .byte   2,131,250,1,117,75,139,64,8,253,139,123,52,139,107,48
+       .byte   141,99,56,255,231,101,139,13
+       .long   teb@ntpoff
+       .byte   139,73,32,131,249,8,126,13,81,83,82,137,200,232
        .long   primitive_allocate_vector - 4 - .
        .byte   90,91,89,137,207,193,231,2,131,199,1,137,120,4,141,120
-       .byte   8,232,0,0,0,0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,52,36,131,196,8,131,198,36,252,243,165,233,159
-       .byte   254,255,255,232,0,0,0,0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,52,36,131,196,8,137,86,32,131,250,0,116,83
-       .byte   141,112,8,139,6,86,232,0,0,0,0,139,52,36,131,198
-       .byte   14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,60,36,131,196,8,94,131,199,36,137,209,252,243
-       .byte   165,252,233,196,254,255,255,233
+       .byte   8,101,139,53
+       .long   teb@ntpoff
+       .byte   131,198,36,252,243,165,233,115,255,255,255,101,139,53
+       .long   teb@ntpoff
+       .byte   137,86,32,131,250,0,116,28,141,112,8,139,6,101,139,61
+       .long   teb@ntpoff
+       .byte   131,199,36,137,209,252,243,165,252,235,147,233
        .long   primitive_error - 4 - .
        .byte   184
        .long   KPfalseVKi
-       .byte   252,233,180,254,255,255
+       .byte   252,235,134
 
 
        .global primitive_stack_allocate_vector
@@ -1224,48 +1089,36 @@
        .global primitive_heap_vector_remaining_values
        .type primitive_heap_vector_remaining_values,@function
 primitive_heap_vector_remaining_values:
-       .byte   232,0,0,0,0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,52,36,131,196,8,131,198,36,156,89,128,229,4
-       .byte   116,25,131,255,0,117,104,137,6,184,1,0,0,0,137,247
-       .byte   131,248,0,117,94,184
+       .byte   101,139,53
+       .long   teb@ntpoff
+       .byte   131,198,36,156,89,128,229,4,116,25,131,255,0,117,52,137
+       .byte   6,184,1,0,0,0,137,247,131,248,0,117,42,184
        .long   KPempty_vectorVKi
-       .byte   195,86,232,0,0,0,0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,28,36,131,196,8,94,139,91,32,59,251,125,18
-       .byte   131,255,0,117,2,137,6,43,223,193,231,2,3,247,137,216
-       .byte   235,159,51,192,235,155,85,137,229,137,251,137,199,193,231,2
-       .byte   131,199,8,83,106,1,80,104
+       .byte   195,101,139,29
+       .long   teb@ntpoff
+       .byte   139,91,32,59,251,125,18,131,255,0,117,2,137,6,43,223
+       .byte   193,231,2,3,247,137,216,235,211,51,192,235,207,85,137,229
+       .byte   137,251,137,199,193,231,2,131,199,8,83,106,1,80,104
        .long   KLsimple_object_vectorGVKdW
        .byte   87,252,232
        .long   primitive_alloc_rt - 4 - .
-       .byte   131,196,20,201,235,132
+       .byte   131,196,20,201,235,184
 
 
        .global primitive_stack_vector_remaining_values
        .type primitive_stack_vector_remaining_values,@function
 primitive_stack_vector_remaining_values:
-       .byte   232,0,0,0,0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,52,36,131,196,8,131,198,36,156,89,128,229,4
-       .byte   116,58,131,255,0,15,133,133,0,0,0,137,6,184,1,0
-       .byte   0,0,90,137,195,137,223,193,231,2,131,199,8,43,231,137
-       .byte   224,137,223,193,231,2,131,199,1,137,120,4,199,0
+       .byte   101,139,53
+       .long   teb@ntpoff
+       .byte   131,198,36,156,89,128,229,4,116,54,131,255,0,117,81,137
+       .byte   6,184,1,0,0,0,90,137,195,137,223,193,231,2,131,199
+       .byte   8,43,231,137,224,137,223,193,231,2,131,199,1,137,120,4
+       .byte   199,0
        .long   KLsimple_object_vectorGVKdW
-       .byte   141,120,8,137,217,252,243,165,255,226,86,232,0,0,0,0
-       .byte   139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,28,36,131,196,8,94,139,91,32,59,251,125,18
-       .byte   131,255,0,117,2,137,6,43,223,193,231,2,3,247,137,216
-       .byte   235,130,51,192,233,123,255,255,255
+       .byte   141,120,8,137,217,252,243,165,255,226,101,139,29
+       .long   teb@ntpoff
+       .byte   139,91,32,59,251,125,18,131,255,0,117,2,137,6,43,223
+       .byte   193,231,2,3,247,137,216,235,182,51,192,235,178
 
 
        .global primitive_mep_apply
@@ -1410,30 +1263,23 @@
        .type call_dylan_function_returning_all_values,@function
 call_dylan_function_returning_all_values:
        .byte   85,137,229,156,83,86,87,139,85,12,131,250,0,116,8,141
-       .byte   77,16,131,250,0,127,118,139,93,8,137,209,255,83,4,51
-       .byte   210,86,232,0,0,0,0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,60,36,131,196,8,94,131,199,36,156,89,128,229
-       .byte   4,116,73,131,250,0,15,133,151,0,0,0,137,7,186,1
-       .byte   0,0,0,131,250,0,15,133,142,0,0,0,184
+       .byte   77,16,131,250,0,127,58,139,93,8,137,209,255,83,4,51
+       .byte   210,101,139,61
+       .long   teb@ntpoff
+       .byte   131,199,36,156,89,128,229,4,116,62,131,250,0,117,89,137
+       .byte   7,186,1,0,0,0,131,250,0,117,81,184
        .long   KPempty_vectorVKi
        .byte   141,101,240,95,94,91,157,93,195,139,1,141,89,4,131,250
-       .byte   1,116,128,137,209,131,233,1,137,207,193,231,2,43,231,137
-       .byte   231,137,222,252,243,165,233,104,255,255,255,86,232,0,0,0
-       .byte   0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,28,36,131,196,8,94,139,91,32,59,211,125,21
-       .byte   131,250,0,117,2,137,7,43,218,193,226,2,3,250,137,218
-       .byte   233,112,255,255,255,51,210,233,105,255,255,255,137,209,193,225
-       .byte   2,131,193,8,87,106,1,82,104
+       .byte   1,116,188,137,209,131,233,1,137,207,193,231,2,43,231,137
+       .byte   231,137,222,252,243,165,235,167,101,139,29
+       .long   teb@ntpoff
+       .byte   139,91,32,59,211,125,18,131,250,0,117,2,137,7,43,218
+       .byte   193,226,2,3,250,137,218,235,174,51,210,235,170,137,209,193
+       .byte   225,2,131,193,8,87,106,1,82,104
        .long   KLsimple_object_vectorGVKdW
        .byte   81,252,232
        .long   primitive_alloc_rt - 4 - .
-       .byte   131,196,20,233,87,255,255,255
+       .byte   131,196,20,235,151
 
 
        .global make_dylan_vector
@@ -1451,83 +1297,57 @@
        .global get_current_teb
        .type get_current_teb,@function
 get_current_teb:
-       .byte   86,232,0,0,0,0,139,52,36,131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,4,36,131,196,8,94,195
+       .byte   101,139,5
+       .long   teb@ntpoff
+       .byte   195
 
 
        .global get_tlv_vector
        .type get_tlv_vector,@function
 get_tlv_vector:
-       .byte   85,137,229,86,86,232,0,0,0,0,139,52,36,131,198,14
-       .byte   3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,4,36,131,196,8,94,139,64,4,141,101,252,94
-       .byte   93,195
+       .byte   85,137,229,86,101,139,5
+       .long   teb@ntpoff
+       .byte   139,64,4,141,101,252,94,93,195
 
 
        .global set_tlv_vector
        .type set_tlv_vector,@function
 set_tlv_vector:
-       .byte   85,137,229,86,139,85,8,232,0,0,0,0,139,52,36,131
-       .byte   198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,52,36,131,196,8,137,86,4,141,101,252,94,93
-       .byte   195
+       .byte   85,137,229,86,139,85,8,101,139,53
+       .long   teb@ntpoff
+       .byte   137,86,4,141,101,252,94,93,195
 
 
        .global get_current_thread
        .type get_current_thread,@function
 get_current_thread:
-       .byte   85,137,229,86,86,232,0,0,0,0,139,52,36,131,198,14
-       .byte   3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,4,36,131,196,8,94,139,64,8,141,101,252,94
-       .byte   93,195
+       .byte   85,137,229,86,101,139,5
+       .long   teb@ntpoff
+       .byte   139,64,8,141,101,252,94,93,195
 
 
        .global set_current_thread
        .type set_current_thread,@function
 set_current_thread:
-       .byte   85,137,229,86,139,85,8,232,0,0,0,0,139,52,36,131
-       .byte   198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,52,36,131,196,8,137,86,8,141,101,252,94,93
-       .byte   195
+       .byte   85,137,229,86,139,85,8,101,139,53
+       .long   teb@ntpoff
+       .byte   137,86,8,141,101,252,94,93,195
 
 
        .global get_current_thread_handle
        .type get_current_thread_handle,@function
 get_current_thread_handle:
-       .byte   85,137,229,86,86,232,0,0,0,0,139,52,36,131,198,14
-       .byte   3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,4,36,131,196,8,94,139,64,12,141,101,252,94
-       .byte   93,195
+       .byte   85,137,229,86,101,139,5
+       .long   teb@ntpoff
+       .byte   139,64,12,141,101,252,94,93,195
 
 
        .global set_current_thread_handle
        .type set_current_thread_handle,@function
 set_current_thread_handle:
-       .byte   85,137,229,86,139,85,8,232,0,0,0,0,139,52,36,131
-       .byte   198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,52,36,131,196,8,137,86,12,141,101,252,94,93
-       .byte   195
+       .byte   85,137,229,86,139,85,8,101,139,53
+       .long   teb@ntpoff
+       .byte   137,86,12,141,101,252,94,93,195
 
 
        .global spy_call_interactive_function
@@ -1559,13 +1379,9 @@
        .global spy_read_thread_variable_at_offset
        .type spy_read_thread_variable_at_offset,@function
 spy_read_thread_variable_at_offset:
-       .byte   85,137,229,86,139,85,8,86,232,0,0,0,0,139,52,36
-       .byte   131,198,14,3,53
-       .long   Psegment_register_load_instruction_offset
-       .byte   255,230,137,230,129,206,255,255,31,0,139,182,1,255,255,255
-       .byte   86,139,116,36,4,131,198,46,255,230,101,139,53,60,0,0
-       .byte   0,86,139,4,36,131,196,8,94,139,64,4,139,4,144,141
-       .byte   101,252,94,93,195
+       .byte   85,137,229,86,139,85,8,101,139,5
+       .long   teb@ntpoff
+       .byte   139,64,4,139,4,144,141,101,252,94,93,195
 
 
        .global spy_start_debugger_transaction
-- 
Gd-chatter mailing list
Gd-chatter@xxxxxxxxxxxxxxxx
https://gauss.gwydiondylan.org/mailman/listinfo/gd-chatter




Try Searching:
servers, voip, java, networking, microsoft ...
<Prev in Thread] Current Thread [Next in Thread>