This is the mail archive of the frysk@sources.redhat.com mailing list for the frysk project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

New method to get real length of register


Register.getLength() now is not always equal to the real length of
that register.

On Ia32, segment register is 16-bit, instead of 32-bit.
On X86-64, fs, gs, and ss are 16-bit, instead of 64-bit.
On PPC64, xer and ccr are 32-bit, instead of 64-bit.

On 64-bit platforms(X86-64 and PPC64), linux kernel assumes these
registers as all 64-bit in order to simplify implementation(correct me
if I am wrong).  However, frysk should present the real length of the
registers to the users.  For example, in RegisterWindow, the real
length of register could be presented if we add "0" as prefix..
"0x0037" is better than "0x37", since it could tell user that this
register is 16-bit, and this would be more clear to display some flag
registers or condition register.

A new method getRealLength is added in Register, and mostly it is the
same as getLength, and getRealLength is overridden if they are
different.

2006-08-23  Yao Qi  <qiyaoltc@cn.ibm.com>

        * Register.java (getRealLength): New method to return the real
        length of each register.

        * IsaIA32.java: Override getRealLength() of segment registers
        to return 2 since they are 16-bit registers.
        * IsaPPC64.java: Override getRealLength() of ccr and xer to
        return 4 since they are 32-bit registers on PPC64.
        * IsaEMT64.java: Override getRealLength() of segment registers
	to return 2 since they are 16-bit registers on X86_64.

Tim, I add you in cc list, since you refactored IsaIA32 and IsaEMT64,
and I also found that you are the author of UBigInteger, which is used
to display values in RegisterWindows.

Please review.  Thanks!

Could we rewrite toString in UBigInteger to display register values
prefixed with "0"?  Any comments?

-- 
Yao Qi

Attachment: Register.patch
Description: Text document

Attachment: IsaIa32_reg.patch
Description: Text document

Attachment: IsaPPC64_32reg.patch
Description: Text document

Attachment: IsaEMT64_16reg.patch
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]