> On 2010-05-08 11:08:07, Steve Reinhardt wrote:
> > src/arch/arm/faults.hh, line 113
> > <http://reviews.m5sim.org/r/20/diff/1/?file=175#file175line113>
> >
> >     Seems redundant to have 'Arm' in the name of a class that's inside the 
> > 'ArmISA' namespace... I can see where there might be some confusion if 
> > there's a base Fault that's outside the namespace as well, but maybe that's 
> > a sign that there's a larger renaming that should be done.
> >     
> >     Also, Fault:FaultBase seems more consistent with other naming than 
> > FaultVals:Fault; I'm curious what motivated the change.
> >
> 
> Gabe Black wrote:
>     It looks like I made that change. I don't really remember my motivation 
> (a danger of putting off reviews for so long), but I think it was probably 
> that ArmFaultVals is the class that bolts on the static FaultVals struct and 
> accessors for it for the curious recurring template pattern (crtp). Changing 
> ArmFaultBase to ArmFault was likely because the Base is sort of redundant 
> when ArmFault is sufficiently general enough by itself. I think part of the 
> reason it might look upside down is that basically (no pun intended) that's 
> the way the crtp forces you to do things.
>     
>     As far as the Arm part of the name, I think that's just historically how 
> it's been set up with SPARC, Alpha, etc. I definitely don't remember why I 
> did that, but I think it was similar to what you said, to avoid ambiguity as 
> far as whether the class was general or ISA specific. There is no generic 
> Fault class (only FaultBase) so it's probably not strictly necessary. I 
> wouldn't mind if we changed it, it's just that nobody brought it up before.
> 
> Steve Reinhardt wrote:
>     It could be that the historical inclusion of the ISA name in the fault 
> class is that originally we may not have used the ISA namespace...
> 
> Gabe Black wrote:
>     Ah yes, mercurial backs that up. I'm surprised you remembered that :). 
> It'd be neat to look back that far in the history (more thoroughly than I 
> just did) and see again how everything grew up. It's fun to see how different 
> some things were.

On closer inspection I don't think I want to change these names. Like you 
pointed out there's already a Fault typedef so renaming ArmFault Fault would 
cause a lot of confusion. A similar but easier to tolerate problem is that 
renaming the ArmFaultVals template class would making it collide with the 
structure defined in ArmFault. It should be clear to the compiler what's going 
on, I think, but it'd be very confusing for a person to keep track of which 
FaultVals you're talking about, especially when crtp is involved.

We could potentially rename the Fault typedef like you seem to be suggesting, 
but we'd have to change quite a bit of code. I'm not convinced it would be 
worth it since it's not clear what other name would be much better.


- Gabe


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/20/#review15
-----------------------------------------------------------


On 2010-04-29 15:33:58, Ali Saidi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/20/
> -----------------------------------------------------------
> 
> (Updated 2010-04-29 15:33:58)
> 
> 
> Review request for Default.
> 
> 
> Summary
> -------
> 
> Initial set of patches to improve the M5 support of the ARM ISA. Bundled into 
> one large change for review. This change implements the majority of thumb, 
> thumb2, and arm instructions and allows the running of all tested SPEC2000 
> benchmarks in atomic mode. 
> 
> 
> Diffs
> -----
> 
>   configs/common/cpu2000.py ad784e759a74 
>   src/arch/arm/ArmTLB.py ad784e759a74 
>   src/arch/arm/SConscript ad784e759a74 
>   src/arch/arm/faults.hh ad784e759a74 
>   src/arch/arm/faults.cc ad784e759a74 
>   src/arch/arm/insts/branch.hh ad784e759a74 
>   src/arch/arm/insts/branch.cc ad784e759a74 
>   src/arch/arm/insts/macromem.hh ad784e759a74 
>   src/arch/arm/insts/macromem.cc PRE-CREATION 
>   src/arch/arm/insts/mem.hh ad784e759a74 
>   src/arch/arm/insts/mem.cc ad784e759a74 
>   src/arch/arm/insts/misc.hh PRE-CREATION 
>   src/arch/arm/insts/misc.cc PRE-CREATION 
>   src/arch/arm/insts/mult.hh PRE-CREATION 
>   src/arch/arm/insts/pred_inst.hh ad784e759a74 
>   src/arch/arm/insts/pred_inst.cc ad784e759a74 
>   src/arch/arm/insts/static_inst.hh ad784e759a74 
>   src/arch/arm/insts/static_inst.cc ad784e759a74 
>   src/arch/arm/insts/vfp.hh PRE-CREATION 
>   src/arch/arm/insts/vfp.cc PRE-CREATION 
>   src/arch/arm/interrupts.hh ad784e759a74 
>   src/arch/arm/interrupts.cc ad784e759a74 
>   src/arch/arm/intregs.hh ad784e759a74 
>   src/arch/arm/isa.hh ad784e759a74 
>   src/arch/arm/isa.cc PRE-CREATION 
>   src/arch/arm/isa/bitfields.isa ad784e759a74 
>   src/arch/arm/isa/copyright.txt ad784e759a74 
>   src/arch/arm/isa/decoder.isa ad784e759a74 
>   src/arch/arm/isa/decoder/arm.isa PRE-CREATION 
>   src/arch/arm/isa/decoder/decoder.isa PRE-CREATION 
>   src/arch/arm/isa/decoder/thumb.isa PRE-CREATION 
>   src/arch/arm/isa/formats/basic.isa ad784e759a74 
>   src/arch/arm/isa/formats/branch.isa ad784e759a74 
>   src/arch/arm/isa/formats/breakpoint.isa PRE-CREATION 
>   src/arch/arm/isa/formats/data.isa PRE-CREATION 
>   src/arch/arm/isa/formats/formats.isa ad784e759a74 
>   src/arch/arm/isa/formats/fp.isa ad784e759a74 
>   src/arch/arm/isa/formats/macromem.isa ad784e759a74 
>   src/arch/arm/isa/formats/mem.isa ad784e759a74 
>   src/arch/arm/isa/formats/misc.isa PRE-CREATION 
>   src/arch/arm/isa/formats/mult.isa PRE-CREATION 
>   src/arch/arm/isa/formats/pred.isa ad784e759a74 
>   src/arch/arm/isa/formats/uncond.isa PRE-CREATION 
>   src/arch/arm/isa/formats/unimp.isa ad784e759a74 
>   src/arch/arm/isa/formats/unknown.isa ad784e759a74 
>   src/arch/arm/isa/formats/util.isa ad784e759a74 
>   src/arch/arm/isa/includes.isa ad784e759a74 
>   src/arch/arm/isa/insts/basic.isa PRE-CREATION 
>   src/arch/arm/isa/insts/branch.isa PRE-CREATION 
>   src/arch/arm/isa/insts/data.isa PRE-CREATION 
>   src/arch/arm/isa/insts/div.isa PRE-CREATION 
>   src/arch/arm/isa/insts/fp.isa PRE-CREATION 
>   src/arch/arm/isa/insts/insts.isa PRE-CREATION 
>   src/arch/arm/isa/insts/ldr.isa PRE-CREATION 
>   src/arch/arm/isa/insts/macromem.isa PRE-CREATION 
>   src/arch/arm/isa/insts/mem.isa PRE-CREATION 
>   src/arch/arm/isa/insts/misc.isa PRE-CREATION 
>   src/arch/arm/isa/insts/mult.isa PRE-CREATION 
>   src/arch/arm/isa/insts/str.isa PRE-CREATION 
>   src/arch/arm/isa/insts/swap.isa PRE-CREATION 
>   src/arch/arm/isa/main.isa ad784e759a74 
>   src/arch/arm/isa/operands.isa ad784e759a74 
>   src/arch/arm/isa/templates/basic.isa PRE-CREATION 
>   src/arch/arm/isa/templates/branch.isa PRE-CREATION 
>   src/arch/arm/isa/templates/macromem.isa PRE-CREATION 
>   src/arch/arm/isa/templates/mem.isa PRE-CREATION 
>   src/arch/arm/isa/templates/misc.isa PRE-CREATION 
>   src/arch/arm/isa/templates/mult.isa PRE-CREATION 
>   src/arch/arm/isa/templates/pred.isa PRE-CREATION 
>   src/arch/arm/isa/templates/templates.isa PRE-CREATION 
>   src/arch/arm/isa/templates/vfp.isa PRE-CREATION 
>   src/arch/arm/isa_traits.hh ad784e759a74 
>   src/arch/arm/linux/linux.hh ad784e759a74 
>   src/arch/arm/linux/process.hh ad784e759a74 
>   src/arch/arm/linux/process.cc ad784e759a74 
>   src/arch/arm/miscregs.hh ad784e759a74 
>   src/arch/arm/miscregs.cc PRE-CREATION 
>   src/arch/arm/nativetrace.cc ad784e759a74 
>   src/arch/arm/pagetable.hh ad784e759a74 
>   src/arch/arm/pagetable.cc ad784e759a74 
>   src/arch/arm/predecoder.hh ad784e759a74 
>   src/arch/arm/process.hh ad784e759a74 
>   src/arch/arm/process.cc ad784e759a74 
>   src/arch/arm/registers.hh ad784e759a74 
>   src/arch/arm/table_walker.hh PRE-CREATION 
>   src/arch/arm/table_walker.cc PRE-CREATION 
>   src/arch/arm/tlb.hh ad784e759a74 
>   src/arch/arm/tlb.cc ad784e759a74 
>   src/arch/arm/types.hh ad784e759a74 
>   src/arch/arm/utility.hh ad784e759a74 
>   src/arch/arm/utility.cc ad784e759a74 
>   src/arch/isa_parser.py ad784e759a74 
>   src/base/loader/elf_object.cc ad784e759a74 
>   src/base/loader/object_file.hh ad784e759a74 
>   src/cpu/BaseCPU.py ad784e759a74 
>   src/cpu/exetrace.cc ad784e759a74 
>   src/cpu/simple/base.cc ad784e759a74 
>   src/cpu/simple_thread.hh ad784e759a74 
>   src/dev/arm/SConscript ad784e759a74 
>   src/dev/arm/Versatile.py ad784e759a74 
>   src/dev/arm/versatile.hh ad784e759a74 
>   src/dev/arm/versatile.cc ad784e759a74 
>   src/dev/copy_engine.cc ad784e759a74 
>   src/dev/io_device.hh ad784e759a74 
>   src/dev/io_device.cc ad784e759a74 
>   src/sim/process.cc ad784e759a74 
>   tests/quick/00.hello/ref/arm/linux/simple-atomic/config.ini ad784e759a74 
>   tests/quick/00.hello/ref/arm/linux/simple-atomic/simerr ad784e759a74 
>   tests/quick/00.hello/ref/arm/linux/simple-atomic/simout ad784e759a74 
>   tests/quick/00.hello/ref/arm/linux/simple-atomic/stats.txt ad784e759a74 
>   util/statetrace/arch/tracechild_arm.hh ad784e759a74 
>   util/statetrace/arch/tracechild_arm.cc ad784e759a74 
>   util/statetrace/statetrace.cc ad784e759a74 
> 
> Diff: http://reviews.m5sim.org/r/20/diff
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Ali
> 
>

_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to