edef1c / libfringe

a Rust library implementing safe, lightweight context switches, without relying on kernel services
https://edef1c.github.io/libfringe
Apache License 2.0
512 stars 31 forks source link

Unbreak or1k #53

Closed whitequark closed 8 years ago

whitequark commented 8 years ago

Note: doesn't actually unbreak or1k, it crashes:

 *** Unhandled exception 7 *** 
   pc  03ffffb4 sr  0000841d ea  40005d88
   r0  00000000 r1  40005d90 r2  15000000 r3  00000000
   r4  40116d48 r5  40005d90 r6  40116d6c r7  40116d40
   r8  ffffefec r9  03ffffb4 r10 00000100 r11 40116db8
   r12 40048b30 r13 0000c0a8 r14 00000001 r15 e0002064
   r16 4002c1b4 r17 7fffffff r18 00000000 r19 00000001
   r20 4002c1b4 r21 00000001 r22 00000003 r23 00000001
   r24 000005dc r25 007fff00 r26 00000000 r27 00000000
   r28 00000000 r29 00000000 r30 00000000 r31 00000000
 stack:
   40005d90: d7e14ffc d7e117f8 9c410000 9c21ff90
   40005da0: d7e2f7f4 d7e2e7f0 d7e2d7ec d7e2c7e8
   40005db0: d7e2b7e4 d7e2a7e0 d7e297dc d7e287d8
   40005dc0: d7e277d4 04000002 15000000 18600002

pc=r9=03ffffb4 which is just below the start of .text and, indeed, any mapped memory at all. (Hence exception 7, "Illegal instruction".)

cc @Amanieu

whitequark commented 8 years ago

Fixed properly now, thanks @Amanieu!