data.isa (7215:4fb71bcb1126) | data.isa (7217:34621fef50c5) |
---|---|
1// -*- mode:c++ -*- 2 3// Copyright (c) 2010 ARM Limited 4// All rights reserved 5// 6// The license below extends only to copyright in the software and shall 7// not be construed as granting a license to any other intellectual 8// property including but not limited to intellectual property relating --- 355 unchanged lines hidden (view full) --- 364 ''', flagType="none", buildCc=False) 365 366 buildRegDataInst("sadd8", ''' 367 uint32_t geBits = 0; 368 resTemp = 0; 369 for (unsigned i = 0; i < 4; i++) { 370 int high = (i + 1) * 8 - 1; 371 int low = i * 8; | 1// -*- mode:c++ -*- 2 3// Copyright (c) 2010 ARM Limited 4// All rights reserved 5// 6// The license below extends only to copyright in the software and shall 7// not be construed as granting a license to any other intellectual 8// property including but not limited to intellectual property relating --- 355 unchanged lines hidden (view full) --- 364 ''', flagType="none", buildCc=False) 365 366 buildRegDataInst("sadd8", ''' 367 uint32_t geBits = 0; 368 resTemp = 0; 369 for (unsigned i = 0; i < 4; i++) { 370 int high = (i + 1) * 8 - 1; 371 int low = i * 8; |
372 int32_t midRes = sext<8>(bits(Op1, high, low)) + 373 sext<8>(bits(Op2, high, low)); | 372 int32_t midRes = sext<8>(bits(Op1.sw, high, low)) + 373 sext<8>(bits(Op2.sw, high, low)); |
374 replaceBits(resTemp, high, low, midRes); 375 if (midRes >= 0) { 376 geBits = geBits | (1 << i); 377 } 378 } 379 Dest = resTemp; 380 resTemp = geBits; 381 ''', flagType="ge", buildNonCc=False) 382 buildRegDataInst("sadd16", ''' 383 uint32_t geBits = 0; 384 resTemp = 0; 385 for (unsigned i = 0; i < 2; i++) { 386 int high = (i + 1) * 16 - 1; 387 int low = i * 16; | 374 replaceBits(resTemp, high, low, midRes); 375 if (midRes >= 0) { 376 geBits = geBits | (1 << i); 377 } 378 } 379 Dest = resTemp; 380 resTemp = geBits; 381 ''', flagType="ge", buildNonCc=False) 382 buildRegDataInst("sadd16", ''' 383 uint32_t geBits = 0; 384 resTemp = 0; 385 for (unsigned i = 0; i < 2; i++) { 386 int high = (i + 1) * 16 - 1; 387 int low = i * 16; |
388 int32_t midRes = sext<16>(bits(Op1, high, low)) + 389 sext<16>(bits(Op2, high, low)); | 388 int32_t midRes = sext<16>(bits(Op1.sw, high, low)) + 389 sext<16>(bits(Op2.sw, high, low)); |
390 replaceBits(resTemp, high, low, midRes); 391 if (midRes >= 0) { 392 geBits = geBits | (0x3 << (i * 2)); 393 } 394 } 395 Dest = resTemp; 396 resTemp = geBits; 397 ''', flagType="ge", buildNonCc=False) | 390 replaceBits(resTemp, high, low, midRes); 391 if (midRes >= 0) { 392 geBits = geBits | (0x3 << (i * 2)); 393 } 394 } 395 Dest = resTemp; 396 resTemp = geBits; 397 ''', flagType="ge", buildNonCc=False) |
398 399 buildRegDataInst("ssub8", ''' 400 uint32_t geBits = 0; 401 resTemp = 0; 402 for (unsigned i = 0; i < 4; i++) { 403 int high = (i + 1) * 8 - 1; 404 int low = i * 8; 405 int32_t midRes = sext<8>(bits(Op1.sw, high, low)) - 406 sext<8>(bits(Op2.sw, high, low)); 407 replaceBits(resTemp, high, low, midRes); 408 if (midRes >= 0) { 409 geBits = geBits | (1 << i); 410 } 411 } 412 Dest = resTemp; 413 resTemp = geBits; 414 ''', flagType="ge", buildNonCc=False) 415 buildRegDataInst("ssub16", ''' 416 uint32_t geBits = 0; 417 resTemp = 0; 418 for (unsigned i = 0; i < 2; i++) { 419 int high = (i + 1) * 16 - 1; 420 int low = i * 16; 421 int32_t midRes = sext<16>(bits(Op1.sw, high, low)) - 422 sext<16>(bits(Op2.sw, high, low)); 423 replaceBits(resTemp, high, low, midRes); 424 if (midRes >= 0) { 425 geBits = geBits | (0x3 << (i * 2)); 426 } 427 } 428 Dest = resTemp; 429 resTemp = geBits; 430 ''', flagType="ge", buildNonCc=False) |
|
398}}; | 431}}; |