From b27eb9dbe014efa4ed1ac1fea12d86b22f5e2d8d Mon Sep 17 00:00:00 2001 From: inglorion Date: Sat, 2 Feb 2013 19:15:30 -0800 Subject: [PATCH] implemented save-locals and restore-locals on i386 --- lib/voodoo/generators/i386_nasm_generator.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/voodoo/generators/i386_nasm_generator.rb b/lib/voodoo/generators/i386_nasm_generator.rb index 1c8f991..c687c1f 100644 --- a/lib/voodoo/generators/i386_nasm_generator.rb +++ b/lib/voodoo/generators/i386_nasm_generator.rb @@ -71,7 +71,12 @@ module Voodoo @BP = :ebp # Stack pointer @SP = :esp - @SAVE_FRAME_REGISTERS = [:ebx, :edi, :esi, :esp, :ebp] + # Registers used to store locals + @LOCAL_REGS = [] + @NLOCAL_REGS = @LOCAL_REGS.length + @LOCAL_REGISTERS_SET = Set.new @LOCAL_REGS + @SAVED_FRAME_LAYOUT = { :ebx => 0, :edi => 1, :esi => 2, :esp => 3, :ebp => 4 } + @SAVE_FRAME_REGISTERS = @SAVED_FRAME_LAYOUT.keys super params @features.merge! \ :'bits-per-word' => '32', -- 2.11.4.GIT