Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libgloss/aarch64/crt0.S10
-rw-r--r--libgloss/arm/crt0.S9
2 files changed, 12 insertions, 7 deletions
diff --git a/libgloss/aarch64/crt0.S b/libgloss/aarch64/crt0.S
index ae6264d8a..ed4dafcb1 100644
--- a/libgloss/aarch64/crt0.S
+++ b/libgloss/aarch64/crt0.S
@@ -156,10 +156,11 @@
bl FUNCTION (_init)
/* Fetch and parse the command line. */
- adr x1, .Lcmdline /* Command line descriptor. */
+ ldr x1, .Lcmdline /* Command line descriptor. */
mov w0, #AngelSVC_Reason_GetCmdLine
AngelSVCAsm AngelSVC
ldr x8, .Lcmdline
+ ldr x8, [x8]
mov x0, #0 /* argc */
mov x1, sp /* argv */
@@ -239,9 +240,7 @@ FUNCTION (_cpu_init_hook):
.Lenvp:
GEN_DWORD env
.Lcmdline:
- GEN_DWORD CommandLine
- .dword 255
-
+ GEN_DWORD AngelSVCArgs
/* Workspace for Angel calls. */
.data
.align 3
@@ -258,3 +257,6 @@ StackBase: .dword 0
StackLimit: .dword 0
env: .dword 0 /* Dummy environment array */
CommandLine: .space 256,0 /* Maximum length of 255 chars handled. */
+AngelSVCArgs:
+ GEN_DWORD CommandLine
+ .dword 255
diff --git a/libgloss/arm/crt0.S b/libgloss/arm/crt0.S
index 35c306be0..48f3d6b1d 100644
--- a/libgloss/arm/crt0.S
+++ b/libgloss/arm/crt0.S
@@ -296,9 +296,10 @@ __change_mode:
movs r1, r0
#else
movs r0, #AngelSWI_Reason_GetCmdLine
- adr r1, .LC30 /* Space for command line */
+ ldr r1, .LC30 /* Space for command line */
AngelSWIAsm AngelSWI
ldr r1, .LC30
+ ldr r1, [r1]
#endif
/* Parse string at r1 */
movs r0, #0 /* count of arguments so far */
@@ -505,8 +506,7 @@ change_back:
#endif
#ifdef ARM_RDI_MONITOR
.LC30:
- .word CommandLine
- .word 255
+ .word AngelSWIArgs
.LC31:
.word __end__
@@ -519,6 +519,9 @@ HeapLimit: .word 0
__stack_base__: .word 0
StackLimit: .word 0
CommandLine: .space 256,0 /* Maximum length of 255 chars handled. */
+AngelSWIArgs:
+ .word CommandLine
+ .word 255
#endif
#ifdef __pe__