summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn van Groningen2007-09-05 14:39:45 +0000
committerJohn van Groningen2007-09-05 14:39:45 +0000
commite7e4ec8bcf7082b58ca4d82241e0b7a04cc960a8 (patch)
tree0f77373189fd2e598f32cf00d42029d6d190f0c1
parentadd volatile to clean_exception_handler argument type to (diff)
add apupd code
-rw-r--r--iap.s581
1 files changed, 581 insertions, 0 deletions
diff --git a/iap.s b/iap.s
index 2ac031f..b2df665 100644
--- a/iap.s
+++ b/iap.s
@@ -1796,3 +1796,584 @@ build_node_cp_a:
build_node_gc:
call collect_2l
jmp build_node_gc_r
+
+ .globl apupd_1
+ .globl apupd_2
+ .globl apupd_3
+ .globl apupd_4
+ .globl apupd_5
+ .globl apupd_6
+ .globl apupd_7
+ .globl apupd_8
+ .globl apupd_9
+ .globl apupd_10
+ .globl apupd_11
+ .globl apupd_12
+ .globl apupd_13
+ .globl apupd_14
+ .globl apupd_15
+ .globl apupd_16
+ .globl apupd_17
+ .globl apupd_18
+ .globl apupd_19
+ .globl apupd_20
+ .globl apupd_21
+ .globl apupd_22
+ .globl apupd_23
+ .globl apupd_24
+ .globl apupd_25
+ .globl apupd_26
+ .globl apupd_27
+ .globl apupd_28
+ .globl apupd_29
+ .globl apupd_30
+ .globl apupd_31
+ .globl apupd_32
+ .globl __indirection
+
+apupd_1:
+ cmpl $apupd_upd,(sp)
+ lea ap_1,a2
+ jne ap_upd
+
+ movl -4(a3),a2
+ movl -8(a3),d0
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ap_1:
+ movl (a1),a2
+ jmp *2(a2)
+
+apupd_2:
+ cmpl $apupd_upd,(sp)
+ lea ap_2,a2
+ jne ap_upd
+
+ movl -8(a3),a2
+ movl -12(a3),d0
+ movl -4(a3),d1
+ movl d1,-8(a3)
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_2
+
+apupd_3:
+ cmpl $apupd_upd,(sp)
+ lea ap_3,a2
+ jne ap_upd
+
+ movl -12(a3),a2
+ movl -16(a3),d0
+ movl -8(a3),d1
+ movl d1,-12(a3)
+ movl -4(a3),d1
+ movl d1,-8(a3)
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_3
+
+apupd_4:
+ cmpl $apupd_upd,(sp)
+ lea ap_4,a2
+ jne ap_upd
+
+ movl -16(a3),a2
+ movl -20(a3),d0
+ movl -12(a3),d1
+ movl d1,-16(a3)
+ movl -8(a3),d1
+ movl d1,-12(a3)
+ movl -4(a3),d1
+ movl d1,-8(a3)
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_4
+
+apupd_5:
+ cmpl $apupd_upd,(sp)
+ lea ap_5,a2
+ jne ap_upd
+
+ movl -20(a3),a2
+ movl -24(a3),d0
+ movl -16(a3),d1
+ movl d1,-20(a3)
+ movl -12(a3),d1
+ movl d1,-16(a3)
+ movl -8(a3),d1
+ movl d1,-12(a3)
+ movl -4(a3),d1
+ movl d1,-8(a3)
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_5
+
+apupd_6:
+ cmpl $apupd_upd,(sp)
+ lea ap_6,a2
+ jne ap_upd
+
+ movl -24(a3),a2
+ movl -28(a3),d0
+ movl -20(a3),d1
+ movl d1,-24(a3)
+ movl -16(a3),d1
+ movl d1,-20(a3)
+ movl -12(a3),d1
+ movl d1,-16(a3)
+ movl -8(a3),d1
+ movl d1,-12(a3)
+ movl -4(a3),d1
+ movl d1,-8(a3)
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_6
+
+apupd_7:
+ cmpl $apupd_upd,(sp)
+ lea ap_7,a2
+ jne ap_upd
+
+ movl -28(a3),a2
+ movl -32(a3),d0
+ call move_8
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_7
+
+apupd_8:
+ cmpl $apupd_upd,(sp)
+ lea ap_8,a2
+ jne ap_upd
+
+ movl -32(a3),a2
+ movl -36(a3),d0
+ call move_9
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_8
+
+apupd_9:
+ cmpl $apupd_upd,(sp)
+ lea ap_9,a2
+ jne ap_upd
+
+ movl -36(a3),a2
+ movl -40(a3),d0
+ call move_10
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_9
+
+apupd_10:
+ cmpl $apupd_upd,(sp)
+ lea ap_10,a2
+ jne ap_upd
+
+ movl -40(a3),a2
+ movl -44(a3),d0
+ call move_11
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_10
+
+apupd_11:
+ cmpl $apupd_upd,(sp)
+ lea ap_11,a2
+ jne ap_upd
+
+ movl -44(a3),a2
+ movl -48(a3),d0
+ call move_12
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_11
+
+apupd_12:
+ cmpl $apupd_upd,(sp)
+ lea ap_12,a2
+ jne ap_upd
+
+ movl -48(a3),a2
+ movl -52(a3),d0
+ call move_13
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_12
+
+apupd_13:
+ cmpl $apupd_upd,(sp)
+ lea ap_13,a2
+ jne ap_upd
+
+ movl -52(a3),a2
+ movl -56(a3),d0
+ call move_14
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_13
+
+apupd_14:
+ cmpl $apupd_upd,(sp)
+ lea ap_14,a2
+ jne ap_upd
+
+ movl -56(a3),a2
+ movl -60(a3),d0
+ call move_15
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_14
+
+apupd_15:
+ cmpl $apupd_upd,(sp)
+ lea ap_15,a2
+ jne ap_upd
+
+ movl -60(a3),a2
+ movl -64(a3),d0
+ call move_16
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_15
+
+apupd_16:
+ cmpl $apupd_upd,(sp)
+ lea ap_16,a2
+ jne ap_upd
+
+ movl -64(a3),a2
+ movl -68(a3),d0
+ call move_17
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_16
+
+apupd_17:
+ cmpl $apupd_upd,(sp)
+ lea ap_17,a2
+ jne ap_upd
+
+ movl -68(a3),a2
+ movl -72(a3),d0
+ call move_18
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_17
+
+apupd_18:
+ cmpl $apupd_upd,(sp)
+ lea ap_18,a2
+ jne ap_upd
+
+ movl -72(a3),a2
+ movl -76(a3),d0
+ call move_19
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_18
+
+apupd_19:
+ cmpl $apupd_upd,(sp)
+ lea ap_19,a2
+ jne ap_upd
+
+ movl -76(a3),a2
+ movl -80(a3),d0
+ call move_20
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_19
+
+apupd_20:
+ cmpl $apupd_upd,(sp)
+ lea ap_20,a2
+ jne ap_upd
+
+ movl -80(a3),a2
+ movl -84(a3),d0
+ call move_21
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_20
+
+apupd_21:
+ cmpl $apupd_upd,(sp)
+ lea ap_21,a2
+ jne ap_upd
+
+ movl -84(a3),a2
+ movl -88(a3),d0
+ call move_22
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_21
+
+apupd_22:
+ cmpl $apupd_upd,(sp)
+ lea ap_22,a2
+ jne ap_upd
+
+ movl -88(a3),a2
+ movl -92(a3),d0
+ call move_23
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_22
+
+apupd_23:
+ cmpl $apupd_upd,(sp)
+ lea ap_23,a2
+ jne ap_upd
+
+ movl -92(a3),a2
+ movl -96(a3),d0
+ call move_24
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_23
+
+apupd_24:
+ cmpl $apupd_upd,(sp)
+ lea ap_24,a2
+ jne ap_upd
+
+ movl -96(a3),a2
+ movl -100(a3),d0
+ call move_25
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_24
+
+apupd_25:
+ cmpl $apupd_upd,(sp)
+ lea ap_25,a2
+ jne ap_upd
+
+ movl -100(a3),a2
+ movl -104(a3),d0
+ call move_26
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_25
+
+apupd_26:
+ cmpl $apupd_upd,(sp)
+ lea ap_26,a2
+ jne ap_upd
+
+ movl -104(a3),a2
+ movl -108(a3),d0
+ call move_27
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_26
+
+apupd_27:
+ cmpl $apupd_upd,(sp)
+ lea ap_27,a2
+ jne ap_upd
+
+ movl -108(a3),a2
+ movl -112(a3),d0
+ call move_28
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_27
+
+apupd_28:
+ cmpl $apupd_upd,(sp)
+ lea ap_28,a2
+ jne ap_upd
+
+ movl -112(a3),a2
+ movl -116(a3),d0
+ call move_29
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_28
+
+apupd_29:
+ cmpl $apupd_upd,(sp)
+ lea ap_29,a2
+ jne ap_upd
+
+ movl -116(a3),a2
+ movl -120(a3),d0
+ call move_30
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_29
+
+apupd_30:
+ cmpl $apupd_upd,(sp)
+ lea ap_30,a2
+ jne ap_upd
+
+ movl -120(a3),a2
+ movl -124(a3),d0
+ call move_31
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_30
+
+apupd_31:
+ cmpl $apupd_upd,(sp)
+ lea ap_31,a2
+ jne ap_upd
+
+ movl -124(a3),a2
+ movl -128(a3),d0
+ call move_32
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_31
+
+apupd_32:
+ cmpl $apupd_upd,(sp)
+ lea ap_32,a2
+ jne ap_upd
+
+ movl -128(a3),a2
+ movl -132(a3),d0
+ call move_33
+ subl $4,a3
+ movl $__indirection,(a2)
+ movl d0,4(a2)
+ jmp ap_32
+
+ap_upd:
+ call *a2
+apupd_upd:
+ movl -4(a3),a1
+ subl $4,a3
+ movl (a0),d0
+ movl d0,(a1)
+ movl 4(a0),d0
+ movl d0,4(a1)
+ movl 8(a0),d0
+ movl a1,a0
+ movl d0,8(a1)
+ ret
+
+move_33:
+ movl -124(a3),d1
+ movl d1,-128(a3)
+move_32:
+ movl -120(a3),d1
+ movl d1,-124(a3)
+move_31:
+ movl -116(a3),d1
+ movl d1,-120(a3)
+move_30:
+ movl -112(a3),d1
+ movl d1,-116(a3)
+move_29:
+ movl -108(a3),d1
+ movl d1,-112(a3)
+move_28:
+ movl -104(a3),d1
+ movl d1,-108(a3)
+move_27:
+ movl -100(a3),d1
+ movl d1,-104(a3)
+move_26:
+ movl -96(a3),d1
+ movl d1,-100(a3)
+move_25:
+ movl -92(a3),d1
+ movl d1,-96(a3)
+move_24:
+ movl -88(a3),d1
+ movl d1,-92(a3)
+move_23:
+ movl -84(a3),d1
+ movl d1,-88(a3)
+move_22:
+ movl -80(a3),d1
+ movl d1,-84(a3)
+move_21:
+ movl -76(a3),d1
+ movl d1,-80(a3)
+move_20:
+ movl -72(a3),d1
+ movl d1,-76(a3)
+move_19:
+ movl -68(a3),d1
+ movl d1,-72(a3)
+move_18:
+ movl -64(a3),d1
+ movl d1,-68(a3)
+move_17:
+ movl -60(a3),d1
+ movl d1,-64(a3)
+move_16:
+ movl -56(a3),d1
+ movl d1,-60(a3)
+move_15:
+ movl -52(a3),d1
+ movl d1,-56(a3)
+move_14:
+ movl -48(a3),d1
+ movl d1,-52(a3)
+move_13:
+ movl -44(a3),d1
+ movl d1,-48(a3)
+move_12:
+ movl -40(a3),d1
+ movl d1,-44(a3)
+move_11:
+ movl -36(a3),d1
+ movl d1,-40(a3)
+move_10:
+ movl -32(a3),d1
+ movl d1,-36(a3)
+move_9:
+ movl -28(a3),d1
+ movl d1,-32(a3)
+move_8:
+ movl -24(a3),d1
+ movl d1,-28(a3)
+move_7:
+ movl -20(a3),d1
+ movl d1,-24(a3)
+ movl -16(a3),d1
+ movl d1,-20(a3)
+ movl -12(a3),d1
+ movl d1,-16(a3)
+ movl -8(a3),d1
+ movl d1,-12(a3)
+ movl -4(a3),d1
+ movl d1,-8(a3)
+ ret