home *** CD-ROM | disk | FTP | other *** search
/ PDA Software Library / pdasoftwarelib.iso / PILOT / PC / JUMP / NATIVE-J.ASM < prev    next >
Encoding:
Assembly Source File  |  1996-12-08  |  3.8 KB  |  146 lines

  1. java$lang$Class__getName:
  2.         move.l  4(a7),a0
  3.         move.l  ClassInfo.Name(a0),a0
  4.         lea     0(pc),a1
  5.         add.l   a1,a0
  6.         jsr     CharPtr_to_String(pc)
  7.         rts
  8.  
  9. java$lang$Object__getClass:
  10.         link    a6,#0
  11.         move.l  8(a6),a0
  12.         jsr     getclassinfo_a0(pc)
  13.         add.l   #2,a0
  14.         unlk    a6
  15.         rts
  16.  
  17. java$lang$Object__hashCode:
  18.         move.l  4(a7),d0
  19.         rts
  20.  
  21. java$lang$Runtime__gc:
  22.         lea     FirstObject(a5),a2
  23. gc_loop:
  24.         move.l  (a2),a1
  25.         cmp.l   #0,a1
  26.         beq     gc_out
  27.         move.l  ObjectHeader_LastPtr(a1),a0
  28.         cmp.l   (a0),a1
  29.         beq     gc_next
  30.         move.l  a7,a0
  31.         move.l  StackEnd(a5),d0
  32.         sub.l   a0,d0
  33.         lsr.w   #1,d0
  34.         moveq.l #2,d1
  35.         bsr     gc_search
  36.         cmp.l   #0,a0
  37.         bne.s   gc_found
  38.         lea     StaticObjects(a5),a0
  39.         move.w  StaticObjectCount(pc),d0
  40.         moveq.l #4,d1
  41.         bsr.s   gc_search
  42.         cmp.l   #0,a0
  43.         bne.s   gc_found
  44.         move.l  FirstObject(a5),a3
  45. gc_obj_loop:
  46.         cmp.l   #0,a3
  47.         beq.s   gc_obj_out
  48.         cmp.l   a3,a1
  49.         beq.s   gc_obj_next
  50.         move.w  ObjectHeader_ClassIndex(a3),d0
  51.         jsr     getclassinfo(pc)
  52.         move.w  ClassInfo.Flags(a0),d0
  53.         and.w   #ClassInfo_arrayofobjects,d0
  54.         bne.s   gc_obj_array
  55.         move.w  ClassInfo.ObjectSizePlusHeader(a0),d0
  56.         sub.w   #ObjectHeader_sizeof,d0
  57.         lsr.w   #1,d0
  58.         moveq.l #2,d1
  59.         move.l  a3,a0
  60.         pea     gc_obj_check(pc)
  61.         bra.s   gc_search
  62. gc_obj_array:
  63.         move.w  Array.length(a3),d0
  64.         moveq.l #4,d1
  65.         move.l  Array.data(a3),a0
  66.         bsr.s   gc_search
  67. gc_obj_check:
  68.         cmp.l   #0,a0
  69.         bne.s   gc_found
  70. gc_obj_next:
  71.         move.l  ObjectHeader_NextObject(a3),a3
  72.         bra     gc_obj_loop
  73. gc_obj_out:
  74.         move.l  ObjectHeader_NextObject(a1),(a2)
  75.         bsr.s   gc_zap
  76.         bra     gc_loop
  77. gc_found:
  78.         move.l  a0,ObjectHeader_LastPtr(a1)
  79. gc_next:
  80.         move.l  (a2),a2
  81.         lea     ObjectHeader_NextObject(a2),a2
  82.         bra     gc_loop
  83. gc_out:
  84.         rts
  85. gc_search_loop:
  86.         cmp.l   (a0),a1
  87.         beq.s   gc_search_out
  88.         add.l   d1,a0
  89. gc_search:
  90.         dbra    d0,gc_search_loop
  91.         move.l  #0,a0
  92. gc_search_out:
  93.         rts
  94. gc_zap:
  95.         move.w  ObjectHeader_ClassIndex(a1),d0
  96.         jsr     getclassinfo(pc)
  97.         move.w  ClassInfo.Flags(a0),d1
  98.         and.w   #ClassInfo_array,d1
  99.         beq.s   gc_zap_notarray
  100.         movem.l a0/a1,-(a7)
  101.         systrap MemChunkFree(Array.data(a1).l)
  102.         movem.l (a7)+,a0/a1
  103. gc_zap_notarray:
  104.         clr.l   d0
  105.         move.w  ClassInfo.ObjectSizePlusHeader(a0),d0
  106.         lea     -ObjectHeader_sizeof(a1),a3
  107.         systrap MemSet(a3.l,d0.l,#205.b)
  108.         systrap MemChunkFree(a3.l)
  109.         rts
  110.  
  111. java$lang$System__arraycopy:
  112.         link    a6,#0
  113.         move.l  8(a6),d2
  114.         move.l  12(a6),d1
  115.         move.l  16(a6),a1
  116.         move.l  20(a6),d0
  117.         move.l  24(a6),a0
  118.         tst.l   d2
  119.         beq     arraycopy_out
  120.         cmp.w   Array.length(a0),d0
  121.         bcc     arraycopy_out
  122.         move.l  d0,d3
  123.         add.l   d2,d3
  124.         cmp.w   Array.length(a0),d3
  125.         bhi     arraycopy_out
  126.         cmp.w   Array.length(a1),d1
  127.         bcc     arraycopy_out
  128.         move.l  d1,d3
  129.         add.l   d2,d3
  130.         cmp.w   Array.length(a1),d3
  131.         bhi     arraycopy_out
  132.         mulu    Array.elsize(a0),d2
  133.         mulu    Array.elsize(a0),d0
  134.         mulu    Array.elsize(a0),d1
  135.         move.l  Array.data(a0),a0
  136.         add.l   d0,a0
  137.         move.l  Array.data(a1),a1
  138.         add.l   d1,a1
  139.         systrap MemMove(a1.l,a0.l,d2.l)
  140. arraycopy_out:
  141.         unlk    a6
  142.         rts
  143.  
  144. java$lang$Throwable__fillInStackTrace:
  145.         rts
  146.