deep

a Cross Development Platform for Java

User Tools

Site Tools


dev:crosscompiler:backend_ppc:code_generator

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
dev:crosscompiler:backend_ppc:code_generator [2018/11/06 15:58] – [Stackframe] ursgrafdev:crosscompiler:backend_ppc:code_generator [2019/07/09 14:36] – [Compiler Specific Subroutines] ursgraf
Line 48: Line 48:
   * Delegation of interface methods: address of this method inserted into the type descriptor by the linker   * Delegation of interface methods: address of this method inserted into the type descriptor by the linker
   * Exception handling: call to this methods inserted by the code generator   * Exception handling: call to this methods inserted by the code generator
 +
 +==== Practical Implementation of Searching the Correct Interface Method ====
 +Case 2 needs 3 auxiliary registers. At compile time we cannot reserve such auxiliary registers as these registers must always be the same. Therefore, we use parameter registers. They are volatile and can be freely used though this means, that interface methods can pass less parameters, which is generally true. If not true, the compiler will report.\\
 +R0 holds the necessary information for the delegate method. The first two bytes are the ID of the sought-after interface, tho last to bytes contain the method offset. Loading of R0 should happen after parameter copying as R0 is used then. 
 +
 +
dev/crosscompiler/backend_ppc/code_generator.txt · Last modified: 2022/12/20 15:52 by ursgraf