Skip to content

Instantly share code, notes, and snippets.

@AmaanC
Created February 23, 2018 07:53
Show Gist options
  • Save AmaanC/c5c5f9d76bef589a7fbb0f4af3b15e64 to your computer and use it in GitHub Desktop.
Save AmaanC/c5c5f9d76bef589a7fbb0f4af3b15e64 to your computer and use it in GitHub Desktop.
WASM dump for ./tests/nasm/push.asm
(module
(type $t0 (func))
(type $t1 (func (param i32)))
(type $t2 (func (param i32 i32)))
(type $t3 (func (param i32 i32 i32)))
(type $t4 (func (result i32)))
(type $t5 (func (param i32) (result i32)))
(type $t6 (func (param i32 i32) (result i32)))
(import "e" "get_seg_prefix_ds" (func $e.get_seg_prefix_ds (type $t5)))
(import "e" "get_seg_prefix_ss" (func $e.get_seg_prefix_ss (type $t5)))
(import "e" "get_seg_prefix" (func $e.get_seg_prefix (type $t5)))
(import "e" "push32_ss32" (func $e.push32_ss32 (type $t1)))
(import "e" "push16_ss32" (func $e.push16_ss32 (type $t1)))
(import "e" "push32_ss32_mem" (func $e.push32_ss32_mem (type $t1)))
(import "e" "instr32_8D_mem_pre" (func $e.instr32_8D_mem_pre (type $t0)))
(import "e" "instr32_8D_mem" (func $e.instr32_8D_mem (type $t2)))
(import "e" "push16_ss32_mem" (func $e.push16_ss32_mem (type $t1)))
(import "e" "instr32_B9" (func $e.instr32_B9 (type $t1)))
(import "e" "instr32_31_reg" (func $e.instr32_31_reg (type $t2)))
(import "e" "pop16_ss32" (func $e.pop16_ss32 (type $t4)))
(import "e" "pop32s_ss32" (func $e.pop32s_ss32 (type $t4)))
(import "e" "instr_F4" (func $e.instr_F4 (type $t0)))
(import "e" "m" (memory $e.m 256))
(func $f (export "f") (type $t0)
(i32.store align=1
(i32.const 560)
(i32.load align=1
(i32.const 556)))
(call $e.push32_ss32
(i32.load align=1
(i32.const 12)))
(i32.store align=1
(i32.const 560)
(i32.add
(i32.load align=1
(i32.const 556))
(i32.const 2)))
(i32.store align=1
(i32.const 648)
(i32.or
(i32.load align=1
(i32.const 648))
(i32.const 32)))
(call $e.push16_ss32
(i32.load align=1
(i32.const 10)))
(i32.store align=1
(i32.const 648)
(i32.const 0))
(i32.store align=1
(i32.const 560)
(i32.add
(i32.load align=1
(i32.const 556))
(i32.const 5)))
(call $e.push32_ss32
(i32.const -559038737))
(i32.store align=1
(i32.const 560)
(i32.add
(i32.load align=1
(i32.const 556))
(i32.const 10)))
(i32.store align=1
(i32.const 648)
(i32.or
(i32.load align=1
(i32.const 648))
(i32.const 32)))
(call $e.push16_ss32
(i32.const 53261))
(i32.store align=1
(i32.const 648)
(i32.const 0))
(i32.store align=1
(i32.const 560)
(i32.add
(i32.load align=1
(i32.const 556))
(i32.const 14)))
(call $e.push32_ss32_mem
(call $e.get_seg_prefix_ds
(i32.const 36988)))
(i32.store align=1
(i32.const 560)
(i32.add
(i32.load align=1
(i32.const 556))
(i32.const 26)))
(call $e.instr32_8D_mem_pre)
(call $e.instr32_8D_mem
(call $e.get_seg_prefix_ds
(i32.const 36988))
(i32.const 0))
(i32.store align=1
(i32.const 648)
(i32.or
(i32.load align=1
(i32.const 648))
(i32.const 32)))
(call $e.push16_ss32_mem
(call $e.get_seg_prefix_ds
(i32.add
(i32.load align=1
(i32.const 4))
(i32.const 0))))
(i32.store align=1
(i32.const 648)
(i32.const 0))
(i32.store align=1
(i32.const 560)
(i32.add
(i32.load align=1
(i32.const 556))
(i32.const 34)))
(call $e.instr32_B9
(i32.const 51966))
(i32.store align=1
(i32.const 648)
(i32.or
(i32.load align=1
(i32.const 648))
(i32.const 32)))
(call $e.push16_ss32
(i32.load align=1
(i32.const 8)))
(i32.store align=1
(i32.const 648)
(i32.const 0))
(i32.store align=1
(i32.const 560)
(i32.add
(i32.load align=1
(i32.const 556))
(i32.const 36)))
(call $e.push32_ss32
(i32.load align=1
(i32.const 8)))
(i32.store align=1
(i32.const 560)
(i32.add
(i32.load align=1
(i32.const 556))
(i32.const 39)))
(call $e.instr32_31_reg
(i32.const 0)
(i32.const 0))
(i32.store align=1
(i32.const 648)
(i32.or
(i32.load align=1
(i32.const 648))
(i32.const 32)))
(i32.store align=1
(i32.const 4)
(call $e.pop16_ss32))
(i32.store align=1
(i32.const 648)
(i32.const 0))
(i32.store align=1
(i32.const 560)
(i32.add
(i32.load align=1
(i32.const 556))
(i32.const 41)))
(i32.store align=1
(i32.const 4)
(call $e.pop32s_ss32))
(i32.store align=1
(i32.const 560)
(i32.add
(i32.load align=1
(i32.const 556))
(i32.const 42)))
(i32.store align=1
(i32.const 648)
(i32.or
(i32.load align=1
(i32.const 648))
(i32.const 32)))
(i32.store align=1
(i32.const 8)
(call $e.pop16_ss32))
(i32.store align=1
(i32.const 648)
(i32.const 0))
(i32.store align=1
(i32.const 560)
(i32.add
(i32.load align=1
(i32.const 556))
(i32.const 44)))
(i32.store align=1
(i32.const 8)
(call $e.pop32s_ss32))
(i32.store align=1
(i32.const 560)
(i32.add
(i32.load align=1
(i32.const 556))
(i32.const 45)))
(i32.store align=1
(i32.const 648)
(i32.or
(i32.load align=1
(i32.const 648))
(i32.const 32)))
(i32.store align=1
(i32.const 12)
(call $e.pop16_ss32))
(i32.store align=1
(i32.const 648)
(i32.const 0))
(i32.store align=1
(i32.const 560)
(i32.add
(i32.load align=1
(i32.const 556))
(i32.const 47)))
(i32.store align=1
(i32.const 16)
(call $e.pop32s_ss32))
(i32.store align=1
(i32.const 560)
(i32.add
(i32.load align=1
(i32.const 556))
(i32.const 48)))
(i32.store align=1
(i32.const 648)
(i32.or
(i32.load align=1
(i32.const 648))
(i32.const 32)))
(i32.store align=1
(i32.const 28)
(call $e.pop16_ss32))
(i32.store align=1
(i32.const 648)
(i32.const 0))
(i32.store align=1
(i32.const 560)
(i32.add
(i32.load align=1
(i32.const 556))
(i32.const 50)))
(i32.store align=1
(i32.const 648)
(i32.or
(i32.load align=1
(i32.const 648))
(i32.const 32)))
(i32.store align=1
(i32.const 32)
(call $e.pop16_ss32))
(i32.store align=1
(i32.const 648)
(i32.const 0))
(i32.store align=1
(i32.const 560)
(i32.add
(i32.load align=1
(i32.const 556))
(i32.const 52)))
(i32.store align=1
(i32.const 556)
(i32.add
(i32.load align=1
(i32.const 556))
(i32.const 53)))
(call $e.instr_F4)
(i32.store align=1
(i32.const 664)
(i32.add
(i32.load align=1
(i32.const 664))
(i32.const 20)))))
log.js:13 13:18:58+234 [ ] 0x8026: FF F2 push edx
log.js:13 13:18:58+235 [ ] 0x8028: 66 FF F3 push bx
log.js:13 13:18:58+236 [ ] 0x802B: 68 EF BE AD DE push 0xdeadbeef
log.js:13 13:18:58+237 [ ] 0x8030: 66 68 0D D0 push 0xd00d
log.js:13 13:18:58+237 [ ] 0x8034: FF 35 7C 90 00 00 push dword ptr [0x907c]
log.js:13 13:18:58+238 [ ] 0x803A: 8D 05 7C 90 00 00 lea eax, dword ptr [0x907c]
log.js:13 13:18:58+238 [ ] 0x8040: 66 FF 30 push word ptr [eax]
log.js:13 13:18:58+240 [ ] 0x8043: B9 FE CA 00 00 mov ecx, 0xcafe
log.js:13 13:18:58+240 [ ] 0x8048: 66 51 push cx
log.js:13 13:18:58+240 [ ] 0x804A: 51 push ecx
log.js:13 13:18:58+240 [ ] 0x804B: 31 C0 xor eax, eax
log.js:13 13:18:58+242 [ ] 0x804D: 66 58 pop ax
log.js:13 13:18:58+242 [ ] 0x804F: 58 pop eax
log.js:13 13:18:58+242 [ ] 0x8050: 66 59 pop cx
log.js:13 13:18:58+243 [ ] 0x8052: 59 pop ecx
log.js:13 13:18:58+244 [ ] 0x8053: 66 5A pop dx
log.js:13 13:18:58+244 [ ] 0x8055: 5B pop ebx
log.js:13 13:18:58+245 [ ] 0x8056: 66 5E pop si
log.js:13 13:18:58+246 [ ] 0x8058: 66 5F pop di
log.js:13 13:18:58+247 [ ] 0x805A: F4 hlt
log.js:13 13:18:58+247 [ ]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment