Method: MicroCisc::Compile::Instruction#validate_dest
- Defined in:
- lib/micro_cisc/compile/instruction.rb
#validate_dest(arg) ⇒ Object
322 323 324 325 326 327 328 329 330 331 332 333 |
# File 'lib/micro_cisc/compile/instruction.rb', line 322 def validate_dest(arg) valid = arg.last == 'mem' && [1, 2, 3].include?(arg.first) valid = valid || (arg.last == 'reg' && [0, 4, 1, 2, 3].include?(arg.first)) if valid reg = arg.first reg += 4 if [1, 2, 3].include?(arg.first) && arg.last == 'reg' reg else raise ArgumentError, "Invalid destination: #{arg.first.to_s}.#{arg.last}" end end |