• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#------------------------------------------------------------------------------
2#
3# Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
4#
5# This program and the accompanying materials
6# are licensed and made available under the terms and conditions of the BSD License
7# which accompanies this distribution.  The full text of the license may be found at
8# http://opensource.org/licenses/bsd-license.php
9#
10# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12#
13#------------------------------------------------------------------------------
14
15#include <AsmMacroIoLib.h>
16
17/*
18  Semihosting operation request mechanism
19
20  SVC  0x123456  in ARM state (for all architectures)
21  SVC  0xAB in Thumb state (excluding ARMv7-M)
22  BKPT 0xAB for ARMv7-M (Thumb-2 only)
23
24  R0 - operation type
25  R1 - block containing all other parametes
26
27  lr - must be saved as svc instruction will cause an svc exception and write
28       the svc lr register. That happens to be the one we are using, so we must
29       save it or we will not be able to return.
30 */
31ASM_FUNC(GccSemihostCall)
32  stmfd   sp!, {lr}
33  svc     #0x123456
34  ldmfd   sp!, {lr}
35  bx      lr
36
37
38