Response to question posted through email, not code review tool:
http://codereview.chromium.org/651029/diff/3020/4058
File src/arm/assembler-thumb2.cc (right):
http://codereview.chromium.org/651029/diff/3020/4058#newcode641
src/arm/assembler-thumb2.cc:641: i0 = b11110 * B11 | b1000 * B5;
On 2010/02/26 13:07:23, Erik Corry wrote:
Instead of bxxxx we should have meaningful names here.
You asked for suggestions, so here they are:
The table on page A6-6 turns into the following:
enum ThumbEncoding {
kThumbRegularEncodingStart = 0x0,
kThumbRegularEncodingEnd = 0xf,
kThumbDataProcessingEncoding = 0x10,
kThumbSpecialEncoding = 0x11,
kThumbLoadLiteralEncodingStart = 0x12,
kThumbLoadLiteralEncodingEnd = 0x13,
kThumbLoadStoreSingleEncodingStart = 0x14,
kThumbLoadStoreSingleEncodingEnd = 0x27,
kThumbGeneratePCRelativeEncodingStart = 0x28,
kThumbGeneratePCRelativeEncodingEnd = 0x29,
kThumbGenerateSPRelativeEncodingStart = 0x2a,
kThumbGenerateSPRelativeEncodingEnd = 0x2b,
kThumbMiscEncodingStart = 0x2c,
kThumbMiscEncodingEnd = 0x2f,
kThumbStoreMultipleEncodingStart = 0x30,
kThumbStoreMultipleEncodingEnd = 0x31,
kThumbLoadMultipleEncodingStart = 0x32,
kThumbLoadMultipleEncodingEnd = 0x33,
kThumbConditionalBranchEncodingStart = 0x34,
kThumbConditionalBranchEncodingEnd = 0x37,
kThumbUnconditionalBranchEncodingStart = 0x38,
kThumbUnconditionalBranchEncodingEnd = 0x39,
kThumb32BitEncodingStart = 0x3a,
kThumb32BitEncodingEnd = 0x3f
};
The table on page A6-14 yields:
enum Thumb32Encoding {
kThumb32LoadStoreMultipleEncoding = 0x80,
kThumb32LoadStoreDualEncoding = 0x84,
kThumb32ShiftedRegisterEncoding = 0xa0,
...
kThumb32ModifiedImmediateEncoding = 0x100,
kThumb32PlainImmediateencoding = 0x140,
...
};
enum ThumbModifiedImmediateOpcode {
kModifiedImmediateAnd = 0,
kModifiedImmediateTest = 0,
kModifiedImmediateBic = 1,
kModifiedImmediateOr = 2,
...
kModifiedImmediateAdd = 8,
...
};
So now the above becomes:
i0 = kThumb32BitEncodingStart * B10 |
kThumb32ModifiedImmediateEncoding * B4 |
kModifiedImmediateAdd * B5;
You might consider having the enum values be pre-shifted by the right
amount so you don't have to multiply by B4, B5, etc.
i0 =
};
http://codereview.chromium.org/651029
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev