diff --git a/mono/mini/cpu-amd64.md b/mono/mini/cpu-amd64.md index 06abb8e7e0d7..e581a983944f 100644 --- a/mono/mini/cpu-amd64.md +++ b/mono/mini/cpu-amd64.md @@ -24,9 +24,9 @@ # # len:number describe the maximun length in bytes of the instruction # number is a positive integer. If the length is not specified -# it defaults to zero. But lengths are only checked if the given opcode -# is encountered during compilation. Some opcodes, like CONV_U4 are -# transformed into other opcodes in the brg files, so they do not show up +# it defaults to zero. But lengths are only checked if the given opcode +# is encountered during compilation. Some opcodes, like CONV_U4 are +# transformed into other opcodes in the brg files, so they do not show up # during code generation. # # cost:number describe how many cycles are needed to complete the instruction (unused) @@ -270,7 +270,7 @@ float_conv_to_u1: dest:i src1:f len:49 float_conv_to_i: dest:i src1:f len:49 float_conv_to_ovf_i: dest:a src1:f len:40 float_conv_to_ovd_u: dest:a src1:f len:40 -float_mul_ovf: +float_mul_ovf: float_ceq: dest:i src1:f src2:f len:35 float_cgt: dest:i src1:f src2:f len:35 float_cgt_un: dest:i src1:f src2:f len:48 @@ -711,11 +711,11 @@ unpack_highq: dest:x src1:x src2:x len:5 clob:1 unpack_highps: dest:x src1:x src2:x len:5 clob:1 unpack_highpd: dest:x src1:x src2:x len:5 clob:1 -packw: dest:x src1:x src2:x len:5 clob:1 -packd: dest:x src1:x src2:x len:5 clob:1 +packw: dest:x src1:x src2:x len:5 clob:1 +packd: dest:x src1:x src2:x len:5 clob:1 -packw_un: dest:x src1:x src2:x len:5 clob:1 -packd_un: dest:x src1:x src2:x len:6 clob:1 +packw_un: dest:x src1:x src2:x len:5 clob:1 +packd_un: dest:x src1:x src2:x len:6 clob:1 paddb_sat: dest:x src1:x src2:x len:5 clob:1 paddb_sat_un: dest:x src1:x src2:x len:5 clob:1 @@ -782,7 +782,7 @@ extract_i2: dest:i src1:x len:13 extract_u2: dest:i src1:x len:13 extract_i1: dest:i src1:x len:13 extract_u1: dest:i src1:x len:13 -extract_r8: dest:f src1:x len:5 +extract_r8: dest:f src1:x len:5 iconv_to_r4_raw: dest:f src1:i len:10 @@ -804,7 +804,7 @@ loadx_aligned_membase: dest:x src1:b len:7 storex_aligned_membase_reg: dest:b src1:x len:7 storex_nta_membase_reg: dest:b src1:x len:7 -fconv_to_r8_x: dest:x src1:f len:4 +fconv_to_r8_x: dest:x src1:f len:4 xconv_r8_to_i4: dest:y src1:x len:7 prefetch_membase: src1:b len:4 diff --git a/mono/mini/cpu-arm.md b/mono/mini/cpu-arm.md index f3b6641d3f53..a58d4bb0e29b 100644 --- a/mono/mini/cpu-arm.md +++ b/mono/mini/cpu-arm.md @@ -130,8 +130,8 @@ storei2_membase_imm: dest:b len:20 storei2_membase_reg: dest:b src1:i len:12 storei4_membase_imm: dest:b len:20 storei4_membase_reg: dest:b src1:i len:20 -storei8_membase_imm: dest:b -storei8_membase_reg: dest:b src1:i +storei8_membase_imm: dest:b +storei8_membase_reg: dest:b src1:i storer4_membase_reg: dest:b src1:f len:60 storer8_membase_reg: dest:b src1:f len:24 store_memindex: dest:b src1:i src2:i len:4 diff --git a/mono/mini/cpu-mips.md b/mono/mini/cpu-mips.md index cbe7788a6b0f..96920a0747b5 100644 --- a/mono/mini/cpu-mips.md +++ b/mono/mini/cpu-mips.md @@ -118,7 +118,7 @@ storei2_membase_imm: dest:b len:20 storei2_membase_reg: dest:b src1:i len:20 storei4_membase_imm: dest:b len:20 storei4_membase_reg: dest:b src1:i len:20 -storei8_membase_imm: dest:b +storei8_membase_imm: dest:b storei8_membase_reg: dest:b src1:i len:20 storer4_membase_reg: dest:b src1:f len:20 storer8_membase_reg: dest:b src1:f len:20 @@ -156,7 +156,7 @@ add_imm: dest:i src1:i len:12 sub_imm: dest:i src1:i len:12 mul_imm: dest:i src1:i len:20 # there is no actual support for division or reminder by immediate -# we simulate them, though (but we need to change the burg rules +# we simulate them, though (but we need to change the burg rules # to allocate a symbolic reg for src2) div_imm: dest:i src1:i src2:i len:20 div_un_imm: dest:i src1:i src2:i len:12 @@ -346,7 +346,7 @@ long_xor_imm: dest:i src1:i clob:1 len:4 lcompare: src1:i src2:i len:4 lcompare_imm: src1:i len:12 -long_conv_to_r_un: dest:f src1:i src2:i len:37 +long_conv_to_r_un: dest:f src1:i src2:i len:37 float_beq: len:16 float_bne_un: len:16 diff --git a/mono/mini/cpu-ppc.md b/mono/mini/cpu-ppc.md index cb31d18c908c..6ef33f288722 100644 --- a/mono/mini/cpu-ppc.md +++ b/mono/mini/cpu-ppc.md @@ -137,7 +137,7 @@ add_imm: dest:i src1:i len:4 sub_imm: dest:i src1:i len:4 mul_imm: dest:i src1:i len:4 # there is no actual support for division or reminder by immediate -# we simulate them, though (but we need to change the burg rules +# we simulate them, though (but we need to change the burg rules # to allocate a symbolic reg for src2) div_imm: dest:i src1:i src2:i len:20 div_un_imm: dest:i src1:i src2:i len:12 @@ -164,8 +164,8 @@ cond_exc_no: len:8 cond_exc_c: len:12 cond_exc_nc: len:8 long_conv_to_ovf_i: dest:i src1:i src2:i len:32 -long_mul_ovf: -long_conv_to_r_un: dest:f src1:i src2:i len:37 +long_mul_ovf: +long_conv_to_r_un: dest:f src1:i src2:i len:37 float_beq: len:8 float_bne_un: len:8 float_blt: len:8 diff --git a/mono/mini/cpu-ppc64.md b/mono/mini/cpu-ppc64.md index f0651f5f8d05..fc0e634baa46 100644 --- a/mono/mini/cpu-ppc64.md +++ b/mono/mini/cpu-ppc64.md @@ -141,7 +141,7 @@ add_imm: dest:i src1:i len:4 sub_imm: dest:i src1:i len:4 mul_imm: dest:i src1:i len:4 # there is no actual support for division or reminder by immediate -# we simulate them, though (but we need to change the burg rules +# we simulate them, though (but we need to change the burg rules # to allocate a symbolic reg for src2) div_imm: dest:i src1:i src2:i len:20 div_un_imm: dest:i src1:i src2:i len:12 diff --git a/mono/mini/cpu-s390x.md b/mono/mini/cpu-s390x.md index 34295c32bde9..5db404947639 100644 --- a/mono/mini/cpu-s390x.md +++ b/mono/mini/cpu-s390x.md @@ -229,7 +229,7 @@ storei2_membase_reg: dest:b src1:i len:26 storei4_membase_imm: dest:b len:46 storei4_membase_reg: dest:b src1:i len:26 storei8_membase_imm: dest:b len:46 -storei8_membase_reg: dest:b src1:i len:26 +storei8_membase_reg: dest:b src1:i len:26 storer4_membase_reg: dest:b src1:f len:28 storer8_membase_reg: dest:b src1:f len:24 sub_imm: dest:i src1:i len:18 @@ -332,8 +332,8 @@ long_div: dest:i src1:i src2:i len:12 long_div_un: dest:i src1:i src2:i len:16 long_mul: dest:i src1:i src2:i len:12 long_mul_imm: dest:i src1:i len:20 -long_mul_ovf: dest:i src1:i src2:i len:56 -long_mul_ovf_un: dest:i src1:i src2:i len:64 +long_mul_ovf: dest:i src1:i src2:i len:56 +long_mul_ovf_un: dest:i src1:i src2:i len:64 long_and: dest:i src1:i src2:i len:8 long_or: dest:i src1:i src2:i len:8 long_xor: dest:i src1:i src2:i len:8 @@ -368,7 +368,7 @@ long_conv_to_u2: dest:i src1:i len:24 long_conv_to_u4: dest:i src1:i len:4 long_conv_to_u8: dest:i src1:i len:4 long_conv_to_u: dest:i src1:i len:4 -long_conv_to_r_un: dest:f src1:i len:37 +long_conv_to_r_un: dest:f src1:i len:37 long_beq: len:8 long_bge_un: len:8 @@ -399,7 +399,7 @@ int_conv_to_i: dest:i src1:i len:4 int_conv_to_u1: dest:i src1:i len:10 int_conv_to_u2: dest:i src1:i len:16 int_conv_to_u4: dest:i src1:i len:4 -int_conv_to_r_un: dest:f src1:i len:37 +int_conv_to_r_un: dest:f src1:i len:37 cond_exc_ic: len:8 cond_exc_ieq: len:8 @@ -431,9 +431,9 @@ vcall2_membase: src1:b len:12 clob:c vcall2_reg: src1:i len:8 clob:c s390_int_add_ovf: len:32 dest:i src1:i src2:i -s390_int_add_ovf_un: len:32 dest:i src1:i src2:i +s390_int_add_ovf_un: len:32 dest:i src1:i src2:i s390_int_sub_ovf: len:32 dest:i src1:i src2:i -s390_int_sub_ovf_un: len:32 dest:i src1:i src2:i +s390_int_sub_ovf_un: len:32 dest:i src1:i src2:i s390_long_add_ovf: dest:i src1:i src2:i len:32 s390_long_add_ovf_un: dest:i src1:i src2:i len:32 diff --git a/mono/mini/cpu-sparc.md b/mono/mini/cpu-sparc.md index 341b11e5b348..403a73c380ee 100644 --- a/mono/mini/cpu-sparc.md +++ b/mono/mini/cpu-sparc.md @@ -263,8 +263,8 @@ long_shl: dest:i src1:i src2:i len:64 long_shr: dest:i src1:i src2:i len:64 long_shr_un: dest:i src1:i src2:i len:64 long_conv_to_ovf_i: dest:i src1:i src2:i len:48 -long_mul_ovf: -long_conv_to_r_un: dest:f src1:i src2:i len:64 +long_mul_ovf: +long_conv_to_r_un: dest:f src1:i src2:i len:64 long_shr_imm: dest:i src1:i len:64 long_shr_un_imm: dest:i src1:i len:64 long_shl_imm: dest:i src1:i len:64 diff --git a/mono/mini/cpu-x86.md b/mono/mini/cpu-x86.md index 85e3ea7cf4ea..a0f0fc14f15d 100644 --- a/mono/mini/cpu-x86.md +++ b/mono/mini/cpu-x86.md @@ -25,9 +25,9 @@ # # len:number describe the maximun length in bytes of the instruction # number is a positive integer. If the length is not specified -# it defaults to zero. But lengths are only checked if the given opcode -# is encountered during compilation. Some opcodes, like CONV_U4 are -# transformed into other opcodes in the brg files, so they do not show up +# it defaults to zero. But lengths are only checked if the given opcode +# is encountered during compilation. Some opcodes, like CONV_U4 are +# transformed into other opcodes in the brg files, so they do not show up # during code generation. # # cost:number describe how many cycles are needed to complete the instruction (unused) @@ -180,8 +180,8 @@ storei2_membase_imm: dest:b len:11 storei2_membase_reg: dest:b src1:i len:7 storei4_membase_imm: dest:b len:10 storei4_membase_reg: dest:b src1:i len:7 -storei8_membase_imm: dest:b -storei8_membase_reg: dest:b src1:i +storei8_membase_imm: dest:b +storei8_membase_reg: dest:b src1:i storer4_membase_reg: dest:b src1:f len:7 storer8_membase_reg: dest:b src1:f len:7 load_membase: dest:i src1:b len:7 @@ -257,7 +257,7 @@ float_conv_to_u1: dest:y src1:f len:39 float_conv_to_i: dest:i src1:f len:39 float_conv_to_ovf_i: dest:a src1:f len:30 float_conv_to_ovd_u: dest:a src1:f len:30 -float_mul_ovf: +float_mul_ovf: float_ceq: dest:y src1:f src2:f len:25 float_cgt: dest:y src1:f src2:f len:25 float_cgt_un: dest:y src1:f src2:f len:37 @@ -425,7 +425,7 @@ cmov_ile_un: dest:i src1:i src2:i len:16 clob:1 cmov_ilt_un: dest:i src1:i src2:i len:16 clob:1 long_conv_to_ovf_i4_2: dest:i src1:i src2:i len:30 -long_conv_to_r8_2: dest:f src1:i src2:i len:14 +long_conv_to_r8_2: dest:f src1:i src2:i len:14 long_conv_to_r4_2: dest:f src1:i src2:i len:14 long_conv_to_r_un_2: dest:f src1:i src2:i len:40 @@ -565,11 +565,11 @@ unpack_highq: dest:x src1:x src2:x len:4 clob:1 unpack_highps: dest:x src1:x src2:x len:3 clob:1 unpack_highpd: dest:x src1:x src2:x len:4 clob:1 -packw: dest:x src1:x src2:x len:4 clob:1 -packd: dest:x src1:x src2:x len:4 clob:1 +packw: dest:x src1:x src2:x len:4 clob:1 +packd: dest:x src1:x src2:x len:4 clob:1 -packw_un: dest:x src1:x src2:x len:4 clob:1 -packd_un: dest:x src1:x src2:x len:5 clob:1 +packw_un: dest:x src1:x src2:x len:4 clob:1 +packd_un: dest:x src1:x src2:x len:5 clob:1 paddb_sat: dest:x src1:x src2:x len:4 clob:1 paddb_sat_un: dest:x src1:x src2:x len:4 clob:1 @@ -634,7 +634,7 @@ extract_i2: dest:i src1:x len:10 extract_u2: dest:i src1:x len:10 extract_i1: dest:i src1:x len:10 extract_u1: dest:i src1:x len:10 -extract_r8: dest:f src1:x len:8 +extract_r8: dest:f src1:x len:8 insert_i2: dest:x src1:x src2:i len:5 clob:1 @@ -653,7 +653,7 @@ loadx_aligned_membase: dest:x src1:b len:7 storex_aligned_membase_reg: dest:b src1:x len:7 storex_nta_membase_reg: dest:b src1:x len:7 -fconv_to_r8_x: dest:x src1:f len:14 +fconv_to_r8_x: dest:x src1:f len:14 xconv_r8_to_i4: dest:y src1:x len:7 prefetch_membase: src1:b len:4 diff --git a/mono/tests/metadata-verifier/cli-blob-tests.md b/mono/tests/metadata-verifier/cli-blob-tests.md index 89c2e87ce1c7..b93426a47ff8 100644 --- a/mono/tests/metadata-verifier/cli-blob-tests.md +++ b/mono/tests/metadata-verifier/cli-blob-tests.md @@ -20,7 +20,7 @@ method-def-sig { invalid offset blob.i (table-row (6 0) + 10) + 1 set-byte 0x2E invalid offset blob.i (table-row (6 0) + 10) + 1 set-byte 0x2F - #upper nimble flags 0x80 is invalid + #upper nimble flags 0x80 is invalid invalid offset blob.i (table-row (6 0) + 10) + 1 set-bit 7 #sig is too small to decode param count @@ -89,7 +89,7 @@ method-def-ret-misc { method-ref-sig { assembly assembly-with-signatures.exe - #member ref 0 is has a vararg sig + #member ref 0 is has a vararg sig #member ref 1 don't use vararg #2 sentinels @@ -156,23 +156,23 @@ locals-sig { #bad local sig #row 0 has tons of locals - #row 1 is int32&, int32 + #row 1 is int32&, int32 #row 2 is typedref #typedref with byref - #row 1 is: cconv pcount(2) byref int32 int32 + #row 1 is: cconv pcount(2) byref int32 int32 #row 1 goes to: cconv pcount(2) byref typedbyref int32 invalid offset blob.i (table-row (0x11 1)) + 4 set-byte 0x16 #byref pinned int32 - #row 1 is: cconv pcount(2) byref int32 int32 + #row 1 is: cconv pcount(2) byref int32 int32 #row 1 goes to: cconv pcount(1) byref pinned int32 invalid offset blob.i (table-row (0x11 1)) + 2 set-byte 0x01, offset blob.i (table-row (0x11 1)) + 4 set-byte 0x45 #pinned pinned int32 - #row 1 is: cconv pcount(2) byref int32 int32 + #row 1 is: cconv pcount(2) byref int32 int32 #row 1 goes to: cconv pcount(1) pinned pinned int32 #LAMEIMPL MS doesn't care about this valid offset blob.i (table-row (0x11 1)) + 2 set-byte 0x01, @@ -215,7 +215,7 @@ type-enc { invalid offset blob.i (table-row (0x04 3) + 4) + 3 set-byte 0x16 #LAMEIMPL MS verifier doesn't catch this one (runtime does) - #rank 0 + #rank 0 invalid offset blob.i (table-row (0x04 3) + 4) + 4 set-byte 0x00 #large nsizes invalid offset blob.i (table-row (0x04 3) + 4) + 5 set-byte 0x1F @@ -240,7 +240,7 @@ type-enc { #fnptr #field 10 is a fnptr #format is: cconv FNPTR cconv pcount ret param* sentinel? param* - #LAMESPEC, it lacks the fact that fnptr allows for unmanaged call conv + #LAMESPEC, it lacks the fact that fnptr allows for unmanaged call conv #bad callconv invalid offset blob.i (table-row (0x04 10) + 4) + 3 set-byte 0x88 @@ -263,10 +263,10 @@ typespec-sig { #type zero is invalid invalid offset blob.i (table-row (0x1B 0)) + 1 set-byte 0x0 - #LAMESPEC part II, MS allows for cmods on a typespec as well + #LAMESPEC part II, MS allows for cmods on a typespec as well #modreq int32 is invalid #typespec 2 is "modreq int32*" encoded as: PTR CMOD_REQD token INT32 - #change int to CMOD_REQD token INT32 + #change int to CMOD_REQD token INT32 valid offset blob.i (table-row (0x1B 2)) + 1 set-byte 0x1f, #CMOD_REQD offset blob.i (table-row (0x1B 2)) + 2 set-byte read.byte (blob.i (table-row (0x1B 2)) + 3), #token offset blob.i (table-row (0x1B 2)) + 3 set-byte 0x08 #int8 @@ -321,7 +321,7 @@ method-header { #bad fat header flags #only 0x08 and 0x10 allowed - #regular value is + #regular value is invalid offset translate.rva.ind (table-row (0x06 1)) + 0 set-ushort 0x3033 #or 0x20 invalid offset translate.rva.ind (table-row (0x06 1)) + 0 set-ushort 0x3053 invalid offset translate.rva.ind (table-row (0x06 1)) + 0 set-ushort 0x3093 diff --git a/mono/tests/metadata-verifier/cli-cattr-tests.md b/mono/tests/metadata-verifier/cli-cattr-tests.md index ac6849b8a15b..7d852b3a5f80 100644 --- a/mono/tests/metadata-verifier/cli-cattr-tests.md +++ b/mono/tests/metadata-verifier/cli-cattr-tests.md @@ -10,7 +10,7 @@ cattr-without-named-args { #WARNING: peverify don't check custom attributes format beyond the prolog #so it's pointless to use it for this. #We'll take the easy road as well and when verifying the encoded data - #assume that the target constructor can be decoded and use the runtime signature. + #assume that the target constructor can be decoded and use the runtime signature. #bad size invalid offset blob.i (table-row (0x0C 0) + 4) + 0 set-byte 0x0 diff --git a/mono/tests/metadata-verifier/cli-global-props-tests.md b/mono/tests/metadata-verifier/cli-global-props-tests.md index ccbdca2e319b..481113390c38 100644 --- a/mono/tests/metadata-verifier/cli-global-props-tests.md +++ b/mono/tests/metadata-verifier/cli-global-props-tests.md @@ -24,4 +24,4 @@ fielddef-global-props { badrt offset table-row (4 1) + 2 set-ushort read.ushort (table-row (4 0) + 2), #name offset table-row (4 1) + 4 set-ushort read.ushort (table-row (4 0) + 4) #signature -} \ No newline at end of file +} diff --git a/mono/tests/metadata-verifier/cli-metadata-tests.md b/mono/tests/metadata-verifier/cli-metadata-tests.md index 1ce3b3e187a9..fd04a9719566 100644 --- a/mono/tests/metadata-verifier/cli-metadata-tests.md +++ b/mono/tests/metadata-verifier/cli-metadata-tests.md @@ -54,6 +54,6 @@ cli-metadata-stream-headers { #unkwnown name invalid offset stream-header ( 0 ) + 8 set-byte 0x42 - #duplicate name, change #~ to #US + #duplicate name, change #~ to #US invalid offset stream-header ( 0 ) + 9 set-byte 0x55 , offset stream-header ( 0 ) + 10 set-byte 0x53 -} \ No newline at end of file +} diff --git a/mono/tests/metadata-verifier/cli-tables-tests.md b/mono/tests/metadata-verifier/cli-tables-tests.md index cec99ac9f9d0..5412ec803ef0 100644 --- a/mono/tests/metadata-verifier/cli-tables-tests.md +++ b/mono/tests/metadata-verifier/cli-tables-tests.md @@ -5,7 +5,7 @@ tables-header { valid offset cli-metadata + read.uint ( stream-header ( 0 ) ) + 4 set-byte 2 valid offset tables-header + 4 set-byte 2 - #major/minor versions + #major/minor versions invalid offset tables-header + 4 set-byte 22 invalid offset tables-header + 5 set-byte 1 @@ -67,7 +67,7 @@ module-table { valid offset tables-header + 24 set-uint 1 invalid offset tables-header + 24 set-uint 0 invalid offset tables-header + 24 set-uint 2 , offset tables-header + 32 set-uint 1 - + #name #invalid string invalid offset table-row ( 0 0 ) + 2 set-ushort 0x8888 @@ -120,7 +120,7 @@ typedef-table { valid offset tables-header + 32 set-uint 2 invalid offset tables-header + 32 set-uint 0 - #This part of the test suite only verifies structural properties, not table relationships + #This part of the test suite only verifies structural properties, not table relationships #Flags invalid bits: 6,9,14,15,19,21,24-31 invalid offset table-row ( 2 1 ) set-bit 6 @@ -186,7 +186,7 @@ typedef-table-field-list { valid offset table-row ( 2 1 ) + 10 set-ushort 1 - #bad field list + #bad field list invalid offset table-row ( 2 1 ) + 10 set-ushort 999 #this type is bigger than the next @@ -202,7 +202,7 @@ typedef-table-method-list { valid offset table-row ( 2 1 ) + 12 set-ushort 1 - #bad field list + #bad field list invalid offset table-row ( 2 1 ) + 12 set-ushort 999 #this type is bigger than the next @@ -262,11 +262,11 @@ field-table { #if it's a global variable, it must be static and (public|compiler controler|private) (16) #static + compiler controled - valid offset table-row ( 2 1 ) + 10 set-ushort 2 , offset table-row ( 4 0 ) set-ushort 0x10 + valid offset table-row ( 2 1 ) + 10 set-ushort 2 , offset table-row ( 4 0 ) set-ushort 0x10 #static + private valid offset table-row ( 2 1 ) + 10 set-ushort 2 , offset table-row ( 4 0 ) set-ushort 0x11 #static + public - valid offset table-row ( 2 1 ) + 10 set-ushort 2 , offset table-row ( 4 0 ) set-ushort 0x16 + valid offset table-row ( 2 1 ) + 10 set-ushort 2 , offset table-row ( 4 0 ) set-ushort 0x16 #static + bad visibility #LAMEIMPL MS doesn't verify visibility invalid offset table-row ( 2 1 ) + 10 set-ushort 2 , offset table-row ( 4 0 ) set-ushort 0x12 @@ -275,7 +275,7 @@ field-table { invalid offset table-row ( 2 1 ) + 10 set-ushort 2 , offset table-row ( 4 0 ) set-ushort 0x15 #public and not static - invalid offset table-row ( 2 1 ) + 10 set-ushort 2 , offset table-row ( 4 0 ) set-ushort 0x06 + invalid offset table-row ( 2 1 ) + 10 set-ushort 2 , offset table-row ( 4 0 ) set-ushort 0x06 #field is constant but has no row in the contant table #LAMESPEC this check is missing from the spec @@ -300,7 +300,7 @@ methoddef-table { #bad flags (4) #no unused bits - + #invalid .ctor with generic params and specialname (6) #method 0 is a .ctor, method 1 is generic invalid offset table-row ( 6 1 ) + 6 or-ushort 0x1800 , offset table-row ( 6 1 ) + 8 set-ushort read.ushort ( table-row ( 6 0 ) + 8 ) @@ -343,8 +343,8 @@ methoddef-table { #Interface cannot have .ctors (15) #method 3 belongs to an inteface invalid offset table-row ( 6 3 ) + 8 set-ushort read.ushort ( table-row ( 6 0 ) + 8 ) - #Interface methods can't be static - invalid offset table-row ( 6 3 ) + 6 or-ushort 0x0010 + #Interface methods can't be static + invalid offset table-row ( 6 3 ) + 6 or-ushort 0x0010 #XXX we don't care about CLS names (17) @@ -377,7 +377,7 @@ methoddef-table { invalid offset table-row ( 6 5 ) set-uint read.uint ( table-row ( 6 2 ) ) #pinvoke with runtime - #LAMEIMPL/SPEC either MS ignores it or the spec is ill defined + #LAMEIMPL/SPEC either MS ignores it or the spec is ill defined #invalid offset table-row ( 6 5 ) + 4 or-ushort 0x1000 #if compilercontroled (0x0) it must have an RVA or a pinvoke @@ -389,7 +389,7 @@ methoddef-table { #if RVA = 0 then one of (abstract, runtime, pinvoke) (34) #let's test with an abstract class, method 6 is abstract and belongs to one. invalid offset table-row ( 6 7 ) + 6 set-ushort 0x0006 - #icall + #icall valid offset table-row ( 6 7 ) + 6 set-ushort 0x01c6 , offset table-row ( 6 7 ) + 4 or-ushort 0x1000 #if rva != 0 then abstract == 0 and codetypemask must be (native,cil,runtime) and rva shall be valid (35) @@ -429,7 +429,7 @@ methoddef-table-global-methods { assembly assembly-with-global-method.exe #checks for methods owned by <module> (20) - + #static + public valid offset table-row ( 6 0 ) + 6 set-ushort 0x0010 #static + private @@ -458,10 +458,10 @@ methoddef-table-global-methods { methoddef-table-params { assembly assembly-with-methods.exe - #method 12,13,14 have 3 params and params: 2,5,8 + #method 12,13,14 have 3 params and params: 2,5,8 #method 13 has 3 params and params: 5 invalid offset table-row ( 6 12 ) + 12 set-ushort 6 - invalid offset table-row ( 6 13 ) + 12 set-ushort 99 + invalid offset table-row ( 6 13 ) + 12 set-ushort 99 } @@ -489,7 +489,7 @@ param-table { invalid offset table-row ( 8 0 ) + 2 set-ushort 2 invalid offset table-row ( 8 1 ) + 2 set-ushort 1 - + #if HasDefault = 1 then there must be a row in the constant table (6) #param 2 doesn't have a default invalid offset table-row ( 8 2 ) or-ushort 0x1000 @@ -534,7 +534,7 @@ interfaceimpl-table { memberref-table { assembly assembly-with-complex-type.exe - + #class must be a valid token (1 2) #null invalid offset table-row ( 10 0 ) set-ushort 0 @@ -555,13 +555,13 @@ memberref-table { #signature must be valid (5) invalid offset table-row ( 10 0 ) + 4 set-ushort 0x9900 - + #TODO validate the signature (5) #LAMESPEC CompilerControled visibility (9,10) is nice but no impl care about - #LAMESPEC what does (11) mean? + #LAMESPEC what does (11) mean? } constant-table { @@ -588,7 +588,7 @@ constant-table { #First remove default from param 'a' (param table idx 0) #Then set the has default flag in the property table #Finally, make the first constant point from the part to the property (const 1, prop 0, token 0x6) - valid offset table-row ( 0x8 0 ) set-ushort 0 , offset table-row ( 0x17 0 ) or-ushort 0x1000 , offset table-row ( 0xB 1 ) + 2 set-ushort 0x6 + valid offset table-row ( 0x8 0 ) set-ushort 0 , offset table-row ( 0x17 0 ) or-ushort 0x1000 , offset table-row ( 0xB 1 ) + 2 set-ushort 0x6 #Invalid coded table invalid offset table-row ( 0xB 0 ) + 2 set-ushort 0x0013 , offset table-row ( 0x04 0 ) set-ushort 0x16 @@ -608,7 +608,7 @@ constant-table { invalid offset table-row ( 0xB 0 ) + 4 set-ushort read.uint ( stream-header ( 3 ) + 4 ) #LAMEIMPL, MS doesn't bound check the constant size. Lame of them. - invalid offset table-row ( 0xB 0 ) + 4 set-ushort read.uint ( stream-header ( 3 ) + 4 ) - 1 + invalid offset table-row ( 0xB 0 ) + 4 set-ushort read.uint ( stream-header ( 3 ) + 4 ) - 1 } cattr-table { @@ -708,7 +708,7 @@ class-layout-table { #packing must be (0,1,2,4,8,16,32,64,128) (4) invalid offset table-row ( 0xF 0 ) set-ushort 0x0003 - #TODO do checks depending on the kind of parent (4) + #TODO do checks depending on the kind of parent (4) #Check layout along the inheritance chain. (7) } @@ -753,7 +753,7 @@ event-table { assembly assembly-with-events.exe #event flags have valid bits (3) - #only bits 9 and 10 are used + #only bits 9 and 10 are used invalid offset table-row ( 0x14 0 ) set-bit 0 invalid offset table-row ( 0x14 0 ) set-bit 1 @@ -816,7 +816,7 @@ property-table { assembly assembly-with-properties.exe #valid flags (3) - #only bits 9, 10 and 12 are used + #only bits 9, 10 and 12 are used invalid offset table-row ( 0x17 0 ) set-bit 0 invalid offset table-row ( 0x17 0 ) set-bit 1 invalid offset table-row ( 0x17 0 ) set-bit 2 @@ -846,7 +846,7 @@ property-table { #field zero has default value valid offset table-row (0x17 0) + 0 or-ushort 0x1000, #mark the property with hasdefault offset table-row (0x04 0) + 0 set-ushort 0x0011, #clear literal and hasdefault from the field - offset table-row (0x0B 0) + 2 set-ushort 0x0006 #change the parent token to row 1 of the property table (0x2) + offset table-row (0x0B 0) + 2 set-ushort 0x0006 #change the parent token to row 1 of the property table (0x2) invalid offset table-row (0x17 0) + 0 or-ushort 0x1000 @@ -857,32 +857,32 @@ methodimpl-table { assembly assembly-with-complex-type.exe #class shall be valid (2) - invalid offset table-row (0x19 0) set-ushort 0 + invalid offset table-row (0x19 0) set-ushort 0 invalid offset table-row (0x19 0) set-ushort 0x8800 #methodbody shall be valid (3) #null - invalid offset table-row (0x19 0) + 2 set-ushort 0x0000 + invalid offset table-row (0x19 0) + 2 set-ushort 0x0000 invalid offset table-row (0x19 0) + 2 set-ushort 0x0001 #out of range - invalid offset table-row (0x19 0) + 2 set-ushort 0x8800 + invalid offset table-row (0x19 0) + 2 set-ushort 0x8800 invalid offset table-row (0x19 0) + 2 set-ushort 0x8801 #MethodDeclaration shall be valid #null - invalid offset table-row (0x19 0) + 4 set-ushort 0x0000 + invalid offset table-row (0x19 0) + 4 set-ushort 0x0000 invalid offset table-row (0x19 0) + 4 set-ushort 0x0001 #out of range - invalid offset table-row (0x19 0) + 4 set-ushort 0x8800 + invalid offset table-row (0x19 0) + 4 set-ushort 0x8800 invalid offset table-row (0x19 0) + 4 set-ushort 0x8801 - - #TODO check MethodDeclaration method for virtual and owner type for !sealed (4,5) + + #TODO check MethodDeclaration method for virtual and owner type for !sealed (4,5) #TODO check MethodBody for belonging to a super type of Class,been virtual and rva != 0 (6,7,8) #TODO check MethodBody must belong to any ancestor or iface of Class (9) #TODO check MethodDeclaration method shall not be final (10) #TODO if MethodDeclaration is strict, it must be visible to Class (11) - #TODO the method signature of MethodBody must match of MethodDeclaration (12) + #TODO the method signature of MethodBody must match of MethodDeclaration (12) #TODO no dups } @@ -959,7 +959,7 @@ fieldrva-table { invalid offset table-row (0x1D 0) + 4 set-ushort 0, offset table-row (0x04 17) set-ushort 0x0013 #remove fieldrva from target field invalid offset table-row (0x1D 0) + 4 set-ushort 0x9901, - offset table-row (0x04 17) set-ushort 0x0013 + offset table-row (0x04 17) set-ushort 0x0013 #TODO verify if the field is a blitable valuetype @@ -974,7 +974,7 @@ assembly-table { invalid offset tables-header + 40 set-uint 2, offset stream-header (0) + 4 set-uint read.uint (stream-header (0) + 4) + 22 #increase the size of the #~ section - #bad hasalg (2) + #bad hasalg (2) valid offset table-row (0x20 0) set-uint 0 valid offset table-row (0x20 0) set-uint 0x8003 valid offset table-row (0x20 0) set-uint 0x8004 @@ -997,7 +997,7 @@ assembly-table { #valid pub key (5) - valid offset table-row (0x20 0) + 16 set-ushort 0 + valid offset table-row (0x20 0) + 16 set-ushort 0 invalid offset table-row (0x20 0) + 16 set-ushort 0x9990 #name is a valid non-empty string (5) @@ -1005,7 +1005,7 @@ assembly-table { invalid offset table-row (0x20 0) + 18 set-ushort 0x9990 #culture is an optional valid non-empty string (8) - valid offset table-row (0x20 0) + 20 set-ushort 0 + valid offset table-row (0x20 0) + 20 set-ushort 0 invalid offset table-row (0x20 0) + 20 set-ushort 0x9990 #TODO check if culture is one of the listed cultures (9) (23.1.3) @@ -1036,7 +1036,7 @@ assembly-ref-table { invalid offset table-row (0x23 0) + 14 set-ushort 0 #culture is an optional valid non-empty string (6) - valid offset table-row (0x23 0) + 16 set-ushort 0 + valid offset table-row (0x23 0) + 16 set-ushort 0 invalid offset table-row (0x23 0) + 16 set-ushort 0x9990 #TODO check if culture is one of the listed cultures (7) (23.1.3) @@ -1104,11 +1104,11 @@ exported-type-table { #if Implementation points to exported type table visibility must be nested public (5) #invalid offset table-row (0x27 1) set-uint 0x100005 #LAMEIMPL/SPEC this check is not really relevant - + #typename is a valid non-empty string (7) invalid offset table-row (0x27 0) + 8 set-ushort 0 invalid offset table-row (0x27 0) + 8 set-ushort 0x9900 - + #typenamedpace is a valid string (8,9) invalid offset table-row (0x27 0) + 10 set-ushort 0x9900 @@ -1151,13 +1151,13 @@ manifest-resource-table { valid offset table-row (0x28 0) + 10 set-ushort 0, offset table-row (0x28 0) + 0 set-uint 1 - #LAMEIMPL it doesn't check the resource offset! + #LAMEIMPL it doesn't check the resource offset! invalid offset table-row (0x28 0) + 10 set-ushort 0, offset table-row (0x28 0) + 0 set-uint 0x990000 - + #implementation is a valid token (8) - #does it accept exported type? + #does it accept exported type? invalid offset table-row (0x28 0) + 10 set-ushort 0x0006 #coded table 4 is invalid @@ -1169,7 +1169,7 @@ manifest-resource-table { #if implementation point to a file it's index must be zero (10) #row 0 is a file resource invalid offset table-row (0x28 0) set-uint 1 - + #TODO check for dups (9) } @@ -1185,7 +1185,7 @@ nested-class-table { invalid offset table-row (0x29 0) + 2 set-ushort read.ushort (table-row (0x29 0)) - #TODO check for dups based on nestedclass (5) + #TODO check for dups based on nestedclass (5) } @@ -1214,7 +1214,7 @@ generic-param-table { invalid offset table-row (0x2A 0) + 4 set-ushort 0x8800 invalid offset table-row (0x2A 0) + 4 set-ushort 0x8801 - #bad or empty name + #bad or empty name invalid offset table-row (0x2A 0) + 6 set-ushort 0 invalid offset table-row (0x2A 0) + 6 set-ushort 0x8800 diff --git a/mono/tests/metadata-verifier/data-directory-tests.md b/mono/tests/metadata-verifier/data-directory-tests.md index 03be4f38c5fc..d58e567e9b93 100644 --- a/mono/tests/metadata-verifier/data-directory-tests.md +++ b/mono/tests/metadata-verifier/data-directory-tests.md @@ -3,18 +3,18 @@ pe-data-directories-export-table { assembly simple-assembly.exe #zero is fine - valid offset pe-optional-header + 96 set-uint 0 + valid offset pe-optional-header + 96 set-uint 0 valid offset pe-optional-header + 100 set-uint 0 #RVA must be zero - invalid offset pe-optional-header + 96 set-uint 0x2000 , offset pe-optional-header + 100 set-uint 10 + invalid offset pe-optional-header + 96 set-uint 0x2000 , offset pe-optional-header + 100 set-uint 10 } pe-data-directories-import-table { #Simple assembly has 2 sections since it doesn't have any resources assembly simple-assembly.exe - + #The IT is 40 bytes long invalid offset pe-optional-header + 108 set-uint 0 invalid offset pe-optional-header + 108 set-uint 8 @@ -34,35 +34,35 @@ pe-data-directories-bad-tables { #export invalid offset pe-optional-header + 96 set-uint 0x2000 - #exception - invalid offset pe-optional-header + 120 set-uint 0x2000 + #exception + invalid offset pe-optional-header + 120 set-uint 0x2000 #certificate some assemblies have it. - #invalid offset pe-optional-header + 128 set-uint 0x2000 + #invalid offset pe-optional-header + 128 set-uint 0x2000 - #debug MS uses it for putting debug info in the assembly - #invalid offset pe-optional-header + 144 set-uint 0x2000 + #debug MS uses it for putting debug info in the assembly + #invalid offset pe-optional-header + 144 set-uint 0x2000 - #copyright - invalid offset pe-optional-header + 152 set-uint 0x2000 + #copyright + invalid offset pe-optional-header + 152 set-uint 0x2000 - #global ptr - invalid offset pe-optional-header + 160 set-uint 0x2000 + #global ptr + invalid offset pe-optional-header + 160 set-uint 0x2000 - #tls table - invalid offset pe-optional-header + 168 set-uint 0x2000 + #tls table + invalid offset pe-optional-header + 168 set-uint 0x2000 - #load config - invalid offset pe-optional-header + 176 set-uint 0x2000 + #load config + invalid offset pe-optional-header + 176 set-uint 0x2000 - #bound import - invalid offset pe-optional-header + 184 set-uint 0x2000 + #bound import + invalid offset pe-optional-header + 184 set-uint 0x2000 #delay import - invalid offset pe-optional-header + 200 set-uint 0x2000 + invalid offset pe-optional-header + 200 set-uint 0x2000 #reserved import - invalid offset pe-optional-header + 216 set-uint 0x2000 + invalid offset pe-optional-header + 216 set-uint 0x2000 } diff --git a/mono/tests/metadata-verifier/header-tests.md b/mono/tests/metadata-verifier/header-tests.md index 4534ba2299da..4ce8616a6a74 100644 --- a/mono/tests/metadata-verifier/header-tests.md +++ b/mono/tests/metadata-verifier/header-tests.md @@ -24,21 +24,21 @@ msdos-lfanew { invalid offset 0x3f truncate #not enough space for the PE water mark - invalid offset 0x3c set-uint 0xffffffff - invalid offset 0x3c set-uint file-size - 1 + invalid offset 0x3c set-uint 0xffffffff + invalid offset 0x3c set-uint file-size - 1 invalid offset 0x3c set-uint file-size - 2 } pe-signature { assembly simple-assembly.exe - valid offset pe-signature + 0 set-byte 'P' - valid offset pe-signature + 1 set-byte 'E' + valid offset pe-signature + 0 set-byte 'P' + valid offset pe-signature + 1 set-byte 'E' valid offset pe-signature + 2 set-byte 0 valid offset pe-signature + 3 set-byte 0 - invalid offset pe-signature + 0 set-byte 'M' - invalid offset pe-signature + 1 set-byte 'K' + invalid offset pe-signature + 0 set-byte 'M' + invalid offset pe-signature + 1 set-byte 'K' invalid offset pe-signature + 2 set-byte 1 invalid offset pe-signature + 3 set-byte 2 @@ -100,7 +100,7 @@ pe-optional-header-standard-fields { valid offset pe-optional-header + 3 set-byte 0 valid offset pe-optional-header + 3 set-byte 99 - + #Code size is just an informative field as well, nobody cares valid offset pe-optional-header + 4 set-uint 0 valid offset pe-optional-header + 4 set-uint 0x999999 diff --git a/mono/tests/metadata-verifier/resources-tests.md b/mono/tests/metadata-verifier/resources-tests.md index 2443d1f5d06a..06f5d1e09403 100644 --- a/mono/tests/metadata-verifier/resources-tests.md +++ b/mono/tests/metadata-verifier/resources-tests.md @@ -15,4 +15,4 @@ resources-master-directory { invalid offset translate.rva.ind ( pe-optional-header + 112 ) + 14 set-ushort 0x9999 #I won't check anything more than that for now as this is only used by out asp.net stack. -} \ No newline at end of file +} diff --git a/mono/tests/metadata-verifier/section-table-tests.md b/mono/tests/metadata-verifier/section-table-tests.md index 07f85ecda0e4..8bb851119320 100644 --- a/mono/tests/metadata-verifier/section-table-tests.md +++ b/mono/tests/metadata-verifier/section-table-tests.md @@ -25,7 +25,7 @@ pe-section-headers { #VirtualSize = file size + PointerToRawData + 32 invalid offset section-table + 16 set-uint file-size - read.uint ( section-table + 20 ) + 32 invalid offset section-table + 56 set-uint file-size - read.uint ( section-table + 60 ) + 32 - + invalid offset section-table + 60 set-uint 90000 #FIXME add section relocation tests @@ -35,12 +35,12 @@ pe-section-header-flags { #Simple assembly has 2 sections since it doesn't have any resources assembly simple-assembly.exe - #first section is always text + #first section is always text valid offset section-table + 36 set-uint 0x60000020 valid offset section-table + 76 set-uint 0x42000040 - + invalid offset section-table + 36 set-uint 0 invalid offset section-table + 36 set-uint 0xFFFFFFFF -} \ No newline at end of file +}