Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add synthetic IntegerDivideByZero exception (esp8266#7496)
The ROM routine __divsi3 is called by code whenever a division is needed, because there is no divide unit on the ESP8266 core. When the divide routine in ROM hits a div-by-zero case, it jumpt to an ILL(egal instruction) at a fixed address which causes a HW exception 0 (IllegalInsnException). In the postmortem dump, when an ILL exception is detected at this address in ROM, convert it to a DivByZeroException for printout (6). Divde by zero errors now print as follows: ```` --------------- CUT HERE FOR EXCEPTION DECODER --------------- Exception (6): epc1=0x4000dce5 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000 >>>stack>>> ... <<<stack<<< --------------- CUT HERE FOR EXCEPTION DECODER --------------- ```` And will decode as follows: ```` Exception 6: IntegerDivideByZero: QUOS, QUOU, REMS, or REMU divisor operand is zero PC: 0x4000dce5 EXCVADDR: 0x00000000 Decoding stack results ... ````
- Loading branch information