// Copyright 2017 The Fuchsia Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "asm.h" // Call the C _dl_start, which returns a dl_start_return_t containing the // user entry point and its argument. Then jump to that entry point with // the argument in the first argument register (x0, where it was placed by // the C function's return), clearing the return address and frame pointer // registers so the user entry point is the base of the call stack. .hidden _start ENTRY(_start) bl _dl_start mov x29, #0 // frame pointer (FP) mov x30, #0 // return address (LR) br x1 END(_start)