OLD | NEW |
1 /* Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 /* Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 * Use of this source code is governed by a BSD-style license that can be | 2 * Use of this source code is governed by a BSD-style license that can be |
3 * found in the LICENSE file. | 3 * found in the LICENSE file. |
4 * | 4 * |
5 * This is a standalone program that loads and runs the dynamic linker. | 5 * This is a standalone program that loads and runs the dynamic linker. |
6 * This program itself must be linked statically. To keep it small, it's | 6 * This program itself must be linked statically. To keep it small, it's |
7 * written to avoid all dependencies on libc and standard startup code. | 7 * written to avoid all dependencies on libc and standard startup code. |
8 * Hence, this should be linked using -nostartfiles. It must be compiled | 8 * Hence, this should be linked using -nostartfiles. It must be compiled |
9 * with -fno-stack-protector to ensure the compiler won't emit code that | 9 * with -fno-stack-protector to ensure the compiler won't emit code that |
10 * presumes some special setup has been done. | 10 * presumes some special setup has been done. |
(...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
566 "mov r4, sp\n" /* Save starting SP in r4. */ | 566 "mov r4, sp\n" /* Save starting SP in r4. */ |
567 "mov r0, sp\n" /* Argument: stack block. */ | 567 "mov r0, sp\n" /* Argument: stack block. */ |
568 "bl do_load\n" | 568 "bl do_load\n" |
569 "mov sp, r4\n" /* Restore the saved SP. */ | 569 "mov sp, r4\n" /* Restore the saved SP. */ |
570 "blx r0\n" /* Jump to the entry point. */ | 570 "blx r0\n" /* Jump to the entry point. */ |
571 ".popsection" | 571 ".popsection" |
572 ); | 572 ); |
573 #else | 573 #else |
574 # error "Need stack-preserving _start code for this architecture!" | 574 # error "Need stack-preserving _start code for this architecture!" |
575 #endif | 575 #endif |
OLD | NEW |