; Copyright 1996 Acorn Computers Ltd
;
; Licensed under the Apache License, Version 2.0 (the "License");
; you may not use this file except in compliance with the License.
; You may obtain a copy of the License at
;
;     http://www.apache.org/licenses/LICENSE-2.0
;
; Unless required by applicable law or agreed to in writing, software
; distributed under the License is distributed on an "AS IS" BASIS,
; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
; See the License for the specific language governing permissions and
; limitations under the License.
;

	GET	Hdr:ListOpts
	GET	Hdr:Machine.<Machine>
	GET	Hdr:CPU.Generic26
	GET	Hdr:Macros
	GET	Hdr:SWIs
	GET	Hdr:RISCOS

        GBLL    StrongARM
	GBLL	SASTMhatbroken

StrongARM	SETL :DEF: AMBKernel
SASTMhatbroken	SETL {TRUE} :LAND: StrongARM

  [ StrongARM
        ;macro to synchronise to $Ncodewords words of code on (FD) stack
        MACRO
        SyncStackCode $Ncodewords
        STMFD  sp!,{r0-r2,lr}
        MOV    r0,#1                    ;means range specified in r1,r2
        ADD    r1,sp,#4*4               ;start address (allowing for stacked r0-r2,lr)
        ADD    r2,r1,#($Ncodewords-1)*4 ;end address (inclusive) for $Ncodewords words of code
        SWI    XOS_SynchroniseCodeAreas ;do the necessary
        LDMFD  sp!,{r0-r2,lr}
        MEND
  ]

        END