[PATCH 2/6] Add DAS test

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



test 1024 combinations of AL, CF and AF.

Signed-off-by: Avi Kivity <avi@xxxxxxxxxx>
---
 x86/realmode.c |  284 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 284 insertions(+), 0 deletions(-)

diff --git a/x86/realmode.c b/x86/realmode.c
index c15e532..7c358f9 100644
--- a/x86/realmode.c
+++ b/x86/realmode.c
@@ -1263,6 +1263,289 @@ void test_loopcc(void)
 		print_serial("LOOPcc short Test 3: PASS\n");
 }
 
+static void test_das(void)
+{
+    struct regs inregs = { 0 }, outregs = { 0 };
+    short i;
+    static unsigned test_cases[1024] = {
+        0x46000000, 0x8701a000, 0x9710fa00, 0x97119a00,
+        0x02000101, 0x8301a101, 0x9310fb01, 0x93119b01,
+        0x02000202, 0x8301a202, 0x9710fc02, 0x97119c02,
+        0x06000303, 0x8701a303, 0x9310fd03, 0x93119d03,
+        0x02000404, 0x8301a404, 0x9310fe04, 0x93119e04,
+        0x06000505, 0x8701a505, 0x9710ff05, 0x97119f05,
+        0x06000606, 0x8701a606, 0x56100006, 0x9711a006,
+        0x02000707, 0x8301a707, 0x12100107, 0x9311a107,
+        0x02000808, 0x8301a808, 0x12100208, 0x9311a208,
+        0x06000909, 0x8701a909, 0x16100309, 0x9711a309,
+        0x1200040a, 0x9301a40a, 0x1210040a, 0x9311a40a,
+        0x1600050b, 0x9701a50b, 0x1610050b, 0x9711a50b,
+        0x1600060c, 0x9701a60c, 0x1610060c, 0x9711a60c,
+        0x1200070d, 0x9301a70d, 0x1210070d, 0x9311a70d,
+        0x1200080e, 0x9301a80e, 0x1210080e, 0x9311a80e,
+        0x1600090f, 0x9701a90f, 0x1610090f, 0x9711a90f,
+        0x02001010, 0x8301b010, 0x16100a10, 0x9711aa10,
+        0x06001111, 0x8701b111, 0x12100b11, 0x9311ab11,
+        0x06001212, 0x8701b212, 0x16100c12, 0x9711ac12,
+        0x02001313, 0x8301b313, 0x12100d13, 0x9311ad13,
+        0x06001414, 0x8701b414, 0x12100e14, 0x9311ae14,
+        0x02001515, 0x8301b515, 0x16100f15, 0x9711af15,
+        0x02001616, 0x8301b616, 0x12101016, 0x9311b016,
+        0x06001717, 0x8701b717, 0x16101117, 0x9711b117,
+        0x06001818, 0x8701b818, 0x16101218, 0x9711b218,
+        0x02001919, 0x8301b919, 0x12101319, 0x9311b319,
+        0x1600141a, 0x9701b41a, 0x1610141a, 0x9711b41a,
+        0x1200151b, 0x9301b51b, 0x1210151b, 0x9311b51b,
+        0x1200161c, 0x9301b61c, 0x1210161c, 0x9311b61c,
+        0x1600171d, 0x9701b71d, 0x1610171d, 0x9711b71d,
+        0x1600181e, 0x9701b81e, 0x1610181e, 0x9711b81e,
+        0x1200191f, 0x9301b91f, 0x1210191f, 0x9311b91f,
+        0x02002020, 0x8701c020, 0x12101a20, 0x9311ba20,
+        0x06002121, 0x8301c121, 0x16101b21, 0x9711bb21,
+        0x06002222, 0x8301c222, 0x12101c22, 0x9311bc22,
+        0x02002323, 0x8701c323, 0x16101d23, 0x9711bd23,
+        0x06002424, 0x8301c424, 0x16101e24, 0x9711be24,
+        0x02002525, 0x8701c525, 0x12101f25, 0x9311bf25,
+        0x02002626, 0x8701c626, 0x12102026, 0x9711c026,
+        0x06002727, 0x8301c727, 0x16102127, 0x9311c127,
+        0x06002828, 0x8301c828, 0x16102228, 0x9311c228,
+        0x02002929, 0x8701c929, 0x12102329, 0x9711c329,
+        0x1600242a, 0x9301c42a, 0x1610242a, 0x9311c42a,
+        0x1200252b, 0x9701c52b, 0x1210252b, 0x9711c52b,
+        0x1200262c, 0x9701c62c, 0x1210262c, 0x9711c62c,
+        0x1600272d, 0x9301c72d, 0x1610272d, 0x9311c72d,
+        0x1600282e, 0x9301c82e, 0x1610282e, 0x9311c82e,
+        0x1200292f, 0x9701c92f, 0x1210292f, 0x9711c92f,
+        0x06003030, 0x8301d030, 0x12102a30, 0x9711ca30,
+        0x02003131, 0x8701d131, 0x16102b31, 0x9311cb31,
+        0x02003232, 0x8701d232, 0x12102c32, 0x9711cc32,
+        0x06003333, 0x8301d333, 0x16102d33, 0x9311cd33,
+        0x02003434, 0x8701d434, 0x16102e34, 0x9311ce34,
+        0x06003535, 0x8301d535, 0x12102f35, 0x9711cf35,
+        0x06003636, 0x8301d636, 0x16103036, 0x9311d036,
+        0x02003737, 0x8701d737, 0x12103137, 0x9711d137,
+        0x02003838, 0x8701d838, 0x12103238, 0x9711d238,
+        0x06003939, 0x8301d939, 0x16103339, 0x9311d339,
+        0x1200343a, 0x9701d43a, 0x1210343a, 0x9711d43a,
+        0x1600353b, 0x9301d53b, 0x1610353b, 0x9311d53b,
+        0x1600363c, 0x9301d63c, 0x1610363c, 0x9311d63c,
+        0x1200373d, 0x9701d73d, 0x1210373d, 0x9711d73d,
+        0x1200383e, 0x9701d83e, 0x1210383e, 0x9711d83e,
+        0x1600393f, 0x9301d93f, 0x1610393f, 0x9311d93f,
+        0x02004040, 0x8301e040, 0x16103a40, 0x9311da40,
+        0x06004141, 0x8701e141, 0x12103b41, 0x9711db41,
+        0x06004242, 0x8701e242, 0x16103c42, 0x9311dc42,
+        0x02004343, 0x8301e343, 0x12103d43, 0x9711dd43,
+        0x06004444, 0x8701e444, 0x12103e44, 0x9711de44,
+        0x02004545, 0x8301e545, 0x16103f45, 0x9311df45,
+        0x02004646, 0x8301e646, 0x12104046, 0x9311e046,
+        0x06004747, 0x8701e747, 0x16104147, 0x9711e147,
+        0x06004848, 0x8701e848, 0x16104248, 0x9711e248,
+        0x02004949, 0x8301e949, 0x12104349, 0x9311e349,
+        0x1600444a, 0x9701e44a, 0x1610444a, 0x9711e44a,
+        0x1200454b, 0x9301e54b, 0x1210454b, 0x9311e54b,
+        0x1200464c, 0x9301e64c, 0x1210464c, 0x9311e64c,
+        0x1600474d, 0x9701e74d, 0x1610474d, 0x9711e74d,
+        0x1600484e, 0x9701e84e, 0x1610484e, 0x9711e84e,
+        0x1200494f, 0x9301e94f, 0x1210494f, 0x9311e94f,
+        0x06005050, 0x8701f050, 0x12104a50, 0x9311ea50,
+        0x02005151, 0x8301f151, 0x16104b51, 0x9711eb51,
+        0x02005252, 0x8301f252, 0x12104c52, 0x9311ec52,
+        0x06005353, 0x8701f353, 0x16104d53, 0x9711ed53,
+        0x02005454, 0x8301f454, 0x16104e54, 0x9711ee54,
+        0x06005555, 0x8701f555, 0x12104f55, 0x9311ef55,
+        0x06005656, 0x8701f656, 0x16105056, 0x9711f056,
+        0x02005757, 0x8301f757, 0x12105157, 0x9311f157,
+        0x02005858, 0x8301f858, 0x12105258, 0x9311f258,
+        0x06005959, 0x8701f959, 0x16105359, 0x9711f359,
+        0x1200545a, 0x9301f45a, 0x1210545a, 0x9311f45a,
+        0x1600555b, 0x9701f55b, 0x1610555b, 0x9711f55b,
+        0x1600565c, 0x9701f65c, 0x1610565c, 0x9711f65c,
+        0x1200575d, 0x9301f75d, 0x1210575d, 0x9311f75d,
+        0x1200585e, 0x9301f85e, 0x1210585e, 0x9311f85e,
+        0x1600595f, 0x9701f95f, 0x1610595f, 0x9711f95f,
+        0x06006060, 0x47010060, 0x16105a60, 0x9711fa60,
+        0x02006161, 0x03010161, 0x12105b61, 0x9311fb61,
+        0x02006262, 0x03010262, 0x16105c62, 0x9711fc62,
+        0x06006363, 0x07010363, 0x12105d63, 0x9311fd63,
+        0x02006464, 0x03010464, 0x12105e64, 0x9311fe64,
+        0x06006565, 0x07010565, 0x16105f65, 0x9711ff65,
+        0x06006666, 0x07010666, 0x16106066, 0x57110066,
+        0x02006767, 0x03010767, 0x12106167, 0x13110167,
+        0x02006868, 0x03010868, 0x12106268, 0x13110268,
+        0x06006969, 0x07010969, 0x16106369, 0x17110369,
+        0x1200646a, 0x1301046a, 0x1210646a, 0x1311046a,
+        0x1600656b, 0x1701056b, 0x1610656b, 0x1711056b,
+        0x1600666c, 0x1701066c, 0x1610666c, 0x1711066c,
+        0x1200676d, 0x1301076d, 0x1210676d, 0x1311076d,
+        0x1200686e, 0x1301086e, 0x1210686e, 0x1311086e,
+        0x1600696f, 0x1701096f, 0x1610696f, 0x1711096f,
+        0x02007070, 0x03011070, 0x16106a70, 0x17110a70,
+        0x06007171, 0x07011171, 0x12106b71, 0x13110b71,
+        0x06007272, 0x07011272, 0x16106c72, 0x17110c72,
+        0x02007373, 0x03011373, 0x12106d73, 0x13110d73,
+        0x06007474, 0x07011474, 0x12106e74, 0x13110e74,
+        0x02007575, 0x03011575, 0x16106f75, 0x17110f75,
+        0x02007676, 0x03011676, 0x12107076, 0x13111076,
+        0x06007777, 0x07011777, 0x16107177, 0x17111177,
+        0x06007878, 0x07011878, 0x16107278, 0x17111278,
+        0x02007979, 0x03011979, 0x12107379, 0x13111379,
+        0x1600747a, 0x1701147a, 0x1610747a, 0x1711147a,
+        0x1200757b, 0x1301157b, 0x1210757b, 0x1311157b,
+        0x1200767c, 0x1301167c, 0x1210767c, 0x1311167c,
+        0x1600777d, 0x1701177d, 0x1610777d, 0x1711177d,
+        0x1600787e, 0x1701187e, 0x1610787e, 0x1711187e,
+        0x1200797f, 0x1301197f, 0x1210797f, 0x1311197f,
+        0x82008080, 0x03012080, 0x12107a80, 0x13111a80,
+        0x86008181, 0x07012181, 0x16107b81, 0x17111b81,
+        0x86008282, 0x07012282, 0x12107c82, 0x13111c82,
+        0x82008383, 0x03012383, 0x16107d83, 0x17111d83,
+        0x86008484, 0x07012484, 0x16107e84, 0x17111e84,
+        0x82008585, 0x03012585, 0x12107f85, 0x13111f85,
+        0x82008686, 0x03012686, 0x92108086, 0x13112086,
+        0x86008787, 0x07012787, 0x96108187, 0x17112187,
+        0x86008888, 0x07012888, 0x96108288, 0x17112288,
+        0x82008989, 0x03012989, 0x92108389, 0x13112389,
+        0x9600848a, 0x1701248a, 0x9610848a, 0x1711248a,
+        0x9200858b, 0x1301258b, 0x9210858b, 0x1311258b,
+        0x9200868c, 0x1301268c, 0x9210868c, 0x1311268c,
+        0x9600878d, 0x1701278d, 0x9610878d, 0x1711278d,
+        0x9600888e, 0x1701288e, 0x9610888e, 0x1711288e,
+        0x9200898f, 0x1301298f, 0x9210898f, 0x1311298f,
+        0x86009090, 0x07013090, 0x92108a90, 0x13112a90,
+        0x82009191, 0x03013191, 0x96108b91, 0x17112b91,
+        0x82009292, 0x03013292, 0x92108c92, 0x13112c92,
+        0x86009393, 0x07013393, 0x96108d93, 0x17112d93,
+        0x82009494, 0x03013494, 0x96108e94, 0x17112e94,
+        0x86009595, 0x07013595, 0x92108f95, 0x13112f95,
+        0x86009696, 0x07013696, 0x96109096, 0x17113096,
+        0x82009797, 0x03013797, 0x92109197, 0x13113197,
+        0x82009898, 0x03013898, 0x92109298, 0x13113298,
+        0x86009999, 0x07013999, 0x96109399, 0x17113399,
+        0x1300349a, 0x1301349a, 0x1310349a, 0x1311349a,
+        0x1700359b, 0x1701359b, 0x1710359b, 0x1711359b,
+        0x1700369c, 0x1701369c, 0x1710369c, 0x1711369c,
+        0x1300379d, 0x1301379d, 0x1310379d, 0x1311379d,
+        0x1300389e, 0x1301389e, 0x1310389e, 0x1311389e,
+        0x1700399f, 0x1701399f, 0x1710399f, 0x1711399f,
+        0x030040a0, 0x030140a0, 0x17103aa0, 0x17113aa0,
+        0x070041a1, 0x070141a1, 0x13103ba1, 0x13113ba1,
+        0x070042a2, 0x070142a2, 0x17103ca2, 0x17113ca2,
+        0x030043a3, 0x030143a3, 0x13103da3, 0x13113da3,
+        0x070044a4, 0x070144a4, 0x13103ea4, 0x13113ea4,
+        0x030045a5, 0x030145a5, 0x17103fa5, 0x17113fa5,
+        0x030046a6, 0x030146a6, 0x131040a6, 0x131140a6,
+        0x070047a7, 0x070147a7, 0x171041a7, 0x171141a7,
+        0x070048a8, 0x070148a8, 0x171042a8, 0x171142a8,
+        0x030049a9, 0x030149a9, 0x131043a9, 0x131143a9,
+        0x170044aa, 0x170144aa, 0x171044aa, 0x171144aa,
+        0x130045ab, 0x130145ab, 0x131045ab, 0x131145ab,
+        0x130046ac, 0x130146ac, 0x131046ac, 0x131146ac,
+        0x170047ad, 0x170147ad, 0x171047ad, 0x171147ad,
+        0x170048ae, 0x170148ae, 0x171048ae, 0x171148ae,
+        0x130049af, 0x130149af, 0x131049af, 0x131149af,
+        0x070050b0, 0x070150b0, 0x13104ab0, 0x13114ab0,
+        0x030051b1, 0x030151b1, 0x17104bb1, 0x17114bb1,
+        0x030052b2, 0x030152b2, 0x13104cb2, 0x13114cb2,
+        0x070053b3, 0x070153b3, 0x17104db3, 0x17114db3,
+        0x030054b4, 0x030154b4, 0x17104eb4, 0x17114eb4,
+        0x070055b5, 0x070155b5, 0x13104fb5, 0x13114fb5,
+        0x070056b6, 0x070156b6, 0x171050b6, 0x171150b6,
+        0x030057b7, 0x030157b7, 0x131051b7, 0x131151b7,
+        0x030058b8, 0x030158b8, 0x131052b8, 0x131152b8,
+        0x070059b9, 0x070159b9, 0x171053b9, 0x171153b9,
+        0x130054ba, 0x130154ba, 0x131054ba, 0x131154ba,
+        0x170055bb, 0x170155bb, 0x171055bb, 0x171155bb,
+        0x170056bc, 0x170156bc, 0x171056bc, 0x171156bc,
+        0x130057bd, 0x130157bd, 0x131057bd, 0x131157bd,
+        0x130058be, 0x130158be, 0x131058be, 0x131158be,
+        0x170059bf, 0x170159bf, 0x171059bf, 0x171159bf,
+        0x070060c0, 0x070160c0, 0x17105ac0, 0x17115ac0,
+        0x030061c1, 0x030161c1, 0x13105bc1, 0x13115bc1,
+        0x030062c2, 0x030162c2, 0x17105cc2, 0x17115cc2,
+        0x070063c3, 0x070163c3, 0x13105dc3, 0x13115dc3,
+        0x030064c4, 0x030164c4, 0x13105ec4, 0x13115ec4,
+        0x070065c5, 0x070165c5, 0x17105fc5, 0x17115fc5,
+        0x070066c6, 0x070166c6, 0x171060c6, 0x171160c6,
+        0x030067c7, 0x030167c7, 0x131061c7, 0x131161c7,
+        0x030068c8, 0x030168c8, 0x131062c8, 0x131162c8,
+        0x070069c9, 0x070169c9, 0x171063c9, 0x171163c9,
+        0x130064ca, 0x130164ca, 0x131064ca, 0x131164ca,
+        0x170065cb, 0x170165cb, 0x171065cb, 0x171165cb,
+        0x170066cc, 0x170166cc, 0x171066cc, 0x171166cc,
+        0x130067cd, 0x130167cd, 0x131067cd, 0x131167cd,
+        0x130068ce, 0x130168ce, 0x131068ce, 0x131168ce,
+        0x170069cf, 0x170169cf, 0x171069cf, 0x171169cf,
+        0x030070d0, 0x030170d0, 0x17106ad0, 0x17116ad0,
+        0x070071d1, 0x070171d1, 0x13106bd1, 0x13116bd1,
+        0x070072d2, 0x070172d2, 0x17106cd2, 0x17116cd2,
+        0x030073d3, 0x030173d3, 0x13106dd3, 0x13116dd3,
+        0x070074d4, 0x070174d4, 0x13106ed4, 0x13116ed4,
+        0x030075d5, 0x030175d5, 0x17106fd5, 0x17116fd5,
+        0x030076d6, 0x030176d6, 0x131070d6, 0x131170d6,
+        0x070077d7, 0x070177d7, 0x171071d7, 0x171171d7,
+        0x070078d8, 0x070178d8, 0x171072d8, 0x171172d8,
+        0x030079d9, 0x030179d9, 0x131073d9, 0x131173d9,
+        0x170074da, 0x170174da, 0x171074da, 0x171174da,
+        0x130075db, 0x130175db, 0x131075db, 0x131175db,
+        0x130076dc, 0x130176dc, 0x131076dc, 0x131176dc,
+        0x170077dd, 0x170177dd, 0x171077dd, 0x171177dd,
+        0x170078de, 0x170178de, 0x171078de, 0x171178de,
+        0x130079df, 0x130179df, 0x131079df, 0x131179df,
+        0x830080e0, 0x830180e0, 0x13107ae0, 0x13117ae0,
+        0x870081e1, 0x870181e1, 0x17107be1, 0x17117be1,
+        0x870082e2, 0x870182e2, 0x13107ce2, 0x13117ce2,
+        0x830083e3, 0x830183e3, 0x17107de3, 0x17117de3,
+        0x870084e4, 0x870184e4, 0x17107ee4, 0x17117ee4,
+        0x830085e5, 0x830185e5, 0x13107fe5, 0x13117fe5,
+        0x830086e6, 0x830186e6, 0x931080e6, 0x931180e6,
+        0x870087e7, 0x870187e7, 0x971081e7, 0x971181e7,
+        0x870088e8, 0x870188e8, 0x971082e8, 0x971182e8,
+        0x830089e9, 0x830189e9, 0x931083e9, 0x931183e9,
+        0x970084ea, 0x970184ea, 0x971084ea, 0x971184ea,
+        0x930085eb, 0x930185eb, 0x931085eb, 0x931185eb,
+        0x930086ec, 0x930186ec, 0x931086ec, 0x931186ec,
+        0x970087ed, 0x970187ed, 0x971087ed, 0x971187ed,
+        0x970088ee, 0x970188ee, 0x971088ee, 0x971188ee,
+        0x930089ef, 0x930189ef, 0x931089ef, 0x931189ef,
+        0x870090f0, 0x870190f0, 0x93108af0, 0x93118af0,
+        0x830091f1, 0x830191f1, 0x97108bf1, 0x97118bf1,
+        0x830092f2, 0x830192f2, 0x93108cf2, 0x93118cf2,
+        0x870093f3, 0x870193f3, 0x97108df3, 0x97118df3,
+        0x830094f4, 0x830194f4, 0x97108ef4, 0x97118ef4,
+        0x870095f5, 0x870195f5, 0x93108ff5, 0x93118ff5,
+        0x870096f6, 0x870196f6, 0x971090f6, 0x971190f6,
+        0x830097f7, 0x830197f7, 0x931091f7, 0x931191f7,
+        0x830098f8, 0x830198f8, 0x931092f8, 0x931192f8,
+        0x870099f9, 0x870199f9, 0x971093f9, 0x971193f9,
+        0x930094fa, 0x930194fa, 0x931094fa, 0x931194fa,
+        0x970095fb, 0x970195fb, 0x971095fb, 0x971195fb,
+        0x970096fc, 0x970196fc, 0x971096fc, 0x971196fc,
+        0x930097fd, 0x930197fd, 0x931097fd, 0x931197fd,
+        0x930098fe, 0x930198fe, 0x931098fe, 0x931198fe,
+        0x970099ff, 0x970199ff, 0x971099ff, 0x971199ff,
+    };
+
+    MK_INSN(das, "das");
+
+    for (i = 0; i < 1024; ++i) {
+        unsigned tmp = test_cases[i];
+        inregs.eax = tmp & 0xff;
+        inregs.eflags = (tmp >> 16) & 0xff;
+	exec_in_big_real_mode(&inregs, &outregs,
+			      insn_das,
+			      insn_das_end - insn_das);
+
+	if (!regs_equal(&inregs, &outregs, R_AX)
+            || outregs.eax != ((tmp >> 8) & 0xff)
+            || (outregs.eflags & 0xff) != (tmp >> 24)) {
+		print_serial("DAS Test: FAIL\n");
+                return;
+        }
+    }
+    print_serial("DAS Test: PASS\n");
+}
+
 void realmode_start(void)
 {
 	test_null();
@@ -1292,6 +1575,7 @@ void realmode_start(void)
 	test_idiv();
 	test_loopcc();
 	test_cbw();
+	test_das();
 
 	exit(0);
 }
-- 
1.7.1

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux