diff --git a/arch/alpha/isa_desc b/arch/alpha/isa_desc index a5b674c11..e80da6091 100644 --- a/arch/alpha/isa_desc +++ b/arch/alpha/isa_desc @@ -2660,6 +2660,28 @@ decode OPCODE default Unknown::unknown() { } } + format HwMoveIPR { + 0x19: hw_mfpr({{ + // this instruction is only valid in PAL mode + if (!xc->inPalMode()) { + fault = Unimplemented_Opcode_Fault; + } + else { + Ra = xc->readIpr(ipr_index, fault); + } + }}); + 0x1d: hw_mtpr({{ + // this instruction is only valid in PAL mode + if (!xc->inPalMode()) { + fault = Unimplemented_Opcode_Fault; + } + else { + xc->setIpr(ipr_index, Ra); + if (traceData) { traceData->setData(Ra); } + } + }}); + } + format BasicOperate { 0x1e: hw_rei({{ xc->hwrei(); }}, IsSerializing); @@ -2700,35 +2722,12 @@ decode OPCODE default Unknown::unknown() { AlphaPseudo::readfile(xc->xcBase()); }}, IsNonSpeculative); 0x51: m5break({{ - AlphaPseudo::debugbreak(xc->xcBase()); - }}, IsNonSpeculative); + AlphaPseudo::debugbreak(xc->xcBase()); + }}, IsNonSpeculative); 0x52: m5switchcpu({{ - AlphaPseudo::switchcpu(xc->xcBase()); - }}, IsNonSpeculative); - + AlphaPseudo::switchcpu(xc->xcBase()); + }}, IsNonSpeculative); } } - - format HwMoveIPR { - 0x19: hw_mfpr({{ - // this instruction is only valid in PAL mode - if (!xc->inPalMode()) { - fault = Unimplemented_Opcode_Fault; - } - else { - Ra = xc->readIpr(ipr_index, fault); - } - }}); - 0x1d: hw_mtpr({{ - // this instruction is only valid in PAL mode - if (!xc->inPalMode()) { - fault = Unimplemented_Opcode_Fault; - } - else { - xc->setIpr(ipr_index, Ra); - if (traceData) { traceData->setData(Ra); } - } - }}); - } #endif } diff --git a/build/SConstruct b/build/SConstruct index 7f237ca77..e7ec87a53 100644 --- a/build/SConstruct +++ b/build/SConstruct @@ -320,12 +320,25 @@ for build_dir in build_dirs: # Make a copy of the default environment to use for this config. env = base_env.Copy() # Set env according to the build directory config. - options_file = os.path.join('build_options', build_dir) - if os.path.isfile(options_file): - sticky_opts.files = [options_file] - else: - print "Options file %s not found, using defaults." % options_file + sticky_opts.files = [] + default_options_file = os.path.join('build_options', 'default', build_dir) + if os.path.isfile(default_options_file): + sticky_opts.files.append(default_options_file) + current_options_file = os.path.join('build_options', 'current', build_dir) + if os.path.isfile(current_options_file): + sticky_opts.files.append(current_options_file) + else: + # if file doesn't exist, make sure at least the directory is there + # so we can create it later + opt_dir = os.path.dirname(current_options_file) + if not os.path.isdir(opt_dir): + os.mkdir(opt_dir) + if not sticky_opts.files: + print "%s: No options file found in build_options, using defaults." \ + % build_dir + + # Apply current option settings to env sticky_opts.Update(env) nonsticky_opts.Update(env) @@ -353,8 +366,8 @@ for build_dir in build_dirs: env.ParseConfig(mysql_config_libs) env.ParseConfig(mysql_config_include) - # Save sticky option settings back to file - sticky_opts.Save(options_file, env) + # Save sticky option settings back to current options file + sticky_opts.Save(current_options_file, env) # Do this after we save setting back, or else we'll tack on an # extra 'qdo' every time we run scons. diff --git a/build/build_options/ALPHA_FS b/build/build_options/default/ALPHA_FS similarity index 100% rename from build/build_options/ALPHA_FS rename to build/build_options/default/ALPHA_FS diff --git a/build/build_options/ALPHA_FS_TL b/build/build_options/default/ALPHA_FS_TL similarity index 100% rename from build/build_options/ALPHA_FS_TL rename to build/build_options/default/ALPHA_FS_TL diff --git a/build/build_options/ALPHA_SE b/build/build_options/default/ALPHA_SE similarity index 100% rename from build/build_options/ALPHA_SE rename to build/build_options/default/ALPHA_SE