1. A processor having an execution result prediction function for an instruction that includes one or a plurality of instruction execution units for executing the instruction and a predicting means for generating a predicted value of an execution result of an instruction that is being executed currently from the execution result of the instruction executed in the past, wherein the instruction execution unit executes the instruction using the predicted value of the execution result of the instruction the predicting means outputs, and the predicting means, including: an execution result history table that selects the execution result of the instruction executed in the past from two writing ways or more and stores it as an entry; a priority table that stores a priority between the entries stored in the history table; a prediction generation logic means for predicting the execution result of the instruction that is being executed currently from the entry read from the history table; a prediction correctness check logic means that decides whether the predicted value was correct or not as a result of having actually executed the instruction under which the execution result was predicted; and a writing way selection logic means that selects a writing way stored in the history table and a priority generation logic means that generates the priority written in the priority table, wherein the prediction generation logic means allows the predicting means to generate the predicted value of the execution result of the instruction that is executing currently from the entry of the history table, when the prediction generation logic means indicates that the generated predicted value and the execution result of the instruction that is being executed currently are identical, the priority generation logic means increases the priority of the priority table so that it will be indicated that the entry of the history table used as the input of the prediction generation logic means is useful, and when the prediction generation logic means indicates that the predicted value and the execution result of the instruction that is being executed currently differ, the priority of the priority table is not changed.