 		@pc += 4 if @delayed == null
 
 	decompile_block: (pc) ->
-		@decompiling = true
+		if @last_block_pc == pc
+			return [true, pc, @last_block_func]
+
+		@last_block_pc = pc
 		total = ''
 		emit = (snippet) -> code += snippet + '\n'
 		branched = false

			0, 0, 0, 0, 0, 0, 0, 0
		]

	execute_one: ->
		@decompiling = false
		@inscount++
		@delayed = @delay
		cpc = if @delayed != null then @delay else @pc

				total += code

		func = eval('(function(state) { state.delayed = false;\n' + total + ' })')
		@last_block_func = func
		[true, pc, func]

	branch: (pc, recompiled=false) ->
