deep

a Cross Development Platform for Java

User Tools

Site Tools


dev:crosscompiler:backend:linker32

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
dev:crosscompiler:backend:linker32 [2021/07/29 11:32] – [Create System Table] ursgrafdev:crosscompiler:backend:linker32 [2022/12/20 10:00] (current) ursgraf
Line 25: Line 25:
 When the system ist starting up, the [[dev:rts:start|Runtime System]] reads the start addresses of the constant block for all classes from the //System Table// (see below). With the predefined offset //cblkClinitAddrOffset// the address of the class constructor can be fetched in order to load a class. With another offset the heap manager can read the global references of this class. This information is used by the garbage collection. //codeBase// holds the start address of code of a class whereas //codeSize// is the size of the code. Methods, which are defined in the configuration as system methods and which are assigned a fixed offset are excluded from //codeSize// (Exception Handlers). When the system ist starting up, the [[dev:rts:start|Runtime System]] reads the start addresses of the constant block for all classes from the //System Table// (see below). With the predefined offset //cblkClinitAddrOffset// the address of the class constructor can be fetched in order to load a class. With another offset the heap manager can read the global references of this class. This information is used by the garbage collection. //codeBase// holds the start address of code of a class whereas //codeSize// is the size of the code. Methods, which are defined in the configuration as system methods and which are assigned a fixed offset are excluded from //codeSize// (Exception Handlers).
  
-In the compiler the constant block is modeled as linked list of ''ch.ntb.inf.deep.linker.ConstBlkEntry''. Depending on the type of entry one of the following classes is used.+In the compiler the constant block is modeled as linked list of ''org.deepjava.linker.ConstBlkEntry''. Depending on the type of entry one of the following classes is used.
   * **''AddressEntry''**: For entries representing an address.   * **''AddressEntry''**: For entries representing an address.
   * **''ConstantEntry''**: For entries representing a constant (StdConstant).   * **''ConstantEntry''**: For entries representing a constant (StdConstant).
dev/crosscompiler/backend/linker32.txt · Last modified: 2022/12/20 10:00 by ursgraf