home *** CD-ROM | disk | FTP | other *** search
/ OpenStep (Enterprise) / OpenStepENTCD.toast / OEDEV / GNUSRC.Z / machopic.stubs < prev    next >
Text File  |  1994-02-02  |  2KB  |  115 lines

  1. ##
  2. ## m68k non-PIC stub
  3. ##
  4.  
  5. .symbol_stub
  6. Lprintf$stub:
  7.         .indirect_symbol _printf
  8.         jmp @(Lprintf$lazy_ptr)
  9. Lprintf$stub_binder:
  10.         movel #Lprintf$lazy_ptr,sp@-
  11.         bra stub_binding_helper
  12.         
  13. .lazy_symbol_pointer
  14. Lprintf$lazy_ptr:
  15.         .indirect_symbol _printf
  16.         .long Lprintf$stub_binder
  17.  
  18. ##
  19. ## m68k PIC stub
  20. ##
  21.  
  22. .picsymbol_stub
  23. Lprintf$stub:
  24.         .indirect_symbol _printf
  25.         jmp pc@(_printf$lazy_ptr-.)
  26. Lprintf$stub_binder:
  27.         movel pc@(Lprintf$lazy_ptr-.),sp@-
  28.         bra stub_binding_helper
  29.         
  30. .lazy_symbol_pointer
  31. Lprintf$lazy_ptr:
  32.         .indirect_symbol _printf
  33.         .long Lprintf$stub_binder
  34.  
  35. ##
  36. ## i386 non-PIC stub
  37. ##
  38.  
  39. .symbol_stub
  40. Lprintf$stub:
  41.         .indirect_symbol _printf
  42.         ljmp Lprintf$lazy_ptr
  43. Lprintf$stub_binder:
  44.         pushl $Lprintf$lazy_ptr
  45.         jmp stub_binding_helper
  46.         
  47. .lazy_symbol_pointer
  48. Lprintf$lazy_ptr:
  49.         .indirect_symbol _printf
  50.         .long Lprintf$stub_binder
  51.  
  52. ##
  53. ## i386 PIC stub
  54. ##
  55.  
  56. .picsymbol_stub
  57. Lprintf$stub:
  58.         .indirect_symbol _printf
  59.     call LP1
  60. LP1:    popl %eax
  61.         jmpl Lprintf$lazy_ptr-LP1(%eax)
  62. Lprintf$stub_binder:
  63.     addl Lprintf$lazy_ptr-LP1,%eax
  64.         pushl %eax
  65.         jmp stub_binding_helper
  66.         
  67. .lazy_symbol_pointer
  68. Lprintf$lazy_ptr:
  69.         .indirect_symbol _printf
  70.         .long Lprintf$stub_binder
  71.  
  72. ##
  73. ## hppa non-PIC stub
  74. ##
  75.  
  76. .symbol_stub
  77. Lprintf$stub:
  78.         .indirect_symbol _printf
  79.         ldil L`Lprintf$lazy_ptr,%r1
  80.         ldw R`Lprintf$lazy_ptr(%r1),%r1
  81.     be,n 0(4,%r1)
  82. Lprintf$stub_binder:
  83.     copy %1,%r5
  84.         ldil L`stub_binding_helper,%r1
  85.         be,n R`stub_binding_helper(4,%r1)
  86.  
  87. .lazy_symbol_pointer
  88. Lprintf$lazy_ptr:
  89.         .indirect_symbol _printf
  90.         .long Lprintf$stub_binder
  91.  
  92. ##
  93. ## hppa PIC stub
  94. ##
  95.  
  96. .picsymbol_stub
  97. Lprintf$stub:
  98.         .indirect_symbol _printf
  99.     bl,n LP1,%r5
  100. LP1:    addil L`Lprintf$lazy_ptr-LP1,%r5
  101.         ldw R`Lprintf$lazy_ptr-LP1(%r5),%r1
  102.     be,n 0(4,%r1)
  103. Lprintf$stub_binder:
  104.     bl,n LP2,%r19
  105. LP2:    copy %r19,%r5
  106.     addil L`Lprintf$lazy_ptr-LP1,%r5
  107.         ldo R`Lprintf$lazy_ptr-LP1(%r5),%r5
  108.         ldil L`stub_binding_helper-LP1,%r19
  109.         be,n R`stub_binding_helper-LP1(4,%r19)
  110.  
  111. .lazy_symbol_pointer
  112. Lprintf$lazy_ptr:
  113.         .indirect_symbol _printf
  114.         .long Lprintf$stub_binder
  115.