//Original:/proj/frio/dv/testcases/core/c_ptr2op_pr_shadd_1_2/c_ptr2op_pr_shadd_1_2.dsp // Spec Reference: ptr2op shadd preg, pregs, 1 (2) # mach: bfin .include "testutils.inc" start R0 = 0; ASTAT = R0; // check p-reg to p-reg move imm32 p1, 0xf0921203; imm32 p2, 0xbe041305; imm32 p3, 0xd0d61407; imm32 p4, 0xa00a1089; imm32 p5, 0x400a300b; imm32 sp, 0xe07c180d; imm32 fp, 0x206e109f; P1 = ( P1 + P1 ) << 2; P2 = ( P2 + P1 ) << 2; P3 = ( P3 + P1 ) << 2; P4 = ( P4 + P1 ) << 1; P5 = ( P5 + P1 ) << 2; SP = ( SP + P1 ) << 2; FP = ( FP + P1 ) << 1; CHECKREG p1, 0x84909018; CHECKREG p2, 0x0A528C74; CHECKREG p3, 0x559A907C; CHECKREG p4, 0x49354142; CHECKREG p5, 0x126B008C; CHECKREG sp, 0x9432A094; CHECKREG fp, 0x49FD416E; imm32 p1, 0x50021003; imm32 p2, 0x26041005; imm32 p3, 0x60761007; imm32 p4, 0x20081009; imm32 p5, 0xf00a900b; imm32 sp, 0xb00c1a0d; imm32 fp, 0x200e10bf; P1 = ( P1 + P2 ) << 1; P2 = ( P2 + P2 ) << 2; P3 = ( P3 + P2 ) << 1; P4 = ( P4 + P2 ) << 2; P5 = ( P5 + P2 ) << 2; SP = ( SP + P2 ) << 1; FP = ( FP + P2 ) << 2; CHECKREG p1, 0xEC0C4010; CHECKREG p2, 0x30208028; CHECKREG p3, 0x212D205E; CHECKREG p4, 0x40A240C4; CHECKREG p5, 0x80AC40CC; CHECKREG sp, 0xC059346A; CHECKREG fp, 0x40BA439C; imm32 p1, 0x30026003; imm32 p2, 0x40051005; imm32 p3, 0x20e65057; imm32 p4, 0x2d081089; imm32 p5, 0xf00ab07b; imm32 sp, 0x200c1b0d; imm32 fp, 0x200e100f; P1 = ( P1 + P3 ) << 2; P2 = ( P2 + P3 ) << 1; P3 = ( P3 + P3 ) << 2; P4 = ( P4 + P3 ) << 2; P5 = ( P5 + P3 ) << 2; SP = ( SP + P3 ) << 1; FP = ( FP + P3 ) << 2; CHECKREG p1, 0x43A2C168; CHECKREG p2, 0xC1D6C0B8; CHECKREG p3, 0x073282B8; CHECKREG p4, 0xD0EA4D04; CHECKREG p5, 0xDCF4CCCC; CHECKREG sp, 0x4E7D3B8A; CHECKREG fp, 0x9D024B1C; imm32 p1, 0xa0021003; imm32 p2, 0x2c041005; imm32 p3, 0x40b61007; imm32 p4, 0x250d1009; imm32 p5, 0x260ae00b; imm32 sp, 0x700c110d; imm32 fp, 0x900e104f; P1 = ( P1 + P4 ) << 1; P2 = ( P2 + P4 ) << 2; P3 = ( P3 + P4 ) << 2; P4 = ( P4 + P4 ) << 2; P5 = ( P5 + P4 ) << 1; SP = ( SP + P4 ) << 2; FP = ( FP + P4 ) << 2; CHECKREG p1, 0x8A1E4018; CHECKREG p2, 0x44448038; CHECKREG p3, 0x970C8040; CHECKREG p4, 0x28688048; CHECKREG p5, 0x9CE6C0A6; CHECKREG sp, 0x61D24554; CHECKREG fp, 0xE1DA425C; imm32 p1, 0xae021003; imm32 p2, 0x22041705; imm32 p3, 0x20361487; imm32 p4, 0x90743009; imm32 p5, 0xa60aa00b; imm32 sp, 0xb00c1b0d; imm32 fp, 0x200e10cf; P1 = ( P1 + P5 ) << 2; P2 = ( P2 + P5 ) << 2; P3 = ( P3 + P5 ) << 2; P4 = ( P4 + P5 ) << 2; P5 = ( P5 + P5 ) << 1; SP = ( SP + P5 ) << 2; FP = ( FP + P5 ) << 2; CHECKREG p1, 0x5032C038; CHECKREG p2, 0x203ADC40; CHECKREG p3, 0x1902D248; CHECKREG p4, 0xD9FB4050; CHECKREG p5, 0x982A802C; CHECKREG sp, 0x20DA6CE4; CHECKREG fp, 0xE0E243EC; imm32 p1, 0x50021003; imm32 p2, 0x62041005; imm32 p3, 0x70e61007; imm32 p4, 0x290f1009; imm32 p5, 0x700ab00b; imm32 sp, 0x2a0c1d0d; imm32 fp, 0xb00e1e0f; P1 = ( P1 + SP ) << 2; P2 = ( P2 + SP ) << 1; P3 = ( P3 + SP ) << 2; P4 = ( P4 + SP ) << 2; P5 = ( P5 + SP ) << 2; SP = ( SP + SP ) << 1; FP = ( FP + SP ) << 2; CHECKREG p1, 0xE838B440; CHECKREG p2, 0x18205A24; CHECKREG p3, 0x6BC8B450; CHECKREG p4, 0x4C6CB458; CHECKREG p5, 0x685B3460; CHECKREG sp, 0xA8307434; CHECKREG fp, 0x60FA490C; imm32 p1, 0x32002003; imm32 p2, 0x24004005; imm32 p3, 0xe0506007; imm32 p4, 0xd0068009; imm32 p5, 0x230ae00b; imm32 sp, 0x205c1f0d; imm32 fp, 0x200e10bf; P1 = ( P1 + FP ) << 2; P2 = ( P2 + FP ) << 1; P3 = ( P3 + FP ) << 2; P4 = ( P4 + FP ) << 2; P5 = ( P5 + FP ) << 2; SP = ( SP + FP ) << 2; FP = ( FP + FP ) << 2; CHECKREG p1, 0x4838C308; CHECKREG p2, 0x881CA188; CHECKREG p3, 0x0179C318; CHECKREG p4, 0xC0524320; CHECKREG p5, 0x0C63C328; CHECKREG sp, 0x01A8BF30; CHECKREG fp, 0x007085F8; pass