This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
dev:crosscompiler:backend_arm:exceptions [2019/08/27 12:29] – [Java Exceptions] ursgraf | dev:crosscompiler:backend_arm:exceptions [2019/11/17 18:24] (current) – [Floats in Exceptions] ursgraf | ||
---|---|---|---|
Line 10: | Line 10: | ||
===== ARM Exceptions ===== | ===== ARM Exceptions ===== | ||
Each ARM exception is caused by a synchronous or asynchronous event and generally causes the processor to switch its state and jump to its proper exception vector. | Each ARM exception is caused by a synchronous or asynchronous event and generally causes the processor to switch its state and jump to its proper exception vector. | ||
- | [{{ .:ppcexception.png? | + | [{{ .:armexception.png? |
Exception classes and their corresponding exception methods have to be specified in the configuration. Instances of these classes are never created and therefore the object constructors are defined as // | Exception classes and their corresponding exception methods have to be specified in the configuration. Instances of these classes are never created and therefore the object constructors are defined as // | ||
The code generator has to create a special exception stack frame.\\ | The code generator has to create a special exception stack frame.\\ | ||
Line 17: | Line 17: | ||
===== Floats in Exceptions ===== | ===== Floats in Exceptions ===== | ||
+ | In order to save processing time, floating point registers are not saved when entering exception handling. If an exception method calls a another method which uses EXTRs, however, all volatile EXTR's will be saved by a call to // | ||
+ | **Important: | ||
+ | **Important: | ||