Skip to content

Commit 2c850da

Browse files
committed
Reducing method_missing to both marginally improve performance, and
to act as documentation of (most) asm instruction currently being used.
1 parent 8a8a12c commit 2c850da

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

emitter.rb

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -432,6 +432,38 @@ def emit(op, *args)
432432
@out.emit(op, *args)
433433
end
434434

435+
# Avoid method_missing...
436+
437+
def movl src, dest; emit(:movl, src, dest); end
438+
def addl src, dest; emit(:addl, src, dest); end
439+
def subl src, dest; emit(:subl, src, dest); end
440+
def cmpl src, dest; emit(:cmpl, src, dest); end
441+
def testl src,dest; emit(:testl, src, dest); end
442+
def movzbl src,dest; emit(:movzbl, src, dest); end
443+
def jmp arg; emit(:jmp,arg); end
444+
def popl arg; emit(:popl, arg); end
445+
def pushl arg; emit(:pushl, arg); end
446+
def je arg; emit(:je, arg); end
447+
def jz arg; emit(:jz, arg); end
448+
449+
def ret; emit(:ret); end
450+
def leave; emit(:leave); end
451+
452+
def sall *args
453+
emit(:sall, *args)
454+
end
455+
def sarl *args
456+
emit(:sarl, *args)
457+
end
458+
def idivl *args
459+
emit(:idivl, *args)
460+
end
461+
def imull *args
462+
emit(:imull, *args)
463+
end
464+
def leal *args
465+
emit(:leal, *args)
466+
end
435467

436468
# Makes it easy to use the emitter to emit any kind of assembly calls, that are needed.
437469
#

0 commit comments

Comments
 (0)