diff options
| author | Felix Fietkau <nbd@openwrt.org> | 2006-06-07 23:45:42 +0000 |
|---|---|---|
| committer | Felix Fietkau <nbd@openwrt.org> | 2006-06-07 23:45:42 +0000 |
| commit | 829c95db103151d07bcb3207a5a7eb0889feff5e (patch) | |
| tree | 2216b544d750db5ccf9b6e2c0e16efe30e02f558 /openwrt/target/linux/image/generic/lzma-loader/src/decompress.c | |
| parent | 11b8b8af73ac2d02d09cd61ce14d9f3d43058d89 (diff) | |
| download | mtk-20170518-829c95db103151d07bcb3207a5a7eb0889feff5e.zip mtk-20170518-829c95db103151d07bcb3207a5a7eb0889feff5e.tar.gz mtk-20170518-829c95db103151d07bcb3207a5a7eb0889feff5e.tar.bz2 | |
generic lzma loader: add support for memory copying, preserve prom arguments
SVN-Revision: 3908
Diffstat (limited to 'openwrt/target/linux/image/generic/lzma-loader/src/decompress.c')
| -rw-r--r-- | openwrt/target/linux/image/generic/lzma-loader/src/decompress.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/openwrt/target/linux/image/generic/lzma-loader/src/decompress.c b/openwrt/target/linux/image/generic/lzma-loader/src/decompress.c index f602276..4ed432d 100644 --- a/openwrt/target/linux/image/generic/lzma-loader/src/decompress.c +++ b/openwrt/target/linux/image/generic/lzma-loader/src/decompress.c @@ -106,6 +106,13 @@ void entry(unsigned long icache_size, unsigned long icache_lsize, { unsigned int i; /* temp value */ unsigned int osize; /* uncompressed size */ + volatile unsigned int arg0, arg1, arg2, arg3; + + /* restore argument registers */ + __asm__ __volatile__ ("ori %0, $12, 0":"=r"(arg0)); + __asm__ __volatile__ ("ori %0, $13, 0":"=r"(arg1)); + __asm__ __volatile__ ("ori %0, $14, 0":"=r"(arg2)); + __asm__ __volatile__ ("ori %0, $15, 0":"=r"(arg3)); ILzmaInCallback callback; CLzmaDecoderState vs; @@ -142,6 +149,6 @@ void entry(unsigned long icache_size, unsigned long icache_lsize, blast_icache(icache_size, icache_lsize); /* Jump to load address */ - ((void (*)(void)) KERNEL_ENTRY)(); + ((void (*)(int a0, int a1, int a2, int a3)) KERNEL_ENTRY)(arg0, arg1, arg2, arg3); } } |
