1/* Insert/extract functions for the ARC opcodes. 2 Copyright (C) 2015-2017 Free Software Foundation, Inc. 3 4 Contributed by Claudiu Zissulescu (claziss@synopsys.com) 5 6 This file is part of libopcodes. 7 8 This library is free software; you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 3, or (at your option) 11 any later version. 12 13 It is distributed in the hope that it will be useful, but WITHOUT 14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 15 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 16 License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program; if not, write to the Free Software Foundation, 20 Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ 21 22#ifndef INSERT_LIMM 23#define INSERT_LIMM 24/* mask = 00000000000000000000000000000000 25 insn = 00100bbb00101111FBBB111110001001. */ 26static unsigned long long 27insert_limm (unsigned long long insn ATTRIBUTE_UNUSED, 28 long long int value ATTRIBUTE_UNUSED, const char **errmsg ATTRIBUTE_UNUSED) 29{ 30 31 return insn; 32} 33#endif /* INSERT_LIMM */ 34 35#ifndef EXTRACT_LIMM 36#define EXTRACT_LIMM 37/* mask = 00000000000000000000000000000000. */ 38static ATTRIBUTE_UNUSED int 39extract_limm (unsigned long long insn ATTRIBUTE_UNUSED, bfd_boolean * invalid ATTRIBUTE_UNUSED) 40{ 41 unsigned value = 0; 42 43 return value; 44} 45#endif /* EXTRACT_LIMM */ 46 47#ifndef INSERT_UIMM6_20 48#define INSERT_UIMM6_20 49/* mask = 00000000000000000000111111000000 50 insn = 00100bbb01101111FBBBuuuuuu001001. */ 51static unsigned long long 52insert_uimm6_20 (unsigned long long insn ATTRIBUTE_UNUSED, 53 long long int value ATTRIBUTE_UNUSED, 54 const char **errmsg ATTRIBUTE_UNUSED) 55{ 56 57 insn |= ((value >> 0) & 0x003f) << 6; 58 59 return insn; 60} 61#endif /* INSERT_UIMM6_20 */ 62 63#ifndef EXTRACT_UIMM6_20 64#define EXTRACT_UIMM6_20 65/* mask = 00000000000000000000111111000000. */ 66static long long int 67extract_uimm6_20 (unsigned long long insn ATTRIBUTE_UNUSED, 68 bfd_boolean * invalid ATTRIBUTE_UNUSED) 69{ 70 unsigned value = 0; 71 72 value |= ((insn >> 6) & 0x003f) << 0; 73 74 return value; 75} 76#endif /* EXTRACT_UIMM6_20 */ 77 78#ifndef INSERT_SIMM12_20 79#define INSERT_SIMM12_20 80/* mask = 00000000000000000000111111222222 81 insn = 00110bbb10101000FBBBssssssSSSSSS. */ 82static unsigned long long 83insert_simm12_20 (unsigned long long insn ATTRIBUTE_UNUSED, 84 long long int value ATTRIBUTE_UNUSED, 85 const char **errmsg ATTRIBUTE_UNUSED) 86{ 87 88 insn |= ((value >> 0) & 0x003f) << 6; 89 insn |= ((value >> 6) & 0x003f) << 0; 90 91 return insn; 92} 93#endif /* INSERT_SIMM12_20 */ 94 95#ifndef EXTRACT_SIMM12_20 96#define EXTRACT_SIMM12_20 97/* mask = 00000000000000000000111111222222. */ 98static long long int 99extract_simm12_20 (unsigned long long insn ATTRIBUTE_UNUSED, 100 bfd_boolean * invalid ATTRIBUTE_UNUSED) 101{ 102 int value = 0; 103 104 value |= ((insn >> 6) & 0x003f) << 0; 105 value |= ((insn >> 0) & 0x003f) << 6; 106 107 /* Extend the sign. */ 108 int signbit = 1 << (12 - 1); 109 value = (value ^ signbit) - signbit; 110 111 return value; 112} 113#endif /* EXTRACT_SIMM12_20 */ 114 115#ifndef INSERT_SIMM3_5_S 116#define INSERT_SIMM3_5_S 117/* mask = 0000011100000000 118 insn = 01110ssshhh001HH. */ 119static ATTRIBUTE_UNUSED unsigned 120insert_simm3_5_s (unsigned long long insn ATTRIBUTE_UNUSED, 121 long long int value ATTRIBUTE_UNUSED, 122 const char **errmsg ATTRIBUTE_UNUSED) 123{ 124 125 insn |= ((value >> 0) & 0x0007) << 8; 126 127 return insn; 128} 129#endif /* INSERT_SIMM3_5_S */ 130 131#ifndef EXTRACT_SIMM3_5_S 132#define EXTRACT_SIMM3_5_S 133/* mask = 0000011100000000. */ 134static ATTRIBUTE_UNUSED int 135extract_simm3_5_s (unsigned long long insn ATTRIBUTE_UNUSED, 136 bfd_boolean * invalid ATTRIBUTE_UNUSED) 137{ 138 int value = 0; 139 140 value |= ((insn >> 8) & 0x0007) << 0; 141 142 /* Extend the sign. */ 143 int signbit = 1 << (3 - 1); 144 value = (value ^ signbit) - signbit; 145 146 return value; 147} 148#endif /* EXTRACT_SIMM3_5_S */ 149 150#ifndef INSERT_LIMM_S 151#define INSERT_LIMM_S 152/* mask = 0000000000000000 153 insn = 01110sss11000111. */ 154static ATTRIBUTE_UNUSED unsigned 155insert_limm_s (unsigned long long insn ATTRIBUTE_UNUSED, 156 long long int value ATTRIBUTE_UNUSED, 157 const char **errmsg ATTRIBUTE_UNUSED) 158{ 159 160 return insn; 161} 162#endif /* INSERT_LIMM_S */ 163 164#ifndef EXTRACT_LIMM_S 165#define EXTRACT_LIMM_S 166/* mask = 0000000000000000. */ 167static ATTRIBUTE_UNUSED int 168extract_limm_s (unsigned long long insn ATTRIBUTE_UNUSED, bfd_boolean * invalid ATTRIBUTE_UNUSED) 169{ 170 unsigned value = 0; 171 172 return value; 173} 174#endif /* EXTRACT_LIMM_S */ 175 176#ifndef INSERT_UIMM7_A32_11_S 177#define INSERT_UIMM7_A32_11_S 178/* mask = 0000000000011111 179 insn = 11000bbb100uuuuu. */ 180static unsigned long long 181insert_uimm7_a32_11_s (unsigned long long insn ATTRIBUTE_UNUSED, 182 long long int value ATTRIBUTE_UNUSED, 183 const char **errmsg ATTRIBUTE_UNUSED) 184{ 185 if (value & 0x03) 186 *errmsg = _("Target address is not 32bit aligned."); 187 188 insn |= ((value >> 2) & 0x001f) << 0; 189 190 return insn; 191} 192#endif /* INSERT_UIMM7_A32_11_S */ 193 194#ifndef EXTRACT_UIMM7_A32_11_S 195#define EXTRACT_UIMM7_A32_11_S 196/* mask = 0000000000011111. */ 197static long long int 198extract_uimm7_a32_11_s (unsigned long long insn ATTRIBUTE_UNUSED, 199 bfd_boolean * invalid ATTRIBUTE_UNUSED) 200{ 201 unsigned value = 0; 202 203 value |= ((insn >> 0) & 0x001f) << 2; 204 205 return value; 206} 207#endif /* EXTRACT_UIMM7_A32_11_S */ 208 209#ifndef INSERT_UIMM7_9_S 210#define INSERT_UIMM7_9_S 211/* mask = 0000000001111111 212 insn = 11100bbb0uuuuuuu. */ 213static unsigned long long 214insert_uimm7_9_s (unsigned long long insn ATTRIBUTE_UNUSED, 215 long long int value ATTRIBUTE_UNUSED, 216 const char **errmsg ATTRIBUTE_UNUSED) 217{ 218 219 insn |= ((value >> 0) & 0x007f) << 0; 220 221 return insn; 222} 223#endif /* INSERT_UIMM7_9_S */ 224 225#ifndef EXTRACT_UIMM7_9_S 226#define EXTRACT_UIMM7_9_S 227/* mask = 0000000001111111. */ 228static long long int 229extract_uimm7_9_s (unsigned long long insn ATTRIBUTE_UNUSED, 230 bfd_boolean * invalid ATTRIBUTE_UNUSED) 231{ 232 unsigned value = 0; 233 234 value |= ((insn >> 0) & 0x007f) << 0; 235 236 return value; 237} 238#endif /* EXTRACT_UIMM7_9_S */ 239 240#ifndef INSERT_UIMM3_13_S 241#define INSERT_UIMM3_13_S 242/* mask = 0000000000000111 243 insn = 01101bbbccc00uuu. */ 244static unsigned long long 245insert_uimm3_13_s (unsigned long long insn ATTRIBUTE_UNUSED, 246 long long int value ATTRIBUTE_UNUSED, 247 const char **errmsg ATTRIBUTE_UNUSED) 248{ 249 250 insn |= ((value >> 0) & 0x0007) << 0; 251 252 return insn; 253} 254#endif /* INSERT_UIMM3_13_S */ 255 256#ifndef EXTRACT_UIMM3_13_S 257#define EXTRACT_UIMM3_13_S 258/* mask = 0000000000000111. */ 259static long long int 260extract_uimm3_13_s (unsigned long long insn ATTRIBUTE_UNUSED, 261 bfd_boolean * invalid ATTRIBUTE_UNUSED) 262{ 263 unsigned value = 0; 264 265 value |= ((insn >> 0) & 0x0007) << 0; 266 267 return value; 268} 269#endif /* EXTRACT_UIMM3_13_S */ 270 271#ifndef INSERT_SIMM11_A32_7_S 272#define INSERT_SIMM11_A32_7_S 273/* mask = 0000000111111111 274 insn = 1100111sssssssss. */ 275static unsigned long long 276insert_simm11_a32_7_s (unsigned long long insn ATTRIBUTE_UNUSED, 277 long long int value ATTRIBUTE_UNUSED, 278 const char **errmsg ATTRIBUTE_UNUSED) 279{ 280 if (value & 0x03) 281 *errmsg = _("Target address is not 32bit aligned."); 282 283 insn |= ((value >> 2) & 0x01ff) << 0; 284 285 return insn; 286} 287#endif /* INSERT_SIMM11_A32_7_S */ 288 289#ifndef EXTRACT_SIMM11_A32_7_S 290#define EXTRACT_SIMM11_A32_7_S 291/* mask = 0000000111111111. */ 292static long long int 293extract_simm11_a32_7_s (unsigned long long insn ATTRIBUTE_UNUSED, 294 bfd_boolean * invalid ATTRIBUTE_UNUSED) 295{ 296 int value = 0; 297 298 value |= ((insn >> 0) & 0x01ff) << 2; 299 300 /* Extend the sign. */ 301 int signbit = 1 << (11 - 1); 302 value = (value ^ signbit) - signbit; 303 304 return value; 305} 306#endif /* EXTRACT_SIMM11_A32_7_S */ 307 308#ifndef INSERT_UIMM6_13_S 309#define INSERT_UIMM6_13_S 310/* mask = 0000000002220111 311 insn = 01001bbb0UUU1uuu. */ 312static unsigned long long 313insert_uimm6_13_s (unsigned long long insn ATTRIBUTE_UNUSED, 314 long long int value ATTRIBUTE_UNUSED, 315 const char **errmsg ATTRIBUTE_UNUSED) 316{ 317 318 insn |= ((value >> 0) & 0x0007) << 0; 319 insn |= ((value >> 3) & 0x0007) << 4; 320 321 return insn; 322} 323#endif /* INSERT_UIMM6_13_S */ 324 325#ifndef EXTRACT_UIMM6_13_S 326#define EXTRACT_UIMM6_13_S 327/* mask = 0000000002220111. */ 328static long long int 329extract_uimm6_13_s (unsigned long long insn ATTRIBUTE_UNUSED, 330 bfd_boolean * invalid ATTRIBUTE_UNUSED) 331{ 332 unsigned value = 0; 333 334 value |= ((insn >> 0) & 0x0007) << 0; 335 value |= ((insn >> 4) & 0x0007) << 3; 336 337 return value; 338} 339#endif /* EXTRACT_UIMM6_13_S */ 340 341#ifndef INSERT_UIMM5_11_S 342#define INSERT_UIMM5_11_S 343/* mask = 0000000000011111 344 insn = 10111bbb000uuuuu. */ 345static unsigned long long 346insert_uimm5_11_s (unsigned long long insn ATTRIBUTE_UNUSED, 347 long long int value ATTRIBUTE_UNUSED, 348 const char **errmsg ATTRIBUTE_UNUSED) 349{ 350 351 insn |= ((value >> 0) & 0x001f) << 0; 352 353 return insn; 354} 355#endif /* INSERT_UIMM5_11_S */ 356 357#ifndef EXTRACT_UIMM5_11_S 358#define EXTRACT_UIMM5_11_S 359/* mask = 0000000000011111. */ 360static long long int 361extract_uimm5_11_s (unsigned long long insn ATTRIBUTE_UNUSED, 362 bfd_boolean * invalid ATTRIBUTE_UNUSED) 363{ 364 unsigned value = 0; 365 366 value |= ((insn >> 0) & 0x001f) << 0; 367 368 return value; 369} 370#endif /* EXTRACT_UIMM5_11_S */ 371 372#ifndef INSERT_SIMM9_A16_8 373#define INSERT_SIMM9_A16_8 374/* mask = 00000000111111102000000000000000 375 insn = 00001bbbsssssss1SBBBCCCCCCN01110. */ 376static unsigned long long 377insert_simm9_a16_8 (unsigned long long insn ATTRIBUTE_UNUSED, 378 long long int value ATTRIBUTE_UNUSED, 379 const char **errmsg ATTRIBUTE_UNUSED) 380{ 381 if (value & 0x01) 382 *errmsg = _("Target address is not 16bit aligned."); 383 384 insn |= ((value >> 1) & 0x007f) << 17; 385 insn |= ((value >> 8) & 0x0001) << 15; 386 387 return insn; 388} 389#endif /* INSERT_SIMM9_A16_8 */ 390 391#ifndef EXTRACT_SIMM9_A16_8 392#define EXTRACT_SIMM9_A16_8 393/* mask = 00000000111111102000000000000000. */ 394static long long int 395extract_simm9_a16_8 (unsigned long long insn ATTRIBUTE_UNUSED, 396 bfd_boolean * invalid ATTRIBUTE_UNUSED) 397{ 398 int value = 0; 399 400 value |= ((insn >> 17) & 0x007f) << 1; 401 value |= ((insn >> 15) & 0x0001) << 8; 402 403 /* Extend the sign. */ 404 int signbit = 1 << (9 - 1); 405 value = (value ^ signbit) - signbit; 406 407 return value; 408} 409#endif /* EXTRACT_SIMM9_A16_8 */ 410 411#ifndef INSERT_UIMM6_8 412#define INSERT_UIMM6_8 413/* mask = 00000000000000000000111111000000 414 insn = 00001bbbsssssss1SBBBuuuuuuN11110. */ 415static unsigned long long 416insert_uimm6_8 (unsigned long long insn ATTRIBUTE_UNUSED, 417 long long int value ATTRIBUTE_UNUSED, 418 const char **errmsg ATTRIBUTE_UNUSED) 419{ 420 421 insn |= ((value >> 0) & 0x003f) << 6; 422 423 return insn; 424} 425#endif /* INSERT_UIMM6_8 */ 426 427#ifndef EXTRACT_UIMM6_8 428#define EXTRACT_UIMM6_8 429/* mask = 00000000000000000000111111000000. */ 430static long long int 431extract_uimm6_8 (unsigned long long insn ATTRIBUTE_UNUSED, 432 bfd_boolean * invalid ATTRIBUTE_UNUSED) 433{ 434 unsigned value = 0; 435 436 value |= ((insn >> 6) & 0x003f) << 0; 437 438 return value; 439} 440#endif /* EXTRACT_UIMM6_8 */ 441 442#ifndef INSERT_SIMM21_A16_5 443#define INSERT_SIMM21_A16_5 444/* mask = 00000111111111102222222222000000 445 insn = 00000ssssssssss0SSSSSSSSSSNQQQQQ. */ 446static unsigned long long 447insert_simm21_a16_5 (unsigned long long insn ATTRIBUTE_UNUSED, 448 long long int value ATTRIBUTE_UNUSED, 449 const char **errmsg ATTRIBUTE_UNUSED) 450{ 451 if (value & 0x01) 452 *errmsg = _("Target address is not 16bit aligned."); 453 454 insn |= ((value >> 1) & 0x03ff) << 17; 455 insn |= ((value >> 11) & 0x03ff) << 6; 456 457 return insn; 458} 459#endif /* INSERT_SIMM21_A16_5 */ 460 461#ifndef EXTRACT_SIMM21_A16_5 462#define EXTRACT_SIMM21_A16_5 463/* mask = 00000111111111102222222222000000. */ 464static long long int 465extract_simm21_a16_5 (unsigned long long insn ATTRIBUTE_UNUSED, 466 bfd_boolean * invalid ATTRIBUTE_UNUSED) 467{ 468 int value = 0; 469 470 value |= ((insn >> 17) & 0x03ff) << 1; 471 value |= ((insn >> 6) & 0x03ff) << 11; 472 473 /* Extend the sign. */ 474 int signbit = 1 << (21 - 1); 475 value = (value ^ signbit) - signbit; 476 477 return value; 478} 479#endif /* EXTRACT_SIMM21_A16_5 */ 480 481#ifndef INSERT_SIMM25_A16_5 482#define INSERT_SIMM25_A16_5 483/* mask = 00000111111111102222222222003333 484 insn = 00000ssssssssss1SSSSSSSSSSNRtttt. */ 485static unsigned long long 486insert_simm25_a16_5 (unsigned long long insn ATTRIBUTE_UNUSED, 487 long long int value ATTRIBUTE_UNUSED, 488 const char **errmsg ATTRIBUTE_UNUSED) 489{ 490 if (value & 0x01) 491 *errmsg = _("Target address is not 16bit aligned."); 492 493 insn |= ((value >> 1) & 0x03ff) << 17; 494 insn |= ((value >> 11) & 0x03ff) << 6; 495 insn |= ((value >> 21) & 0x000f) << 0; 496 497 return insn; 498} 499#endif /* INSERT_SIMM25_A16_5 */ 500 501#ifndef EXTRACT_SIMM25_A16_5 502#define EXTRACT_SIMM25_A16_5 503/* mask = 00000111111111102222222222003333. */ 504static long long int 505extract_simm25_a16_5 (unsigned long long insn ATTRIBUTE_UNUSED, 506 bfd_boolean * invalid ATTRIBUTE_UNUSED) 507{ 508 int value = 0; 509 510 value |= ((insn >> 17) & 0x03ff) << 1; 511 value |= ((insn >> 6) & 0x03ff) << 11; 512 value |= ((insn >> 0) & 0x000f) << 21; 513 514 /* Extend the sign. */ 515 int signbit = 1 << (25 - 1); 516 value = (value ^ signbit) - signbit; 517 518 return value; 519} 520#endif /* EXTRACT_SIMM25_A16_5 */ 521 522#ifndef INSERT_SIMM10_A16_7_S 523#define INSERT_SIMM10_A16_7_S 524/* mask = 0000000111111111 525 insn = 1111001sssssssss. */ 526static unsigned long long 527insert_simm10_a16_7_s (unsigned long long insn ATTRIBUTE_UNUSED, 528 long long int value ATTRIBUTE_UNUSED, 529 const char **errmsg ATTRIBUTE_UNUSED) 530{ 531 if (value & 0x01) 532 *errmsg = _("Target address is not 16bit aligned."); 533 534 insn |= ((value >> 1) & 0x01ff) << 0; 535 536 return insn; 537} 538#endif /* INSERT_SIMM10_A16_7_S */ 539 540#ifndef EXTRACT_SIMM10_A16_7_S 541#define EXTRACT_SIMM10_A16_7_S 542/* mask = 0000000111111111. */ 543static long long int 544extract_simm10_a16_7_s (unsigned long long insn ATTRIBUTE_UNUSED, 545 bfd_boolean * invalid ATTRIBUTE_UNUSED) 546{ 547 int value = 0; 548 549 value |= ((insn >> 0) & 0x01ff) << 1; 550 551 /* Extend the sign. */ 552 int signbit = 1 << (10 - 1); 553 value = (value ^ signbit) - signbit; 554 555 return value; 556} 557#endif /* EXTRACT_SIMM10_A16_7_S */ 558 559#ifndef INSERT_SIMM7_A16_10_S 560#define INSERT_SIMM7_A16_10_S 561/* mask = 0000000000111111 562 insn = 1111011000ssssss. */ 563static unsigned long long 564insert_simm7_a16_10_s (unsigned long long insn ATTRIBUTE_UNUSED, 565 long long int value ATTRIBUTE_UNUSED, 566 const char **errmsg ATTRIBUTE_UNUSED) 567{ 568 if (value & 0x01) 569 *errmsg = _("Target address is not 16bit aligned."); 570 571 insn |= ((value >> 1) & 0x003f) << 0; 572 573 return insn; 574} 575#endif /* INSERT_SIMM7_A16_10_S */ 576 577#ifndef EXTRACT_SIMM7_A16_10_S 578#define EXTRACT_SIMM7_A16_10_S 579/* mask = 0000000000111111. */ 580static long long int 581extract_simm7_a16_10_s (unsigned long long insn ATTRIBUTE_UNUSED, 582 bfd_boolean * invalid ATTRIBUTE_UNUSED) 583{ 584 int value = 0; 585 586 value |= ((insn >> 0) & 0x003f) << 1; 587 588 /* Extend the sign. */ 589 int signbit = 1 << (7 - 1); 590 value = (value ^ signbit) - signbit; 591 592 return value; 593} 594#endif /* EXTRACT_SIMM7_A16_10_S */ 595 596#ifndef INSERT_SIMM21_A32_5 597#define INSERT_SIMM21_A32_5 598/* mask = 00000111111111002222222222000000 599 insn = 00001sssssssss00SSSSSSSSSSNQQQQQ. */ 600static unsigned long long 601insert_simm21_a32_5 (unsigned long long insn ATTRIBUTE_UNUSED, 602 long long int value ATTRIBUTE_UNUSED, 603 const char **errmsg ATTRIBUTE_UNUSED) 604{ 605 if (value & 0x03) 606 *errmsg = _("Target address is not 32bit aligned."); 607 608 insn |= ((value >> 2) & 0x01ff) << 18; 609 insn |= ((value >> 11) & 0x03ff) << 6; 610 611 return insn; 612} 613#endif /* INSERT_SIMM21_A32_5 */ 614 615#ifndef EXTRACT_SIMM21_A32_5 616#define EXTRACT_SIMM21_A32_5 617/* mask = 00000111111111002222222222000000. */ 618static long long int 619extract_simm21_a32_5 (unsigned long long insn ATTRIBUTE_UNUSED, 620 bfd_boolean * invalid ATTRIBUTE_UNUSED) 621{ 622 int value = 0; 623 624 value |= ((insn >> 18) & 0x01ff) << 2; 625 value |= ((insn >> 6) & 0x03ff) << 11; 626 627 /* Extend the sign. */ 628 int signbit = 1 << (21 - 1); 629 value = (value ^ signbit) - signbit; 630 631 return value; 632} 633#endif /* EXTRACT_SIMM21_A32_5 */ 634 635#ifndef INSERT_SIMM25_A32_5 636#define INSERT_SIMM25_A32_5 637/* mask = 00000111111111002222222222003333 638 insn = 00001sssssssss10SSSSSSSSSSNRtttt. */ 639static unsigned long long 640insert_simm25_a32_5 (unsigned long long insn ATTRIBUTE_UNUSED, 641 long long int value ATTRIBUTE_UNUSED, 642 const char **errmsg ATTRIBUTE_UNUSED) 643{ 644 if (value & 0x03) 645 *errmsg = _("Target address is not 32bit aligned."); 646 647 insn |= ((value >> 2) & 0x01ff) << 18; 648 insn |= ((value >> 11) & 0x03ff) << 6; 649 insn |= ((value >> 21) & 0x000f) << 0; 650 651 return insn; 652} 653#endif /* INSERT_SIMM25_A32_5 */ 654 655#ifndef EXTRACT_SIMM25_A32_5 656#define EXTRACT_SIMM25_A32_5 657/* mask = 00000111111111002222222222003333. */ 658static long long int 659extract_simm25_a32_5 (unsigned long long insn ATTRIBUTE_UNUSED, 660 bfd_boolean * invalid ATTRIBUTE_UNUSED) 661{ 662 int value = 0; 663 664 value |= ((insn >> 18) & 0x01ff) << 2; 665 value |= ((insn >> 6) & 0x03ff) << 11; 666 value |= ((insn >> 0) & 0x000f) << 21; 667 668 /* Extend the sign. */ 669 int signbit = 1 << (25 - 1); 670 value = (value ^ signbit) - signbit; 671 672 return value; 673} 674#endif /* EXTRACT_SIMM25_A32_5 */ 675 676#ifndef INSERT_SIMM13_A32_5_S 677#define INSERT_SIMM13_A32_5_S 678/* mask = 0000011111111111 679 insn = 11111sssssssssss. */ 680static unsigned long long 681insert_simm13_a32_5_s (unsigned long long insn ATTRIBUTE_UNUSED, 682 long long int value ATTRIBUTE_UNUSED, 683 const char **errmsg ATTRIBUTE_UNUSED) 684{ 685 if (value & 0x03) 686 *errmsg = _("Target address is not 32bit aligned."); 687 688 insn |= ((value >> 2) & 0x07ff) << 0; 689 690 return insn; 691} 692#endif /* INSERT_SIMM13_A32_5_S */ 693 694#ifndef EXTRACT_SIMM13_A32_5_S 695#define EXTRACT_SIMM13_A32_5_S 696/* mask = 0000011111111111. */ 697static long long int 698extract_simm13_a32_5_s (unsigned long long insn ATTRIBUTE_UNUSED, 699 bfd_boolean * invalid ATTRIBUTE_UNUSED) 700{ 701 int value = 0; 702 703 value |= ((insn >> 0) & 0x07ff) << 2; 704 705 /* Extend the sign. */ 706 int signbit = 1 << (13 - 1); 707 value = (value ^ signbit) - signbit; 708 709 return value; 710} 711#endif /* EXTRACT_SIMM13_A32_5_S */ 712 713#ifndef INSERT_SIMM8_A16_9_S 714#define INSERT_SIMM8_A16_9_S 715/* mask = 0000000001111111 716 insn = 11101bbb1sssssss. */ 717static unsigned long long 718insert_simm8_a16_9_s (unsigned long long insn ATTRIBUTE_UNUSED, 719 long long int value ATTRIBUTE_UNUSED, 720 const char **errmsg ATTRIBUTE_UNUSED) 721{ 722 if (value & 0x01) 723 *errmsg = _("Target address is not 16bit aligned."); 724 725 insn |= ((value >> 1) & 0x007f) << 0; 726 727 return insn; 728} 729#endif /* INSERT_SIMM8_A16_9_S */ 730 731#ifndef EXTRACT_SIMM8_A16_9_S 732#define EXTRACT_SIMM8_A16_9_S 733/* mask = 0000000001111111. */ 734static long long int 735extract_simm8_a16_9_s (unsigned long long insn ATTRIBUTE_UNUSED, 736 bfd_boolean * invalid ATTRIBUTE_UNUSED) 737{ 738 int value = 0; 739 740 value |= ((insn >> 0) & 0x007f) << 1; 741 742 /* Extend the sign. */ 743 int signbit = 1 << (8 - 1); 744 value = (value ^ signbit) - signbit; 745 746 return value; 747} 748#endif /* EXTRACT_SIMM8_A16_9_S */ 749 750#ifndef INSERT_UIMM3_23 751#define INSERT_UIMM3_23 752/* mask = 00000000000000000000000111000000 753 insn = 00100011011011110001RRRuuu111111. */ 754static unsigned long long 755insert_uimm3_23 (unsigned long long insn ATTRIBUTE_UNUSED, 756 long long int value ATTRIBUTE_UNUSED, 757 const char **errmsg ATTRIBUTE_UNUSED) 758{ 759 760 insn |= ((value >> 0) & 0x0007) << 6; 761 762 return insn; 763} 764#endif /* INSERT_UIMM3_23 */ 765 766#ifndef EXTRACT_UIMM3_23 767#define EXTRACT_UIMM3_23 768/* mask = 00000000000000000000000111000000. */ 769static long long int 770extract_uimm3_23 (unsigned long long insn ATTRIBUTE_UNUSED, 771 bfd_boolean * invalid ATTRIBUTE_UNUSED) 772{ 773 unsigned value = 0; 774 775 value |= ((insn >> 6) & 0x0007) << 0; 776 777 return value; 778} 779#endif /* EXTRACT_UIMM3_23 */ 780 781#ifndef INSERT_UIMM10_6_S 782#define INSERT_UIMM10_6_S 783/* mask = 0000001111111111 784 insn = 010111uuuuuuuuuu. */ 785static unsigned long long 786insert_uimm10_6_s (unsigned long long insn ATTRIBUTE_UNUSED, 787 long long int value ATTRIBUTE_UNUSED, 788 const char **errmsg ATTRIBUTE_UNUSED) 789{ 790 791 insn |= ((value >> 0) & 0x03ff) << 0; 792 793 return insn; 794} 795#endif /* INSERT_UIMM10_6_S */ 796 797#ifndef EXTRACT_UIMM10_6_S 798#define EXTRACT_UIMM10_6_S 799/* mask = 0000001111111111. */ 800static long long int 801extract_uimm10_6_s (unsigned long long insn ATTRIBUTE_UNUSED, 802 bfd_boolean * invalid ATTRIBUTE_UNUSED) 803{ 804 unsigned value = 0; 805 806 value |= ((insn >> 0) & 0x03ff) << 0; 807 808 return value; 809} 810#endif /* EXTRACT_UIMM10_6_S */ 811 812#ifndef INSERT_UIMM6_11_S 813#define INSERT_UIMM6_11_S 814/* mask = 0000002200011110 815 insn = 110000UU111uuuu0. */ 816static unsigned long long 817insert_uimm6_11_s (unsigned long long insn ATTRIBUTE_UNUSED, 818 long long int value ATTRIBUTE_UNUSED, 819 const char **errmsg ATTRIBUTE_UNUSED) 820{ 821 822 insn |= ((value >> 0) & 0x000f) << 1; 823 insn |= ((value >> 4) & 0x0003) << 8; 824 825 return insn; 826} 827#endif /* INSERT_UIMM6_11_S */ 828 829#ifndef EXTRACT_UIMM6_11_S 830#define EXTRACT_UIMM6_11_S 831/* mask = 0000002200011110. */ 832static long long int 833extract_uimm6_11_s (unsigned long long insn ATTRIBUTE_UNUSED, 834 bfd_boolean * invalid ATTRIBUTE_UNUSED) 835{ 836 unsigned value = 0; 837 838 value |= ((insn >> 1) & 0x000f) << 0; 839 value |= ((insn >> 8) & 0x0003) << 4; 840 841 return value; 842} 843#endif /* EXTRACT_UIMM6_11_S */ 844 845#ifndef INSERT_SIMM9_8 846#define INSERT_SIMM9_8 847/* mask = 00000000111111112000000000000000 848 insn = 00010bbbssssssssSBBBDaaZZXAAAAAA. */ 849static unsigned long long 850insert_simm9_8 (unsigned long long insn ATTRIBUTE_UNUSED, 851 long long int value ATTRIBUTE_UNUSED, 852 const char **errmsg ATTRIBUTE_UNUSED) 853{ 854 855 insn |= ((value >> 0) & 0x00ff) << 16; 856 insn |= ((value >> 8) & 0x0001) << 15; 857 858 return insn; 859} 860#endif /* INSERT_SIMM9_8 */ 861 862#ifndef EXTRACT_SIMM9_8 863#define EXTRACT_SIMM9_8 864/* mask = 00000000111111112000000000000000. */ 865static long long int 866extract_simm9_8 (unsigned long long insn ATTRIBUTE_UNUSED, 867 bfd_boolean * invalid ATTRIBUTE_UNUSED) 868{ 869 int value = 0; 870 871 value |= ((insn >> 16) & 0x00ff) << 0; 872 value |= ((insn >> 15) & 0x0001) << 8; 873 874 /* Extend the sign. */ 875 int signbit = 1 << (9 - 1); 876 value = (value ^ signbit) - signbit; 877 878 return value; 879} 880#endif /* EXTRACT_SIMM9_8 */ 881 882#ifndef INSERT_UIMM10_A32_8_S 883#define INSERT_UIMM10_A32_8_S 884/* mask = 0000000011111111 885 insn = 11010bbbuuuuuuuu. */ 886static unsigned long long 887insert_uimm10_a32_8_s (unsigned long long insn ATTRIBUTE_UNUSED, 888 long long int value ATTRIBUTE_UNUSED, 889 const char **errmsg ATTRIBUTE_UNUSED) 890{ 891 if (value & 0x03) 892 *errmsg = _("Target address is not 32bit aligned."); 893 894 insn |= ((value >> 2) & 0x00ff) << 0; 895 896 return insn; 897} 898#endif /* INSERT_UIMM10_A32_8_S */ 899 900#ifndef EXTRACT_UIMM10_A32_8_S 901#define EXTRACT_UIMM10_A32_8_S 902/* mask = 0000000011111111. */ 903static long long int 904extract_uimm10_a32_8_s (unsigned long long insn ATTRIBUTE_UNUSED, 905 bfd_boolean * invalid ATTRIBUTE_UNUSED) 906{ 907 unsigned value = 0; 908 909 value |= ((insn >> 0) & 0x00ff) << 2; 910 911 return value; 912} 913#endif /* EXTRACT_UIMM10_A32_8_S */ 914 915#ifndef INSERT_SIMM9_7_S 916#define INSERT_SIMM9_7_S 917/* mask = 0000000111111111 918 insn = 1100101sssssssss. */ 919static unsigned long long 920insert_simm9_7_s (unsigned long long insn ATTRIBUTE_UNUSED, 921 long long int value ATTRIBUTE_UNUSED, 922 const char **errmsg ATTRIBUTE_UNUSED) 923{ 924 925 insn |= ((value >> 0) & 0x01ff) << 0; 926 927 return insn; 928} 929#endif /* INSERT_SIMM9_7_S */ 930 931#ifndef EXTRACT_SIMM9_7_S 932#define EXTRACT_SIMM9_7_S 933/* mask = 0000000111111111. */ 934static long long int 935extract_simm9_7_s (unsigned long long insn ATTRIBUTE_UNUSED, 936 bfd_boolean * invalid ATTRIBUTE_UNUSED) 937{ 938 int value = 0; 939 940 value |= ((insn >> 0) & 0x01ff) << 0; 941 942 /* Extend the sign. */ 943 int signbit = 1 << (9 - 1); 944 value = (value ^ signbit) - signbit; 945 946 return value; 947} 948#endif /* EXTRACT_SIMM9_7_S */ 949 950#ifndef INSERT_UIMM6_A16_11_S 951#define INSERT_UIMM6_A16_11_S 952/* mask = 0000000000011111 953 insn = 10010bbbcccuuuuu. */ 954static unsigned long long 955insert_uimm6_a16_11_s (unsigned long long insn ATTRIBUTE_UNUSED, 956 long long int value ATTRIBUTE_UNUSED, 957 const char **errmsg ATTRIBUTE_UNUSED) 958{ 959 if (value & 0x01) 960 *errmsg = _("Target address is not 16bit aligned."); 961 962 insn |= ((value >> 1) & 0x001f) << 0; 963 964 return insn; 965} 966#endif /* INSERT_UIMM6_A16_11_S */ 967 968#ifndef EXTRACT_UIMM6_A16_11_S 969#define EXTRACT_UIMM6_A16_11_S 970/* mask = 0000000000011111. */ 971static long long int 972extract_uimm6_a16_11_s (unsigned long long insn ATTRIBUTE_UNUSED, 973 bfd_boolean * invalid ATTRIBUTE_UNUSED) 974{ 975 unsigned value = 0; 976 977 value |= ((insn >> 0) & 0x001f) << 1; 978 979 return value; 980} 981#endif /* EXTRACT_UIMM6_A16_11_S */ 982 983#ifndef INSERT_UIMM5_A32_11_S 984#define INSERT_UIMM5_A32_11_S 985/* mask = 0000020000011000 986 insn = 01000U00hhhuu1HH. */ 987static unsigned long long 988insert_uimm5_a32_11_s (unsigned long long insn ATTRIBUTE_UNUSED, 989 long long int value ATTRIBUTE_UNUSED, 990 const char **errmsg ATTRIBUTE_UNUSED) 991{ 992 if (value & 0x03) 993 *errmsg = _("Target address is not 32bit aligned."); 994 995 insn |= ((value >> 2) & 0x0003) << 3; 996 insn |= ((value >> 4) & 0x0001) << 10; 997 998 return insn; 999} 1000#endif /* INSERT_UIMM5_A32_11_S */ 1001 1002#ifndef EXTRACT_UIMM5_A32_11_S 1003#define EXTRACT_UIMM5_A32_11_S 1004/* mask = 0000020000011000. */ 1005static long long int 1006extract_uimm5_a32_11_s (unsigned long long insn ATTRIBUTE_UNUSED, 1007 bfd_boolean * invalid ATTRIBUTE_UNUSED) 1008{ 1009 unsigned value = 0; 1010 1011 value |= ((insn >> 3) & 0x0003) << 2; 1012 value |= ((insn >> 10) & 0x0001) << 4; 1013 1014 return value; 1015} 1016#endif /* EXTRACT_UIMM5_A32_11_S */ 1017 1018#ifndef INSERT_SIMM11_A32_13_S 1019#define INSERT_SIMM11_A32_13_S 1020/* mask = 0000022222200111 1021 insn = 01010SSSSSS00sss. */ 1022static unsigned long long 1023insert_simm11_a32_13_s (unsigned long long insn ATTRIBUTE_UNUSED, 1024 long long int value ATTRIBUTE_UNUSED, 1025 const char **errmsg ATTRIBUTE_UNUSED) 1026{ 1027 if (value & 0x03) 1028 *errmsg = _("Target address is not 32bit aligned."); 1029 1030 insn |= ((value >> 2) & 0x0007) << 0; 1031 insn |= ((value >> 5) & 0x003f) << 5; 1032 1033 return insn; 1034} 1035#endif /* INSERT_SIMM11_A32_13_S */ 1036 1037#ifndef EXTRACT_SIMM11_A32_13_S 1038#define EXTRACT_SIMM11_A32_13_S 1039/* mask = 0000022222200111. */ 1040static long long int 1041extract_simm11_a32_13_s (unsigned long long insn ATTRIBUTE_UNUSED, 1042 bfd_boolean * invalid ATTRIBUTE_UNUSED) 1043{ 1044 int value = 0; 1045 1046 value |= ((insn >> 0) & 0x0007) << 2; 1047 value |= ((insn >> 5) & 0x003f) << 5; 1048 1049 /* Extend the sign. */ 1050 int signbit = 1 << (11 - 1); 1051 value = (value ^ signbit) - signbit; 1052 1053 return value; 1054} 1055#endif /* EXTRACT_SIMM11_A32_13_S */ 1056 1057#ifndef INSERT_UIMM7_13_S 1058#define INSERT_UIMM7_13_S 1059/* mask = 0000000022220111 1060 insn = 01010bbbUUUU1uuu. */ 1061static unsigned long long 1062insert_uimm7_13_s (unsigned long long insn ATTRIBUTE_UNUSED, 1063 long long int value ATTRIBUTE_UNUSED, 1064 const char **errmsg ATTRIBUTE_UNUSED) 1065{ 1066 1067 insn |= ((value >> 0) & 0x0007) << 0; 1068 insn |= ((value >> 3) & 0x000f) << 4; 1069 1070 return insn; 1071} 1072#endif /* INSERT_UIMM7_13_S */ 1073 1074#ifndef EXTRACT_UIMM7_13_S 1075#define EXTRACT_UIMM7_13_S 1076/* mask = 0000000022220111. */ 1077static long long int 1078extract_uimm7_13_s (unsigned long long insn ATTRIBUTE_UNUSED, 1079 bfd_boolean * invalid ATTRIBUTE_UNUSED) 1080{ 1081 unsigned value = 0; 1082 1083 value |= ((insn >> 0) & 0x0007) << 0; 1084 value |= ((insn >> 4) & 0x000f) << 3; 1085 1086 return value; 1087} 1088#endif /* EXTRACT_UIMM7_13_S */ 1089 1090#ifndef INSERT_UIMM6_A16_21 1091#define INSERT_UIMM6_A16_21 1092/* mask = 00000000000000000000011111000000 1093 insn = 00101bbb01001100RBBBRuuuuuAAAAAA. */ 1094static unsigned long long 1095insert_uimm6_a16_21 (unsigned long long insn ATTRIBUTE_UNUSED, 1096 long long int value ATTRIBUTE_UNUSED, 1097 const char **errmsg ATTRIBUTE_UNUSED) 1098{ 1099 if (value & 0x01) 1100 *errmsg = _("Target address is not 16bit aligned."); 1101 1102 insn |= ((value >> 1) & 0x001f) << 6; 1103 1104 return insn; 1105} 1106#endif /* INSERT_UIMM6_A16_21 */ 1107 1108#ifndef EXTRACT_UIMM6_A16_21 1109#define EXTRACT_UIMM6_A16_21 1110/* mask = 00000000000000000000011111000000. */ 1111static long long int 1112extract_uimm6_a16_21 (unsigned long long insn ATTRIBUTE_UNUSED, 1113 bfd_boolean * invalid ATTRIBUTE_UNUSED) 1114{ 1115 unsigned value = 0; 1116 1117 value |= ((insn >> 6) & 0x001f) << 1; 1118 1119 return value; 1120} 1121#endif /* EXTRACT_UIMM6_A16_21 */ 1122 1123#ifndef INSERT_UIMM7_11_S 1124#define INSERT_UIMM7_11_S 1125/* mask = 0000022200011110 1126 insn = 11000UUU110uuuu0. */ 1127static unsigned long long 1128insert_uimm7_11_s (unsigned long long insn ATTRIBUTE_UNUSED, 1129 long long int value ATTRIBUTE_UNUSED, 1130 const char **errmsg ATTRIBUTE_UNUSED) 1131{ 1132 1133 insn |= ((value >> 0) & 0x000f) << 1; 1134 insn |= ((value >> 4) & 0x0007) << 8; 1135 1136 return insn; 1137} 1138#endif /* INSERT_UIMM7_11_S */ 1139 1140#ifndef EXTRACT_UIMM7_11_S 1141#define EXTRACT_UIMM7_11_S 1142/* mask = 0000022200011110. */ 1143static long long int 1144extract_uimm7_11_s (unsigned long long insn ATTRIBUTE_UNUSED, 1145 bfd_boolean * invalid ATTRIBUTE_UNUSED) 1146{ 1147 unsigned value = 0; 1148 1149 value |= ((insn >> 1) & 0x000f) << 0; 1150 value |= ((insn >> 8) & 0x0007) << 4; 1151 1152 return value; 1153} 1154#endif /* EXTRACT_UIMM7_11_S */ 1155 1156#ifndef INSERT_UIMM7_A16_20 1157#define INSERT_UIMM7_A16_20 1158/* mask = 00000000000000000000111111000000 1159 insn = 00100RRR111010000RRRuuuuuu1QQQQQ. */ 1160static unsigned long long 1161insert_uimm7_a16_20 (unsigned long long insn ATTRIBUTE_UNUSED, 1162 long long int value ATTRIBUTE_UNUSED, 1163 const char **errmsg ATTRIBUTE_UNUSED) 1164{ 1165 if (value & 0x01) 1166 *errmsg = _("Target address is not 16bit aligned."); 1167 1168 insn |= ((value >> 1) & 0x003f) << 6; 1169 1170 return insn; 1171} 1172#endif /* INSERT_UIMM7_A16_20 */ 1173 1174#ifndef EXTRACT_UIMM7_A16_20 1175#define EXTRACT_UIMM7_A16_20 1176/* mask = 00000000000000000000111111000000. */ 1177static long long int 1178extract_uimm7_a16_20 (unsigned long long insn ATTRIBUTE_UNUSED, 1179 bfd_boolean * invalid ATTRIBUTE_UNUSED) 1180{ 1181 unsigned value = 0; 1182 1183 value |= ((insn >> 6) & 0x003f) << 1; 1184 1185 return value; 1186} 1187#endif /* EXTRACT_UIMM7_A16_20 */ 1188 1189#ifndef INSERT_SIMM13_A16_20 1190#define INSERT_SIMM13_A16_20 1191/* mask = 00000000000000000000111111222222 1192 insn = 00100RRR101010000RRRssssssSSSSSS. */ 1193static unsigned long long 1194insert_simm13_a16_20 (unsigned long long insn ATTRIBUTE_UNUSED, 1195 long long int value ATTRIBUTE_UNUSED, 1196 const char **errmsg ATTRIBUTE_UNUSED) 1197{ 1198 if (value & 0x01) 1199 *errmsg = _("Target address is not 16bit aligned."); 1200 1201 insn |= ((value >> 1) & 0x003f) << 6; 1202 insn |= ((value >> 7) & 0x003f) << 0; 1203 1204 return insn; 1205} 1206#endif /* INSERT_SIMM13_A16_20 */ 1207 1208#ifndef EXTRACT_SIMM13_A16_20 1209#define EXTRACT_SIMM13_A16_20 1210/* mask = 00000000000000000000111111222222. */ 1211static long long int 1212extract_simm13_a16_20 (unsigned long long insn ATTRIBUTE_UNUSED, 1213 bfd_boolean * invalid ATTRIBUTE_UNUSED) 1214{ 1215 int value = 0; 1216 1217 value |= ((insn >> 6) & 0x003f) << 1; 1218 value |= ((insn >> 0) & 0x003f) << 7; 1219 1220 /* Extend the sign. */ 1221 int signbit = 1 << (13 - 1); 1222 value = (value ^ signbit) - signbit; 1223 1224 return value; 1225} 1226#endif /* EXTRACT_SIMM13_A16_20 */ 1227 1228#ifndef INSERT_UIMM8_8_S 1229#define INSERT_UIMM8_8_S 1230/* mask = 0000000011111111 1231 insn = 11011bbbuuuuuuuu. */ 1232static unsigned long long 1233insert_uimm8_8_s (unsigned long long insn ATTRIBUTE_UNUSED, 1234 long long int value ATTRIBUTE_UNUSED, 1235 const char **errmsg ATTRIBUTE_UNUSED) 1236{ 1237 1238 insn |= ((value >> 0) & 0x00ff) << 0; 1239 1240 return insn; 1241} 1242#endif /* INSERT_UIMM8_8_S */ 1243 1244#ifndef EXTRACT_UIMM8_8_S 1245#define EXTRACT_UIMM8_8_S 1246/* mask = 0000000011111111. */ 1247static long long int 1248extract_uimm8_8_s (unsigned long long insn ATTRIBUTE_UNUSED, 1249 bfd_boolean * invalid ATTRIBUTE_UNUSED) 1250{ 1251 unsigned value = 0; 1252 1253 value |= ((insn >> 0) & 0x00ff) << 0; 1254 1255 return value; 1256} 1257#endif /* EXTRACT_UIMM8_8_S */ 1258 1259#ifndef INSERT_UIMM6_5_S 1260#define INSERT_UIMM6_5_S 1261/* mask = 0000011111100000 1262 insn = 01111uuuuuu11111. */ 1263static unsigned long long 1264insert_uimm6_5_s (unsigned long long insn ATTRIBUTE_UNUSED, 1265 long long int value ATTRIBUTE_UNUSED, 1266 const char **errmsg ATTRIBUTE_UNUSED) 1267{ 1268 1269 insn |= ((value >> 0) & 0x003f) << 5; 1270 1271 return insn; 1272} 1273#endif /* INSERT_UIMM6_5_S */ 1274 1275#ifndef EXTRACT_UIMM6_5_S 1276#define EXTRACT_UIMM6_5_S 1277/* mask = 0000011111100000. */ 1278static long long int 1279extract_uimm6_5_s (unsigned long long insn ATTRIBUTE_UNUSED, 1280 bfd_boolean * invalid ATTRIBUTE_UNUSED) 1281{ 1282 unsigned value = 0; 1283 1284 value |= ((insn >> 5) & 0x003f) << 0; 1285 1286 return value; 1287} 1288#endif /* EXTRACT_UIMM6_5_S */ 1289 1290#ifndef INSERT_UIMM6_AXX_ 1291#define INSERT_UIMM6_AXX_ 1292/* mask = 00000000000000000000000000000000 1293 insn = 00110bbb11100001100001100001QQQQ. */ 1294static ATTRIBUTE_UNUSED unsigned 1295insert_uimm6_axx_ (unsigned long long insn ATTRIBUTE_UNUSED, 1296 long long int value ATTRIBUTE_UNUSED, 1297 const char **errmsg ATTRIBUTE_UNUSED) 1298{ 1299 if (value & 0x3f) 1300 *errmsg = _("Target address is not 512bit aligned."); 1301 1302 return insn; 1303} 1304#endif /* INSERT_UIMM6_AXX_ */ 1305 1306#ifndef EXTRACT_UIMM6_AXX_ 1307#define EXTRACT_UIMM6_AXX_ 1308/* mask = 00000000000000000000000000000000. */ 1309static ATTRIBUTE_UNUSED int 1310extract_uimm6_axx_ (unsigned long long insn ATTRIBUTE_UNUSED, 1311 bfd_boolean * invalid ATTRIBUTE_UNUSED) 1312{ 1313 unsigned value = 0; 1314 1315 return value; 1316} 1317#endif /* EXTRACT_UIMM6_AXX_ */ 1318