URL:
<http://savannah.nongnu.org/patch/?7079>
Summary: Trace fixes and better memory access
Project: Simulavr: an AVR simulator
Submitted by: petrh
Submitted on: Sun 31 Jan 2010 11:13:47 PM CET
Category: bug fix
Priority: 5 - Normal
Status: None
Privacy: Public
Assigned to: None
Originator Email:
Open/Closed: Open
Discussion Lock: Any
Component Version: simulavrxx
_______________________________________________________
Details:
avr_op_ADIW::Trace( ) - did print register and the constant swapped (see
ctor)
avr_op_BRBS::Trace( ) - printed bogus value as a destination (BRBS is 2B
instruction)
avr_op_BSET::Trace( ) - printed using bogus index (get_reg_bit vs
get_sreg_bit in ctor)
avr_op_CALL::Trace( ) - printed uninitialized value as address
avr_op_DEC::Trace( ) - printed bogus second argument
avr_op_LPM_Z::Trace() - did not print the written-to register
(Remaining changes are not user-visible.)
These were found while adjusting the code for different handling of memory
access: reading/writing (after this patch) goes through device first. (I have
to tinker with it and RWMemoryWithOwnMemory would be ugly.)
pros:
* nicer ctors
* easier peeking into simulavr while debugging
* smaller DecodedInstruction instances (by ~3*4B)
* reduced cache pressure
* allows more efficient (cache friendly) storage of data memory (not yet in
this patch)
* less chance for wrong *::Trace() code or wrong X,Y,Z read
cons:
* uglier *::operator()
* 1 more hot field in AvrDevice
* unaligned access to fields in instructions
HWStack::HWStack() has one less argument, all devices have to be trivially
adjusted.
Some instructions still have HWSreg* status - we can get rid of that. (I do
not need that though.)
The DecodedInstruction ctor still accepts the extra arguments after this
patch.
I would remove them but one my diff tool gets confused by that many changes
(yours may too).
I can prepare another patch that just removes the extra arguments if you
like.
_______________________________________________________
File Attachments:
-------------------------------------------------------
Date: Sun 31 Jan 2010 11:13:47 PM CET Name: memory-access.patch Size: 105kB
By: petrh
<http://savannah.nongnu.org/patch/download.php?file_id=19586>
_______________________________________________________
Reply to this item at:
<http://savannah.nongnu.org/patch/?7079>
_______________________________________________
Message sent via/by Savannah
http://savannah.nongnu.org/
_______________________________________________
Simulavr-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/simulavr-devel