| OLD | NEW |
| 1 ; Test encoding of MIPS32 instructions used in intrinsic calls | 1 ; Test encoding of MIPS32 instructions used in intrinsic calls |
| 2 | 2 |
| 3 ; REQUIRES: allow_dump | 3 ; REQUIRES: allow_dump |
| 4 | 4 |
| 5 ; Compile using standalone assembler. | 5 ; Compile using standalone assembler. |
| 6 ; RUN: %p2i --filetype=asm -i %s --target=mips32 --args -O2 \ | 6 ; RUN: %p2i --filetype=asm -i %s --target=mips32 --args -O2 \ |
| 7 ; RUN: --allow-externally-defined-symbols \ | 7 ; RUN: --allow-externally-defined-symbols \ |
| 8 ; RUN: | FileCheck %s --check-prefix=ASM | 8 ; RUN: | FileCheck %s --check-prefix=ASM |
| 9 | 9 |
| 10 ; Show bytes in assembled standalone code. | 10 ; Show bytes in assembled standalone code. |
| (...skipping 23 matching lines...) Expand all Loading... |
| 34 define internal i32 @encBswap16(i32 %x) { | 34 define internal i32 @encBswap16(i32 %x) { |
| 35 entry: | 35 entry: |
| 36 %x_trunc = trunc i32 %x to i16 | 36 %x_trunc = trunc i32 %x to i16 |
| 37 %r = call i16 @llvm.bswap.i16(i16 %x_trunc) | 37 %r = call i16 @llvm.bswap.i16(i16 %x_trunc) |
| 38 %r_zext = zext i16 %r to i32 | 38 %r_zext = zext i16 %r to i32 |
| 39 ret i32 %r_zext | 39 ret i32 %r_zext |
| 40 } | 40 } |
| 41 | 41 |
| 42 ; ASM-LABEL: encBswap16 | 42 ; ASM-LABEL: encBswap16 |
| 43 ; ASM-NEXT: .LencBswap16$entry: | 43 ; ASM-NEXT: .LencBswap16$entry: |
| 44 ; ASM-NEXT: andi $a0, $a0, 65535 |
| 44 ; ASM-NEXT: sll $v0, $a0, 8 | 45 ; ASM-NEXT: sll $v0, $a0, 8 |
| 45 ; ASM-NEXT: lui $v1, 255 | 46 ; ASM-NEXT: lui $v1, 255 |
| 46 ; ASM-NEXT: and $v0, $v0, $v1 | 47 ; ASM-NEXT: and $v0, $v0, $v1 |
| 47 ; ASM-NEXT: sll $a0, $a0, 24 | 48 ; ASM-NEXT: sll $a0, $a0, 24 |
| 48 ; ASM-NEXT: or $v0, $a0, $v0 | 49 ; ASM-NEXT: or $v0, $a0, $v0 |
| 49 ; ASM-NEXT: srl $v0, $v0, 16 | 50 ; ASM-NEXT: srl $v0, $v0, 16 |
| 50 ; ASM-NEXT: andi $v0, $v0, 65535 | 51 ; ASM-NEXT: andi $v0, $v0, 65535 |
| 51 ; ASM-NEXT: jr $ra | 52 ; ASM-NEXT: jr $ra |
| 52 | 53 |
| 53 ; DIS-LABEL: <encBswap16>: | 54 ; DIS-LABEL: <encBswap16>: |
| 55 ; DIS-NEXT: 3084ffff andi a0,a0,0xffff |
| 54 ; DIS-NEXT: 00041200 sll v0,a0,0x8 | 56 ; DIS-NEXT: 00041200 sll v0,a0,0x8 |
| 55 ; DIS-NEXT: 3c0300ff lui v1,0xff | 57 ; DIS-NEXT: 3c0300ff lui v1,0xff |
| 56 ; DIS-NEXT: 00431024 and v0,v0,v1 | 58 ; DIS-NEXT: 00431024 and v0,v0,v1 |
| 57 ; DIS-NEXT: 00042600 sll a0,a0,0x18 | 59 ; DIS-NEXT: 00042600 sll a0,a0,0x18 |
| 58 ; DIS-NEXT: 00821025 or v0,a0,v0 | 60 ; DIS-NEXT: 00821025 or v0,a0,v0 |
| 59 ; DIS-NEXT: 00021402 srl v0,v0,0x10 | 61 ; DIS-NEXT: 00021402 srl v0,v0,0x10 |
| 60 ; DIS-NEXT: 3042ffff andi v0,v0,0xffff | 62 ; DIS-NEXT: 3042ffff andi v0,v0,0xffff |
| 61 ; DIS-NEXT: 03e00008 jr ra | 63 ; DIS-NEXT: 03e00008 jr ra |
| 62 | 64 |
| 63 ; IASM-LABEL: encBswap16 | 65 ; IASM-LABEL: encBswap16 |
| 64 ; IASM-NEXT: .LencBswap16$entry: | 66 ; IASM-NEXT: .LencBswap16$entry: |
| 67 ; IASM-NEXT: .byte 0xff |
| 68 ; IASM-NEXT: .byte 0xff |
| 69 ; IASM-NEXT: .byte 0x84 |
| 70 ; IASM-NEXT: .byte 0x30 |
| 65 ; IASM-NEXT: .byte 0x0 | 71 ; IASM-NEXT: .byte 0x0 |
| 66 ; IASM-NEXT: .byte 0x12 | 72 ; IASM-NEXT: .byte 0x12 |
| 67 ; IASM-NEXT: .byte 0x4 | 73 ; IASM-NEXT: .byte 0x4 |
| 68 ; IASM-NEXT: .byte 0x0 | 74 ; IASM-NEXT: .byte 0x0 |
| 69 ; IASM-NEXT: .byte 0xff | 75 ; IASM-NEXT: .byte 0xff |
| 70 ; IASM-NEXT: .byte 0x0 | 76 ; IASM-NEXT: .byte 0x0 |
| 71 ; IASM-NEXT: .byte 0x3 | 77 ; IASM-NEXT: .byte 0x3 |
| 72 ; IASM-NEXT: .byte 0x3c | 78 ; IASM-NEXT: .byte 0x3c |
| 73 ; IASM-NEXT: .byte 0x24 | 79 ; IASM-NEXT: .byte 0x24 |
| 74 ; IASM-NEXT: .byte 0x10 | 80 ; IASM-NEXT: .byte 0x10 |
| (...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 569 %r = call i64 @llvm.ctlz.i64(i64 %x, i1 false) | 575 %r = call i64 @llvm.ctlz.i64(i64 %x, i1 false) |
| 570 ret i64 %r | 576 ret i64 %r |
| 571 } | 577 } |
| 572 | 578 |
| 573 ; ASM-LABEL: encCtlz64 | 579 ; ASM-LABEL: encCtlz64 |
| 574 ; ASM-NEXT: .LencCtlz64$entry: | 580 ; ASM-NEXT: .LencCtlz64$entry: |
| 575 ; ASM-NEXT: clz $v0, $a1 | 581 ; ASM-NEXT: clz $v0, $a1 |
| 576 ; ASM-NEXT: clz $a0, $a0 | 582 ; ASM-NEXT: clz $a0, $a0 |
| 577 ; ASM-NEXT: addiu $a0, $a0, 32 | 583 ; ASM-NEXT: addiu $a0, $a0, 32 |
| 578 ; ASM-NEXT: movn $a0, $v0, $a1 | 584 ; ASM-NEXT: movn $a0, $v0, $a1 |
| 579 ; ASM-NEXT: » addiu» $v0, $zero, 0 | 585 ; ASM: » addiu» $v0, $zero, 0 |
| 580 ; ASM-NEXT: move $v1, $v0 | 586 ; ASM-NEXT: move $v1, $v0 |
| 581 ; ASM-NEXT: move $v0, $a0 | 587 ; ASM-NEXT: move $v0, $a0 |
| 582 ; ASM-NEXT: jr $ra | 588 ; ASM-NEXT: jr $ra |
| 583 | 589 |
| 584 ; DIS-LABEL: <encCtlz64>: | 590 ; DIS-LABEL: <encCtlz64>: |
| 585 ; DIS-NEXT: 70a21020 clz v0,a1 | 591 ; DIS-NEXT: 70a21020 clz v0,a1 |
| 586 ; DIS-NEXT: 70842020 clz a0,a0 | 592 ; DIS-NEXT: 70842020 clz a0,a0 |
| 587 ; DIS-NEXT: 24840020 addiu a0,a0,32 | 593 ; DIS-NEXT: 24840020 addiu a0,a0,32 |
| 588 ; DIS-NEXT: 0045200b movn a0,v0,a1 | 594 ; DIS-NEXT: 0045200b movn a0,v0,a1 |
| 589 ; DIS-NEXT: 24020000 li v0,0 | 595 ; DIS-NEXT: 24020000 li v0,0 |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 698 | 704 |
| 699 define internal i32 @encCttz32(i32 %x) { | 705 define internal i32 @encCttz32(i32 %x) { |
| 700 entry: | 706 entry: |
| 701 %r = call i32 @llvm.cttz.i32(i32 %x, i1 false) | 707 %r = call i32 @llvm.cttz.i32(i32 %x, i1 false) |
| 702 ret i32 %r | 708 ret i32 %r |
| 703 } | 709 } |
| 704 | 710 |
| 705 ; ASM-LABEL: encCttz32 | 711 ; ASM-LABEL: encCttz32 |
| 706 ; ASM-NEXT: .LencCttz32$entry: | 712 ; ASM-NEXT: .LencCttz32$entry: |
| 707 ; ASM-NEXT: addiu $v0, $a0, -1 | 713 ; ASM-NEXT: addiu $v0, $a0, -1 |
| 708 ; ASM-NEXT: » nor» $a0, $a0, $zero | 714 ; ASM: »nor» $a0, $a0, $zero |
| 709 ; ASM-NEXT: and $a0, $a0, $v0 | 715 ; ASM-NEXT: and $a0, $a0, $v0 |
| 710 ; ASM-NEXT: clz $a0, $a0 | 716 ; ASM-NEXT: clz $a0, $a0 |
| 711 ; ASM-NEXT: » addiu» $v0, $zero, 32 | 717 ; ASM: »addiu» $v0, $zero, 32 |
| 712 ; ASM-NEXT: subu $v0, $v0, $a0 | 718 ; ASM-NEXT: subu $v0, $v0, $a0 |
| 713 ; ASM-NEXT: jr $ra | 719 ; ASM-NEXT: jr $ra |
| 714 | 720 |
| 715 ; DIS-LABEL: <encCttz32>: | 721 ; DIS-LABEL: <encCttz32>: |
| 716 ; DIS-NEXT: 2482ffff addiu v0,a0,-1 | 722 ; DIS-NEXT: 2482ffff addiu v0,a0,-1 |
| 717 ; DIS-NEXT: 00802027 nor a0,a0,zero | 723 ; DIS-NEXT: 00802027 nor a0,a0,zero |
| 718 ; DIS-NEXT: 00822024 and a0,a0,v0 | 724 ; DIS-NEXT: 00822024 and a0,a0,v0 |
| 719 ; DIS-NEXT: 70842020 clz a0,a0 | 725 ; DIS-NEXT: 70842020 clz a0,a0 |
| 720 ; DIS-NEXT: 24020020 li v0,32 | 726 ; DIS-NEXT: 24020020 li v0,32 |
| 721 ; DIS-NEXT: 00441023 subu v0,v0,a0 | 727 ; DIS-NEXT: 00441023 subu v0,v0,a0 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 756 entry: | 762 entry: |
| 757 %r = call i32 @llvm.cttz.i32(i32 123456, i1 false) | 763 %r = call i32 @llvm.cttz.i32(i32 123456, i1 false) |
| 758 ret i32 %r | 764 ret i32 %r |
| 759 } | 765 } |
| 760 | 766 |
| 761 ; ASM-LABEL: encCttz32Const | 767 ; ASM-LABEL: encCttz32Const |
| 762 ; ASM-NEXT: .LencCttz32Const$entry: | 768 ; ASM-NEXT: .LencCttz32Const$entry: |
| 763 ; ASM-NEXT: lui $v0, 1 | 769 ; ASM-NEXT: lui $v0, 1 |
| 764 ; ASM-NEXT: ori $v0, $v0, 57920 | 770 ; ASM-NEXT: ori $v0, $v0, 57920 |
| 765 ; ASM-NEXT: addiu $v1, $v0, -1 | 771 ; ASM-NEXT: addiu $v1, $v0, -1 |
| 766 ; ASM-NEXT: » nor $v0, $v0, $zero | 772 ; ASM: »nor $v0, $v0, $zero |
| 767 ; ASM-NEXT: and $v0, $v0, $v1 | 773 ; ASM-NEXT: and $v0, $v0, $v1 |
| 768 ; ASM-NEXT: clz $v0, $v0 | 774 ; ASM-NEXT: clz $v0, $v0 |
| 769 ; ASM-NEXT: » addiu $v1, $zero, 32 | 775 ; ASM: »addiu $v1, $zero, 32 |
| 770 ; ASM-NEXT: subu $v1, $v1, $v0 | 776 ; ASM-NEXT: subu $v1, $v1, $v0 |
| 771 ; ASM-NEXT: move $v0, $v1 | 777 ; ASM-NEXT: move $v0, $v1 |
| 772 ; ASM-NEXT: jr $ra | 778 ; ASM-NEXT: jr $ra |
| 773 | 779 |
| 774 ; DIS-LABEL: <encCttz32Const>: | 780 ; DIS-LABEL: <encCttz32Const>: |
| 775 ; DIS-NEXT: 3c020001 lui v0,0x1 | 781 ; DIS-NEXT: 3c020001 lui v0,0x1 |
| 776 ; DIS-NEXT: 3442e240 ori v0,v0,0xe240 | 782 ; DIS-NEXT: 3442e240 ori v0,v0,0xe240 |
| 777 ; DIS-NEXT: 2443ffff addiu v1,v0,-1 | 783 ; DIS-NEXT: 2443ffff addiu v1,v0,-1 |
| 778 ; DIS-NEXT: 00401027 nor v0,v0,zero | 784 ; DIS-NEXT: 00401027 nor v0,v0,zero |
| 779 ; DIS-NEXT: 00431024 and v0,v0,v1 | 785 ; DIS-NEXT: 00431024 and v0,v0,v1 |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 828 | 834 |
| 829 define internal i64 @encCttz64(i64 %x) { | 835 define internal i64 @encCttz64(i64 %x) { |
| 830 entry: | 836 entry: |
| 831 %r = call i64 @llvm.cttz.i64(i64 %x, i1 false) | 837 %r = call i64 @llvm.cttz.i64(i64 %x, i1 false) |
| 832 ret i64 %r | 838 ret i64 %r |
| 833 } | 839 } |
| 834 | 840 |
| 835 ; ASM-LABEL: encCttz64 | 841 ; ASM-LABEL: encCttz64 |
| 836 ; ASM-NEXT: .LencCttz64$entry: | 842 ; ASM-NEXT: .LencCttz64$entry: |
| 837 ; ASM-NEXT: addiu $v0, $a1, -1 | 843 ; ASM-NEXT: addiu $v0, $a1, -1 |
| 838 ; ASM-NEXT: » nor $a1, $a1, $zero | 844 ; ASM: »nor $a1, $a1, $zero |
| 839 ; ASM-NEXT: and $a1, $a1, $v0 | 845 ; ASM-NEXT: and $a1, $a1, $v0 |
| 840 ; ASM-NEXT: clz $a1, $a1 | 846 ; ASM-NEXT: clz $a1, $a1 |
| 841 ; ASM-NEXT: » addiu $v0, $zero, 64 | 847 ; ASM: »addiu $v0, $zero, 64 |
| 842 ; ASM-NEXT: subu $v0, $v0, $a1 | 848 ; ASM-NEXT: subu $v0, $v0, $a1 |
| 843 ; ASM-NEXT: addiu $v1, $a0, -1 | 849 ; ASM-NEXT: addiu $v1, $a0, -1 |
| 844 ; ASM-NEXT: » nor $a1, $a0, $zero | 850 ; ASM: »nor $a1, $a0, $zero |
| 845 ; ASM-NEXT: and $a1, $a1, $v1 | 851 ; ASM-NEXT: and $a1, $a1, $v1 |
| 846 ; ASM-NEXT: clz $a1, $a1 | 852 ; ASM-NEXT: clz $a1, $a1 |
| 847 ; ASM-NEXT: » addiu $v1, $zero, 32 | 853 ; ASM: »addiu $v1, $zero, 32 |
| 848 ; ASM-NEXT: subu $v1, $v1, $a1 | 854 ; ASM-NEXT: subu $v1, $v1, $a1 |
| 849 ; ASM-NEXT: movn $v0, $v1, $a0 | 855 ; ASM-NEXT: movn $v0, $v1, $a0 |
| 850 ; ASM-NEXT: » addiu $v1, $zero, 0 | 856 ; ASM: »addiu $v1, $zero, 0 |
| 851 ; ASM-NEXT: jr $ra | 857 ; ASM-NEXT: jr $ra |
| 852 | 858 |
| 853 ; DIS-LABEL: <encCttz64>: | 859 ; DIS-LABEL: <encCttz64>: |
| 854 ; DIS-NEXT: 24a2ffff addiu v0,a1,-1 | 860 ; DIS-NEXT: 24a2ffff addiu v0,a1,-1 |
| 855 ; DIS-NEXT: 00a02827 nor a1,a1,zero | 861 ; DIS-NEXT: 00a02827 nor a1,a1,zero |
| 856 ; DIS-NEXT: 00a22824 and a1,a1,v0 | 862 ; DIS-NEXT: 00a22824 and a1,a1,v0 |
| 857 ; DIS-NEXT: 70a52820 clz a1,a1 | 863 ; DIS-NEXT: 70a52820 clz a1,a1 |
| 858 ; DIS-NEXT: 24020040 li v0,64 | 864 ; DIS-NEXT: 24020040 li v0,64 |
| 859 ; DIS-NEXT: 00451023 subu v0,v0,a1 | 865 ; DIS-NEXT: 00451023 subu v0,v0,a1 |
| 860 ; DIS-NEXT: 2483ffff addiu v1,a0,-1 | 866 ; DIS-NEXT: 2483ffff addiu v1,a0,-1 |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 937 ret i64 %r | 943 ret i64 %r |
| 938 } | 944 } |
| 939 | 945 |
| 940 ; ASM-LABEL: encCttz64Const | 946 ; ASM-LABEL: encCttz64Const |
| 941 ; ASM-NEXT: .LencCttz64Const$entry: | 947 ; ASM-NEXT: .LencCttz64Const$entry: |
| 942 ; ASM-NEXT: # $zero = def.pseudo | 948 ; ASM-NEXT: # $zero = def.pseudo |
| 943 ; ASM-NEXT: addiu $v0, $zero, 28 | 949 ; ASM-NEXT: addiu $v0, $zero, 28 |
| 944 ; ASM-NEXT: lui $v1, 48793 | 950 ; ASM-NEXT: lui $v1, 48793 |
| 945 ; ASM-NEXT: ori $v1, $v1, 6676 | 951 ; ASM-NEXT: ori $v1, $v1, 6676 |
| 946 ; ASM-NEXT: addiu $a0, $v0, -1 | 952 ; ASM-NEXT: addiu $a0, $v0, -1 |
| 947 ; ASM-NEXT: » nor $v0, $v0, $zero | 953 ; ASM: »nor $v0, $v0, $zero |
| 948 ; ASM-NEXT: and $v0, $v0, $a0 | 954 ; ASM-NEXT: and $v0, $v0, $a0 |
| 949 ; ASM-NEXT: clz $v0, $v0 | 955 ; ASM-NEXT: clz $v0, $v0 |
| 950 ; ASM-NEXT: » addiu $a0, $zero, 64 | 956 ; ASM: »addiu $a0, $zero, 64 |
| 951 ; ASM-NEXT: subu $a0, $a0, $v0 | 957 ; ASM-NEXT: subu $a0, $a0, $v0 |
| 952 ; ASM-NEXT: addiu $v0, $v1, -1 | 958 ; ASM-NEXT: addiu $v0, $v1, -1 |
| 953 ; ASM-NEXT: » nor $a1, $v1, $zero | 959 ; ASM: »nor $a1, $v1, $zero |
| 954 ; ASM-NEXT: and $a1, $a1, $v0 | 960 ; ASM-NEXT: and $a1, $a1, $v0 |
| 955 ; ASM-NEXT: clz $a1, $a1 | 961 ; ASM-NEXT: clz $a1, $a1 |
| 956 ; ASM-NEXT: » addiu $v0, $zero, 32 | 962 ; ASM: »addiu $v0, $zero, 32 |
| 957 ; ASM-NEXT: subu $v0, $v0, $a1 | 963 ; ASM-NEXT: subu $v0, $v0, $a1 |
| 958 ; ASM-NEXT: movn $a0, $v0, $v1 | 964 ; ASM-NEXT: movn $a0, $v0, $v1 |
| 959 ; ASM-NEXT: » addiu $v0, $zero, 0 | 965 ; ASM: »addiu $v0, $zero, 0 |
| 960 ; ASM-NEXT: move $v1, $v0 | 966 ; ASM-NEXT: move $v1, $v0 |
| 961 ; ASM-NEXT: move $v0, $a0 | 967 ; ASM-NEXT: move $v0, $a0 |
| 962 ; ASM-NEXT: jr $ra | 968 ; ASM-NEXT: jr $ra |
| 963 | 969 |
| 964 ; DIS-LABEL: <encCttz64Const>: | 970 ; DIS-LABEL: <encCttz64Const>: |
| 965 ; DIS-NEXT: 2402001c li v0,28 | 971 ; DIS-NEXT: 2402001c li v0,28 |
| 966 ; DIS-NEXT: 3c03be99 lui v1,0xbe99 | 972 ; DIS-NEXT: 3c03be99 lui v1,0xbe99 |
| 967 ; DIS-NEXT: 34631a14 ori v1,v1,0x1a14 | 973 ; DIS-NEXT: 34631a14 ori v1,v1,0x1a14 |
| 968 ; DIS-NEXT: 2444ffff addiu a0,v0,-1 | 974 ; DIS-NEXT: 2444ffff addiu a0,v0,-1 |
| 969 ; DIS-NEXT: 00401027 nor v0,v0,zero | 975 ; DIS-NEXT: 00401027 nor v0,v0,zero |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1065 ; IASM-NEXT: .byte 0x0 | 1071 ; IASM-NEXT: .byte 0x0 |
| 1066 ; IASM-NEXT: .byte 0xe0 | 1072 ; IASM-NEXT: .byte 0xe0 |
| 1067 ; IASM-NEXT: .byte 0x3 | 1073 ; IASM-NEXT: .byte 0x3 |
| 1068 | 1074 |
| 1069 define internal void @encTrap() { | 1075 define internal void @encTrap() { |
| 1070 unreachable | 1076 unreachable |
| 1071 } | 1077 } |
| 1072 | 1078 |
| 1073 ; ASM-LABEL: encTrap | 1079 ; ASM-LABEL: encTrap |
| 1074 ; ASM-NEXT: .LencTrap$__0: | 1080 ; ASM-NEXT: .LencTrap$__0: |
| 1075 ; ASM-NEXT: » teq» $zero, $zero, 0 | 1081 ; ASM: »teq» $zero, $zero, 0 |
| 1076 | 1082 |
| 1077 ; DIS-LABEL: <encTrap>: | 1083 ; DIS-LABEL: <encTrap>: |
| 1078 ; DIS-NEXT: 00000034 teq zero,zero | 1084 ; DIS-NEXT: 00000034 teq zero,zero |
| 1079 | 1085 |
| 1080 ; IASM-LABEL: encTrap: | 1086 ; IASM-LABEL: encTrap: |
| 1081 ; IASM-NEXT: .LencTrap$__0: | 1087 ; IASM-NEXT: .LencTrap$__0: |
| 1082 ; IASM-NEXT: .byte 0x34 | 1088 ; IASM-NEXT: .byte 0x34 |
| 1083 ; IASM-NEXT: .byte 0x0 | 1089 ; IASM-NEXT: .byte 0x0 |
| 1084 ; IASM-NEXT: .byte 0x0 | 1090 ; IASM-NEXT: .byte 0x0 |
| 1085 ; IASM-NEXT: .byte 0x0 | 1091 ; IASM-NEXT: .byte 0x0 |
| OLD | NEW |