data.isa (7221:99ae09123a46) | data.isa (7223:a2e1b4f22550) |
---|---|
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 --- 414 unchanged lines hidden (view full) --- 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) | 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 --- 414 unchanged lines hidden (view full) --- 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) |
431 buildRegDataInst("sasx", ''' 432 int32_t midRes, geBits = 0; 433 resTemp = 0; 434 int64_t arg1Low = sext<16>(bits(Op1.sw, 15, 0)); 435 int64_t arg1High = sext<16>(bits(Op1.sw, 31, 16)); 436 int64_t arg2Low = sext<16>(bits(Op2.sw, 15, 0)); 437 int64_t arg2High = sext<16>(bits(Op2.sw, 31, 16)); 438 midRes = arg1Low - arg2High; 439 if (midRes >= 0) { 440 geBits = geBits | 0x3; 441 } 442 replaceBits(resTemp, 15, 0, midRes); 443 midRes = arg1High + arg2Low; 444 if (midRes >= 0) { 445 geBits = geBits | 0xc; 446 } 447 replaceBits(resTemp, 31, 16, midRes); 448 Dest = resTemp; 449 resTemp = geBits; 450 ''', flagType="ge", buildNonCc=True) 451 buildRegDataInst("ssax", ''' 452 int32_t midRes, geBits = 0; 453 resTemp = 0; 454 int64_t arg1Low = sext<16>(bits(Op1.sw, 15, 0)); 455 int64_t arg1High = sext<16>(bits(Op1.sw, 31, 16)); 456 int64_t arg2Low = sext<16>(bits(Op2.sw, 15, 0)); 457 int64_t arg2High = sext<16>(bits(Op2.sw, 31, 16)); 458 midRes = arg1Low + arg2High; 459 if (midRes >= 0) { 460 geBits = geBits | 0x3; 461 } 462 replaceBits(resTemp, 15, 0, midRes); 463 midRes = arg1High - arg2Low; 464 if (midRes >= 0) { 465 geBits = geBits | 0xc; 466 } 467 replaceBits(resTemp, 31, 16, midRes); 468 Dest = resTemp; 469 resTemp = geBits; 470 ''', flagType="ge", buildNonCc=True) |
|
431 432 buildRegDataInst("uqadd16", ''' 433 uint32_t midRes; 434 for (unsigned i = 0; i < 2; i++) { 435 int high = (i + 1) * 16 - 1; 436 int low = i * 16; 437 uint64_t arg1 = bits(Op1, high, low); 438 uint64_t arg2 = bits(Op2, high, low); --- 171 unchanged lines hidden --- | 471 472 buildRegDataInst("uqadd16", ''' 473 uint32_t midRes; 474 for (unsigned i = 0; i < 2; i++) { 475 int high = (i + 1) * 16 - 1; 476 int low = i * 16; 477 uint64_t arg1 = bits(Op1, high, low); 478 uint64_t arg2 = bits(Op2, high, low); --- 171 unchanged lines hidden --- |