Dies ist eine alte Version des Dokuments!


Exceptions

Terminologie

  • PPCExceptions: Prozessorspezifische Ausnahmen
  • Interrupt: spezielle Exception, durch externe Hardware ausgelöste asynchrone Exception
  • Java Exception Modell: Alle Ausnahmen in Java sind von der Klasse Throwable abgeleitet. Die Klasse Exception teilt sich wiederum in IO Exceptions und Runtime Exceptions auf.
PPC Exceptions und Interrupts

Anforderungen an PPCExceptions

Code Generator muss ein spezielles Stackframe erzeugen und die Methode mit der Instruktion „rfi“ abschliessen. Die Reset Exception darf keinen Prolog aufweisen. Die action-Methoden der abgeleiteten Klassen werden über einen speziellen Tag im Konfigurationsfile an absolute Adressen gelinkt. Es werden keine Instanzen dieser Klassen erzeugt → Objektkonstruktoren weglassen

Floats in Exceptions

Mit US.ENABLE_FLOATS werden alle volatile FPR's gespeichert und das FP-Enable Bit im MSR gesetzt. Die nonvolatile FPR, die in einer Methode benutzt werden, werden bereits durch den Methodenprolog gesichert. US.ENABLE_FLOATS kann in einer Exception-Methode oder in einer Methode, die durch eine Exception-Methode aufgerufen wird, plaziert werden.
Auch wenn wie im Falle des Decrementers eine action-Methode aufgerufen wird und diese in einer Unterklasse überschrieben wird, muss die action-Methode der Unterklasse US.ENABLE_FLOATS aufrufen, weil in der Decrementer-Exception Methode ja noch nicht klar ist, dass die Floats benützt werden. Werden aus dieser action-Methode weitere Methoden (z.B. Math.sin) aufgerufen, muss dort drin US.FLOAT_ENABLE() nicht mehr aufgerufen werden.