equal
deleted
inserted
replaced
70 |Symbian$$code_seg_base| dcd |Image$$ER_RO$$Base| ; /* RO segment base */ |
70 |Symbian$$code_seg_base| dcd |Image$$ER_RO$$Base| ; /* RO segment base */ |
71 |Symbian$$code_seg_limit| dcd |Image$$ER_RO$$Limit| ;/* RO segment limit */ |
71 |Symbian$$code_seg_limit| dcd |Image$$ER_RO$$Limit| ;/* RO segment limit */ |
72 #endif |
72 #endif |
73 |
73 |
74 #endif |
74 #endif |
|
75 #elif defined(__GCCE__) |
|
76 #ifdef __SUPPORT_CPP_EXCEPTIONS__ |
|
77 |
|
78 |
|
79 /* It is possible no functions included in the image require |
|
80 * a handler table. Therefore make only a weak reference to |
|
81 * the handler table base symbol, which may be absent. |
|
82 */ |
|
83 asm(".weak .ARM.extab$$Base"); |
|
84 asm(".global Symbian$$CPP$$Exception$$Descriptor"); |
|
85 |
|
86 /* Symbian$$CPP$$Exception$$Descriptor is referenced from the Image header. |
|
87 * A pointer to this object can be cached by the unwinder in the UCB |
|
88 * on the assumption that the EHT for the previous frame is likely to be right |
|
89 * for the current frame |
|
90 */ |
|
91 |
|
92 asm("Symbian$$CPP$$Exception$$Descriptor:"); |
|
93 #ifdef __LEAVE_EQUALS_THROW__ |
|
94 asm(".word .ARM.exidx$$Base"); /* index table base */ |
|
95 asm(".word .ARM.exidx$$Limit"); /* index table limit */ |
|
96 #endif |
|
97 asm(".word Image$$ER_RO$$Base + 1"); /* RO segment base + mark as ehabi v2 */ |
|
98 asm(".word Image$$ER_RO$$Limit"); /* RO segment limit */ |
|
99 asm(".word 0"); /* reserved for future use */ |
|
100 #endif |
75 #endif |
101 #endif |
76 } |
102 } |
77 } |
103 } |
78 |
104 |