From 09c8b0332eb46ff7798d422e27b7d2eaac16cca5 Mon Sep 17 00:00:00 2001 From: Anton Blanchard Date: Tue, 26 Oct 2021 12:21:26 +1100 Subject: [PATCH] Cut down hello_world to fit in 4kB --- hello_world/head.S | 39 --- hello_world/hello_world.bin | Bin 6280 -> 2696 bytes hello_world/hello_world.elf | Bin 87184 -> 81136 bytes hello_world/hello_world.hex | 534 +++--------------------------------- hello_world/powerpc.lds | 4 +- 5 files changed, 45 insertions(+), 532 deletions(-) diff --git a/hello_world/head.S b/hello_world/head.S index 6357606..4f11987 100644 --- a/hello_world/head.S +++ b/hello_world/head.S @@ -66,42 +66,3 @@ boot_entry: mtctr %r12, bctrl b . - -#define EXCEPTION(nr) \ - .= nr ;\ - b . - - /* More exception stubs */ - EXCEPTION(0x300) - EXCEPTION(0x380) - EXCEPTION(0x400) - EXCEPTION(0x480) - EXCEPTION(0x500) - EXCEPTION(0x600) - EXCEPTION(0x700) - EXCEPTION(0x800) - EXCEPTION(0x900) - EXCEPTION(0x980) - EXCEPTION(0xa00) - EXCEPTION(0xb00) - EXCEPTION(0xc00) - EXCEPTION(0xd00) - EXCEPTION(0xe00) - EXCEPTION(0xe20) - EXCEPTION(0xe40) - EXCEPTION(0xe60) - EXCEPTION(0xe80) - EXCEPTION(0xf00) - EXCEPTION(0xf20) - EXCEPTION(0xf40) - EXCEPTION(0xf60) - EXCEPTION(0xf80) -#if 0 - EXCEPTION(0x1000) - EXCEPTION(0x1100) - EXCEPTION(0x1200) - EXCEPTION(0x1300) - EXCEPTION(0x1400) - EXCEPTION(0x1500) - EXCEPTION(0x1600) -#endif diff --git a/hello_world/hello_world.bin b/hello_world/hello_world.bin index e4b14ca6f70843d9d43a149c8d18fb1f22072fe5..a60ab21392f4d79e0503d5ad6d32b0c0ccf5c961 100755 GIT binary patch delta 226 zcmeA$>=4}$$jHsolemnzvsRI%!EX~QGvnq7A`2NO2}m+_O_mbK2a7@!olOqFzvW^B{O9cmz&B)M_ zz`~$uxrT+IW|eWERWc|Nk3+ zGze$_u>%knOjZ@qW?V8kP()aA2T)#z5hw@*AU#un_`<*c|1&lxGWIi0lIQ>cLPb3r delta 370 zcmeAW?J(RB$jC3ylemnzvsRI%!HG&BNi1DY6^TQiA8l5xglDVBU7$;T=-c>zl9fLrA`J06&(hKPJIx+qe1DV0mD2;6^159CI$yf1_osv4j`M6!7Gu4LDO;#3q#E+ ze}`HH29TE>EFb*;?>)JJ-2v#ggY5c@9g{z@3yc2v^Z$PX&@>Rx0AdFqPMIvpp{+aP v@BjZG5fBgn;szjI0~FI?1TugCBsK+zkNo@pzhrYF<9w#c1&mK7adiLy))H&< diff --git a/hello_world/hello_world.elf b/hello_world/hello_world.elf index 5eeedc452464d33864fa4a2deb5dd10f5eccbfd1..8f2d24bfdd7c12c6eb5958b6363f817cf3180205 100755 GIT binary patch literal 81136 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 VbQ5Z#sX7J!w+Xryg%m