Ignore:
Timestamp:
Mar 14, 2009, 4:42:20 AM (11 years ago)
Author:
rme
Message:

Merge trunk changes r11790-r11794, r11796, r11801, r11803

(GC fixes, additional x8632 vinsns, easygui enhancements, x8632 callback fix)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • release/1.3/source/lisp-kernel/x86-exceptions.c

    r11780 r11814  
    589589#ifdef X8632
    590590  natural saved_node_regs_mask = tcr->node_regs_mask;
     591  natural saved_unboxed0 = tcr->unboxed0;
     592  natural saved_unboxed1 = tcr->unboxed1;
    591593  LispObj *vsp = (LispObj *)xpGPR(xp, Isp);
    592594#endif
     
    629631
    630632  tcr->node_regs_mask = saved_node_regs_mask;
     633  tcr->unboxed0 = saved_unboxed0;
     634  tcr->unboxed1 = saved_unboxed1;
    631635#endif
    632636  set_mxcsr(old_mxcsr);
     
    22612265extern opcode egc_write_barrier_start, egc_write_barrier_end,
    22622266  egc_set_hash_key_conditional, egc_set_hash_key_conditional_success_test,
    2263   egc_store_node_conditional_success_end,
     2267  egc_set_hash_key_conditional_retry,
     2268  egc_store_node_conditional_success_end, egc_store_node_conditional_retry,
    22642269  egc_store_node_conditional_success_test,egc_store_node_conditional,
    22652270  egc_set_hash_key, egc_gvset, egc_rplacd;
     
    25462551
    25472552    if (program_counter >= &egc_set_hash_key_conditional) {
     2553      if (program_counter <= &egc_set_hash_key_conditional_retry) {
     2554        return;
     2555      }
    25482556      if ((program_counter < &egc_set_hash_key_conditional_success_test) ||
    25492557          ((program_counter == &egc_set_hash_key_conditional_success_test) &&
    25502558           !(eflags_register(xp) & (1 << X86_ZERO_FLAG_BIT)))) {
    25512559        /* Back up the PC, try again */
    2552         xpPC(xp) = (LispObj) &egc_set_hash_key_conditional;
     2560        xpPC(xp) = (LispObj) &egc_set_hash_key_conditional_retry;
    25532561        return;
    25542562      }
     
    25662574      xpGPR(xp,Iarg_z) = t_value;
    25672575    } else if (program_counter >= &egc_store_node_conditional) {
     2576      if (program_counter <= &egc_store_node_conditional_retry) {
     2577        return;
     2578      }
    25682579      if ((program_counter < &egc_store_node_conditional_success_test) ||
    25692580          ((program_counter == &egc_store_node_conditional_success_test) &&
    25702581           !(eflags_register(xp) & (1 << X86_ZERO_FLAG_BIT)))) {
    25712582        /* Back up the PC, try again */
    2572         xpPC(xp) = (LispObj) &egc_store_node_conditional;
     2583        xpPC(xp) = (LispObj) &egc_store_node_conditional_retry;
    25732584        return;
    25742585      }
Note: See TracChangeset for help on using the changeset viewer.