Source
...
Target
Commits (4)
  • Jeffrey Lee's avatar
    Add CortexA8 configuration file needed for OMAP3 FPASC builds · 86aa6a4d
    Jeffrey Lee authored
    Detail:
      riscos/s/CortexA8 - Made a copy of the Tungsten FPASC config file for use with Cortex/OMAP ROM builds
    Admin:
      Tested on rev C2 beagleboard.
      Not tagged - no functional changes.
    
    
    Version 4.28. Not tagged
    86aa6a4d
  • Jeffrey Lee's avatar
    Update to work with zero page relocation · 19a98c14
    Jeffrey Lee authored
    Detail:
      Unlike most modules which can just store the zero page pointers in their workspace, FPEmulator is a bit trickier since the zero page pointers are needed from within abort handlers and other places where the module workspace pointer is hard to come by (in fact, FPEmulator uses FPEAnchor to store the module workspace pointer)
      So rather than break/rework lots of perfectly good code, there are now three different FPEmulator builds available, selected via the new FPEAnchorType option:
      * FPEAnchorType=Low will select a build suitable for machines with FPEAnchor at its original location in zero page. This is the default for ROM builds.
      * FPEAnchorType=High will select a build suitable for the FPEAnchor location (&ffff0ff4) that's used with zero page relocation. Machines with relocated zero page must specify this option in their components file.
      * FPEAnchorType=Local will select a build suitable for softloading. Rather than rely on using a zero page location for storing the workspace pointer, the module just stores it within itself. This option is selected automatically for RAM builds and can't be overriden via the components file.
      File changes:
      riscos/Makefile - Reworked makefile to support the new options
      riscos/FPEMacros - Updated AdrWS macro to work with FPEAnchorType=Local
      riscos/options - For non-local builds, declare the appropriate value for FPEAnchor
      riscos/start - Use appropriate FPEAnchor initialisation code
    Admin:
      All 3 configs tested (ROM builds on BB-xM, RAM softload on Iyonix)
    
    
    Version 4.29. Tagged as 'FPASC-4_29'
    19a98c14
  • Ben Avison's avatar
    Added FPASC build configuration for Machine=CortexA9 · 7617f12c
    Ben Avison authored
    Detail:
      This is just a clone of the CortexA8 file.
    Admin:
      Submission from Willi Theiß.
      Retagged as 'FPASC-4_29' since other builds are unaffected.
    7617f12c
  • ROOL's avatar
    This commit was manufactured by cvs2git to create tag 'FPASC-4_29'. · 0b6ce01b
    ROOL authored
    Sprout from master 2011-09-12 18:39:01 UTC Ben Avison <bavison@gitlab.riscosopen.org> '  Added FPASC build configuration for Machine=CortexA9'
    Delete:
        riscos/s/Tungsten2
    0b6ce01b
......@@ -11,13 +11,13 @@
GBLS Module_HelpVersion
GBLS Module_ComponentName
GBLS Module_ComponentPath
Module_MajorVersion SETS "4.28"
Module_Version SETA 428
Module_MajorVersion SETS "4.29"
Module_Version SETA 429
Module_MinorVersion SETS ""
Module_Date SETS "04 Dec 2009"
Module_ApplicationDate SETS "04-Dec-09"
Module_Date SETS "06 Aug 2011"
Module_ApplicationDate SETS "06-Aug-11"
Module_ComponentName SETS "FPASC"
Module_ComponentPath SETS "closed/RiscOS/Sources/HWSupport/FPASC"
Module_FullVersion SETS "4.28"
Module_HelpVersion SETS "4.28 (04 Dec 2009)"
Module_ComponentPath SETS "mixed/RiscOS/Sources/HWSupport/FPASC"
Module_FullVersion SETS "4.29"
Module_HelpVersion SETS "4.29 (06 Aug 2011)"
END
/* (4.28)
/* (4.29)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 4.28
#define Module_MajorVersion_CMHG 4.29
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 04 Dec 2009
#define Module_Date_CMHG 06 Aug 2011
#define Module_MajorVersion "4.28"
#define Module_Version 428
#define Module_MajorVersion "4.29"
#define Module_Version 429
#define Module_MinorVersion ""
#define Module_Date "04 Dec 2009"
#define Module_Date "06 Aug 2011"
#define Module_ApplicationDate "04-Dec-09"
#define Module_ApplicationDate "06-Aug-11"
#define Module_ComponentName "FPASC"
#define Module_ComponentPath "closed/RiscOS/Sources/HWSupport/FPASC"
#define Module_ComponentPath "mixed/RiscOS/Sources/HWSupport/FPASC"
#define Module_FullVersion "4.28"
#define Module_HelpVersion "4.28 (04 Dec 2009)"
#define Module_LibraryVersionInfo "4:28"
#define Module_FullVersion "4.29"
#define Module_HelpVersion "4.29 (06 Aug 2011)"
#define Module_LibraryVersionInfo "4:29"
......@@ -50,29 +50,32 @@ WFLAGS = ~c~v
# Program specific options:
#
COMPONENT = FPEmulator
TARGET = rm.${MACHINE}.FPEmulator
TARGET_ROM = rm.${MACHINE}.FPEmulator
TARGET_RAM = rm.${MACHINE}.FPERAM
EXPORTS = ${EXP_HDR}.FPEmulator
FPEANCHOR ?= Low
#
# Generic rules:
#
rom: ${TARGET}
rom: ${TARGET_ROM}
@echo ${COMPONENT}: rom module built
export: ${EXPORTS}
@echo ${COMPONENT}: export complete
install: ${TARGET}
install: ${TARGET_RAM}
${MKDIR} ${INSTDIR}
${CP} ${TARGET} ${INSTDIR}.${COMPONENT} ${CPFLAGS}
${CP} ${TARGET_RAM} ${INSTDIR}.${COMPONENT} ${CPFLAGS}
@echo ${COMPONENT}: ram module installed
install_rom: ${TARGET}
${CP} ${TARGET} ${INSTDIR}.${COMPONENT} ${CPFLAGS}
install_rom: ${TARGET_ROM}
${CP} ${TARGET_ROM} ${INSTDIR}.${COMPONENT} ${CPFLAGS}
@echo ${COMPONENT}: rom module installed
clean:
${RM} ${TARGET}
${RM} ${TARGET_ROM}
${RM} ${TARGET_RAM}
${WIPE} o.* ${WFLAGS}
@echo ${COMPONENT}: cleaned
......@@ -82,12 +85,19 @@ resources:
${CP} LocalRes:Messages ${RESDIR}.${COMPONENT}.Messages ${CPFLAGS}
@echo ${COMPONENT}: resource files copied
${TARGET}: o.fpe
${TARGET_RAM}: o.fpe_ram
${MKDIR} rm.${MACHINE}
${LD} -rmf -o $@ o.fpe
${LD} -rmf -o $@ o.fpe_ram
o.fpe: s.${MACHINE}
${AS} -I Hdr:t.^ ${ASFLAGS} -APCS ${FPE_APCS} -CPU 5 s.${MACHINE} $@
${TARGET_ROM}: o.fpe_rom
${MKDIR} rm.${MACHINE}
${LD} -rmf -o $@ o.fpe_rom
o.fpe_ram: s.${MACHINE}
${AS} -I Hdr:t.^ ${ASFLAGS} -APCS ${FPE_APCS} -PD "FPEAnchorType SETS \"Local\"" s.${MACHINE} $@
o.fpe_rom: s.${MACHINE}
${AS} -I Hdr:t.^ ${ASFLAGS} -APCS ${FPE_APCS} -PD "FPEAnchorType SETS \"${FPEANCHOR}\"" s.${MACHINE} $@
${EXP_HDR}.FPEmulator: hdr.FPEmulator
${CP} hdr.FPEmulator $@ ${CPFLAGS}
......
; Copyright 2006 Castle Technology Ltd
; Copyright 2010 Castle Technology Ltd
;
; Licensed under the Apache License, Version 2.0 (the "License");
; you may not use this file except in compliance with the License.
......
; Copyright 2011 Castle Technology 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.
;
; -*-As-*-
;
; > riscos.s.Ursula
;
; Copyright (c) 1994 Acorn Computers Ltd., Cambridge, England.
;
; Assembler source for FPA support code and emulator
; ==================================================
; Header file for the riscos veneer.
;
GBLS VeneerName ;The name of the veneer to use
VeneerName SETS "riscos"
GBLS CoreDir
CoreDir SETS "^.coresrc.s." ;RISC OS uses "." as the directory
; separator character
GBLS VeneerDir
VeneerDir SETS "^.vensrc.$VeneerName.."
;NB first "." after "$VeneerName"
; terminates the variable name, the
; second is the directory separator
GBLS FileExt
FileExt SETS "" ;RISC OS doesn't use filename
; extensions
;
; Controls for veneer sources
;
GBLS Flavour
Flavour SETS "SoftOnly" ;no FPA support for Iyonix (aimed at XScale)
GBLL Arm600
Arm600 SETL {TRUE}
GBLL Use64bitMultiply
Use64bitMultiply SETL {TRUE}
GBLL UseCLZ
UseCLZ SETL {TRUE}
LNK $CoreDir.main$FileExt
......@@ -15,6 +15,10 @@
;
MACRO
$label AdrWS $reg
[ FPEAnchorType = "Local"
ADRL $reg, FPEAnchor
LDR $reg, [$reg]
|
[ FPEAnchor > &1000
$label LDR $reg, =FPEAnchor
LDR $reg, [$reg]
......@@ -22,6 +26,7 @@ $label LDR $reg, =FPEAnchor
$label MOV $reg, #0
LDR $reg, [$reg, #FPEAnchor]
]
]
MEND
;
......
......@@ -31,6 +31,8 @@ XMessageTrans_ErrorLookup * &61506
GET EnvNumbers
GET $VeneerDir.FPEMacros
GET $VeneerDir.^.^.VersionASM
GET PublicWS
GET OSRSI6
[ Arm600
;
......@@ -120,11 +122,6 @@ XOS_ChangeEnvironment * &20040
;
ErrorBase_FloatingPoint * &80000200
;
; Definition from Hdr:NewSpace
;
FPEAnchor * &ff4
;
; Definition from Hdr:PublicWS
;
......@@ -223,6 +220,22 @@ NoTranscendentals SETL {FALSE}
NoPacked SETL {FALSE}
DynamicRounding SETL {FALSE}
; FPEAnchorType can either be 'Low', 'High' or 'Local'
; 'Low' is for builds with zero page present
; 'High' is for builds with zero page relocated to &FFFF0000
; 'Local' is for RAM builds with unknown zero page location. Instead of storing our workspace pointer in zero page we'll store it inside the module.
[ FPEAnchorType = "Low"
FPEAnchor * Legacy_FPEAnchor
|
[ FPEAnchorType = "High"
FPEAnchor * &ffff0000 + Legacy_FPEAnchor
|
ASSERT FPEAnchorType = "Local"
]
]
END
;
......
......@@ -82,6 +82,11 @@ FPEFlags
DCD 1 ; 32-bit compatible
]
[ FPEAnchorType = "Local"
FPEAnchor
DCD 0
]
;
; Despite what the current issue of the PRMs claims, ALL versions of
; the FPEmulator, whether hardware only, hardware/software, or
......@@ -332,8 +337,13 @@ FPEInit ROUT
; workspace pointer claimed if necessary, save it away in our
; private piece of page 0, ready for retrieval during traps.
;
[ FPEAnchorType = "Local"
STR r10, FPEAnchor
|
LDR r0, =FPEAnchor
STR r10, [r0]
]
MOV r0, #0
STR r10, [r0, #FPEAnchor]
STR r0, OldVector
STR r0, CoreVector
......@@ -341,7 +351,7 @@ FPEInit ROUT
[ Arm600
MOV r0, #6
MOV r1, #0
MOV r2, #16
MOV r2, #OSRSI6_SVCSTK
SWI XOS_ReadSysInfo
LDRVS r2, =SVCSTK
|
......