Small atari cleanups.

This commit is contained in:
Markus F.X.J. Oberhumer
2006-11-13 10:51:45 +01:00
parent be235ddc38
commit 396a3ad2fc
5 changed files with 31 additions and 28 deletions
+3 -3
View File
@@ -28,8 +28,8 @@
#define NRV_LOADER_SIZE 22678
#define NRV_LOADER_ADLER32 0x4eff9534
#define NRV_LOADER_CRC32 0x18a1e612
#define NRV_LOADER_ADLER32 0xff879594
#define NRV_LOADER_CRC32 0x0fa53df8
unsigned char nrv_loader[22678] = {
127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */
@@ -396,7 +396,7 @@ unsigned char nrv_loader[22678] = {
0,255,255,255, 98, 8,185,239, 0, 84,103, 24, 82,140,153,239, /* 0x1690 */
0,116, 32,111, 0,124, 32,140, 34,111, 0,136, 34,175, 0, 50, /* 0x16a0 */
112, 0, 96, 2,112, 1, 76,223, 92,252, 79,239, 0, 68,118, 0, /* 0x16b0 */
79,234,255, 0, 46,195, 46,195, 46,195, 46,195,190,143,102,244, /* 0x16c0 */
79,234,255, 96, 46,195, 46,195, 46,195, 46,195,190,143,102,244, /* 0x16c0 */
32, 78,122, 1, 34, 68,211,216,211,195,217,145, 22, 24,103, 10, /* 0x16d0 */
182, 5,102,244, 67,233, 0,254, 96,242,124, 0, 60, 60, 0, 0, /* 0x16e0 */
44, 60, 0, 0, 0, 0, 78,215, 65,239, 0, 4, 50, 24, 48, 24, /* 0x16f0 */
+15 -10
View File
@@ -48,17 +48,15 @@ section lzma.init
move.l sp,a2
// move.l (a2)+,-(sp) // &outSizeProcessed
pea (a2) // &outSizeProcessed
// push 32 bytes on stack
pea (a2) // &outSizeProcessed
move.l #lzma_u_len,-(sp) // outSize
move.l d4,-(sp) // out
// move.l (a2)+,-(sp) // &inSizeProcessed
pea 4(a2) // &inSizeProcessed
pea 4(a2) // &inSizeProcessed
move.l #lzma_c_len,-(sp) // inSize
move.l a3,-(sp) // in
// move.l (a2),-(sp) // &CLzmaDecoderState
pea 8(a2) // &CLzmaDecoderState
move.l d0,-(sp) // dummy for call
move.l d0,-(sp) // dummy return address (instead of call)
// hardwired LzmaDecodeProperties()
move.l #lzma_properties,8(a2) // lc, lp, pb, dummy
@@ -75,14 +73,21 @@ section lzma.small
section lzma.finish
moveq.l #0,d3
// add.l 4(a2),XX // inSizeProcessed
// add.l (a2),XX // outSizeProcessed
//add.l 4(a2),a3 // inSizeProcessed
//add.l (a2),d4 // outSizeProcessed
#if 0
move.l d7,sp // restore stack
#else
// Partially clear exposed stack (only because of paranoia.)
lea -256(a2),sp
// Clear dirty stack (also see m68000/tmp/lzma_d_c[fs].out.disasm)
// 32 bytes pushed above
// 68 bytes local stack in LzmaDecode
// 40 bytes for saving 10 registers in LzmaDecode
// 12 bytes for calling __mulsi3
// 152 *TOTAL* (round up by 16 to 160)
lea -160(a2),sp
.clearstack2:
move.l d3,(sp)+
move.l d3,(sp)+
+6 -7
View File
@@ -64,7 +64,6 @@ p_flags equ $28 ; .l memory usage flags
p_env equ $2c ; .l pointer to environment string
*/
p_tbase = 8
/*
; long living registers:
@@ -210,7 +209,7 @@ section entry
// we also setup d4 and a6 here, and we prepare a4
move.l d0,a2 // a2 = basepage
addq.l #p_tbase,a2
addq.l #8,a2
move.l (a2)+,a6
move.l a6,d4 // d4 = p_tbase
move.l #up11,(a2) // p_tlen
@@ -270,8 +269,8 @@ section loop1_dbra
section loop2.fast
// loop2 - copy the remaining 4..160 bytes
moveq.l #loop2_count,d0
loop2: move.l -(a4),-(a3)
dbra d0,loop2
1: move.l -(a4),-(a3)
dbra d0,1b
section loop2.small
// loop2 - EMPTY section
@@ -292,9 +291,9 @@ section copy_to_stack
//moveq.l #((clear_bss_end-clear_bss)/2-1),d5
moveq.l #copy_to_stack_len,d5
loop6: move.w -(a2),-(ASTACK)
1: move.w -(a2),-(ASTACK)
subq.l #1,d5
bccs loop6
bccs 1b
// note: d5.l is now -1 (needed for decompressor)
@@ -411,7 +410,7 @@ section clear_dirty_stack
// ------------- clear the dirty stack
// clear down to clear_bss(pc) + 32 extra longs
//moveq.l #((L(loop)-clear_bss+3)/4+32-1),d0
////moveq.l #((clear_dirty_stack_loop-clear_bss+3)/4+32-1),d0
moveq.l #clear_dirty_stack_len,d0
lea 1f(pc),a0
GL(clear_dirty_stack_loop) // for clear_dirty_stack_len