Ignore:
Timestamp:
Jan 10, 2015, 11:35:24 PM (5 years ago)
Author:
gb
Message:

pc_luser_xp(): if we interrupt a conditional store, detect its success/failure correctly.

_SPeabi_ff_call_simple: store the vsp in tcr.save_vsp when exiting lisp. This seems to fix ticket:1257 in the trunk.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lisp-kernel/arm-exceptions.c

    r16066 r16341  
    744744                signed_natural param)
    745745{
     746
    746747  TCR *tcr = get_tcr(true), *other_tcr;
    747748  int result;
     
    16351636      if ((program_counter < &egc_set_hash_key_conditional_test) ||
    16361637          ((program_counter == &egc_set_hash_key_conditional_test) &&
    1637            (! (xpPSR(xp) & PSR_Z_MASK)))) {
     1638           (xpGPR(xp,imm0) != 0))) {
    16381639        return;
    16391640      }
     
    16441645      if ((program_counter < &egc_store_node_conditional_test) ||
    16451646          ((program_counter == &egc_store_node_conditional_test) &&
    1646            (! (xpPSR(xp) & PSR_Z_MASK)))) {
     1647           (xpGPR(xp,imm0) != 0))) {
    16471648        /* The conditional store either hasn't been attempted yet, or
    16481649           has failed.  No need to adjust the PC, or do memoization. */
     
    17931794           VOID_ALLOCPTR */
    17941795        xpGPR(xp,allocptr) = VOID_ALLOCPTR;
    1795         tcr->save_allocptr = tcr->save_allocbase = VOID_ALLOCPTR;
     1796        tcr->save_allocptr = tcr->save_allocbase = (LispObj *)VOID_ALLOCPTR;
    17961797      }
    17971798      return;
Note: See TracChangeset for help on using the changeset viewer.