Annotation of hatari/src/cpu/jit/compemu_prefs.c, revision 1.1

1.1     ! root        1: /********************************************************************
        !             2:  * Preferences handling. This is just a convenient place to put it  *
        !             3:  ********************************************************************/
        !             4: extern bool have_done_picasso;
        !             5: 
        !             6: bool check_prefs_changed_comp (bool checkonly)
        !             7: {
        !             8:        bool changed = 0;
        !             9:        static int cachesize_prev, comptrust_prev;
        !            10:        static bool canbang_prev;
        !            11: 
        !            12:        if (currprefs.comptrustbyte != changed_prefs.comptrustbyte ||
        !            13:                currprefs.comptrustword != changed_prefs.comptrustword ||
        !            14:                currprefs.comptrustlong != changed_prefs.comptrustlong ||
        !            15:                currprefs.comptrustnaddr!= changed_prefs.comptrustnaddr ||
        !            16:                currprefs.compnf != changed_prefs.compnf ||
        !            17:                currprefs.comp_hardflush != changed_prefs.comp_hardflush ||
        !            18:                currprefs.comp_constjump != changed_prefs.comp_constjump ||
        !            19:                currprefs.compfpu != changed_prefs.compfpu ||
        !            20:                currprefs.fpu_strict != changed_prefs.fpu_strict ||
        !            21:                currprefs.cachesize != changed_prefs.cachesize)
        !            22:                changed = 1;
        !            23: 
        !            24:        if (checkonly)
        !            25:                return changed;
        !            26: 
        !            27:        currprefs.comptrustbyte = changed_prefs.comptrustbyte;
        !            28:        currprefs.comptrustword = changed_prefs.comptrustword;
        !            29:        currprefs.comptrustlong = changed_prefs.comptrustlong;
        !            30:        currprefs.comptrustnaddr= changed_prefs.comptrustnaddr;
        !            31:        currprefs.compnf = changed_prefs.compnf;
        !            32:        currprefs.comp_hardflush = changed_prefs.comp_hardflush;
        !            33:        currprefs.comp_constjump = changed_prefs.comp_constjump;
        !            34:        currprefs.compfpu = changed_prefs.compfpu;
        !            35:        currprefs.fpu_strict = changed_prefs.fpu_strict;
        !            36: 
        !            37:        if (currprefs.cachesize != changed_prefs.cachesize) {
        !            38:                if (currprefs.cachesize && !changed_prefs.cachesize) {
        !            39:                        cachesize_prev = currprefs.cachesize;
        !            40:                        comptrust_prev = currprefs.comptrustbyte;
        !            41:                        canbang_prev = canbang;
        !            42:                } else if (!currprefs.cachesize && changed_prefs.cachesize == cachesize_prev) {
        !            43:                        changed_prefs.comptrustbyte = currprefs.comptrustbyte = comptrust_prev;
        !            44:                        changed_prefs.comptrustword = currprefs.comptrustword = comptrust_prev;
        !            45:                        changed_prefs.comptrustlong = currprefs.comptrustlong = comptrust_prev;
        !            46:                        changed_prefs.comptrustnaddr = currprefs.comptrustnaddr = comptrust_prev;
        !            47:                }
        !            48:                currprefs.cachesize = changed_prefs.cachesize;
        !            49:                alloc_cache();
        !            50:                changed = 1;
        !            51:        }
        !            52: 
        !            53:        // Turn off illegal-mem logging when using JIT...
        !            54:        if(currprefs.cachesize)
        !            55:                currprefs.illegal_mem = changed_prefs.illegal_mem;// = 0;
        !            56: 
        !            57:        if ((!canbang || !currprefs.cachesize) && currprefs.comptrustbyte != 1) {
        !            58:                // Set all of these to indirect when canbang == 0
        !            59:                currprefs.comptrustbyte = 1;
        !            60:                currprefs.comptrustword = 1;
        !            61:                currprefs.comptrustlong = 1;
        !            62:                currprefs.comptrustnaddr= 1;
        !            63: 
        !            64:                changed_prefs.comptrustbyte = 1;
        !            65:                changed_prefs.comptrustword = 1;
        !            66:                changed_prefs.comptrustlong = 1;
        !            67:                changed_prefs.comptrustnaddr= 1;
        !            68: 
        !            69:                changed = 1;
        !            70: 
        !            71:                if (currprefs.cachesize)
        !            72:                        write_log (_T("JIT: Reverting to \"indirect\" access, because canbang is zero!\n"));
        !            73:        }
        !            74: 
        !            75:        if (changed)
        !            76:                write_log (_T("JIT: cache=%d. b=%d w=%d l=%d fpu=%d nf=%d inline=%d hard=%d\n"),
        !            77:                currprefs.cachesize,
        !            78:                currprefs.comptrustbyte, currprefs.comptrustword, currprefs.comptrustlong, 
        !            79:                currprefs.compfpu, currprefs.compnf, currprefs.comp_constjump, currprefs.comp_hardflush);
        !            80: 
        !            81:        return changed;
        !            82: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.