Lines Matching full:do
35 assert('Non-prefixed instruction opcodes and prefixes should fit one byte') do
39 assert('Non-prefixed instruction opcode indexes are sorted') do
43 assert('Prefix opcode indexes are sorted') do
47 assert('All instructions for a prefix should fit one byte') do
48 Panda.prefixes.map do |prefix|
53 assert('Prefixed instruction should have some prefix specified') do
54 Panda.instructions.map do |insn|
59 assert('Prefix should be defined') do
60 Panda.instructions.map do |insn|
67 assert('All prefixes should have unique name') do
71 assert('There should be non-zero gap between non-prefixed and prefixes') do
75 assert('There should be non-zero gap between public and private prefixes') do
79 assert('All tags are unique between categories') do
83 assert('All tags are used') do
84 %i[verification exceptions properties].map do |type|
91 assert('All tags are defined') do
92 %i[verification exceptions properties].map do |type|
101 assert('Verification, exceptions and properties are not empty for every instruction group') do
102 %i[verification exceptions properties].map do |type|
107 assert('Mnemonic defines operand types') do
108 Panda.instructions.group_by(&:mnemonic).map do |_, insns|
113 assert('Dtype should be none when bytecode doesn\'t write into accumulator or registers') do
114 Panda.instructions.map do |i|
121 assert('Instruction::float? should play well with operand types') do
122 Panda.instructions.map do |i|
127 assert('Conditionals should be jumps') do # At least currently
131 assert('Acc_none should not be specified along with other accumulator properties') do
132 Panda.instructions.map do |i|
137 assert('All calls write into accumulator') do
141 assert('Jumps differ from other control-flow') do # At least currently
142 Panda.instructions.select { |i| i.mnemonic.match?(/^(throw|call|return)/) }.map do |i|
147 assert('Conversions should correspond to source and destination type') do
148 Panda.instructions.map do |i|
157 …uld be one of none, ref, u1, u2, i8, u8, i16, u16, i32, u32, b32, i64, u64, b64, f64, top, any') do
159 Panda.instructions.map do |i|
164 assert('Instruction should have not more than one destination') do
166 Panda.instructions.map do |i|
171 assert('Instruction should have not more than one ID operand') do
173 Panda.instructions.map do |i|
178 assert('Register encoding width should be the same in instruction') do
180 Panda.instructions.map do |i|
186 assert('Calls should have call property and x_call exception tag') do
187 Panda.instructions.map do |i|
194 assert('Virtual calls should have call_virt property') do
195 Panda.instructions.map do |i|