X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/a253471d7f8e4d91bf6ebabab00155c3b387d3d0..93a3786624b2768d89bfa27e46598dc64e2fb70a:/offlineasm/transform.rb diff --git a/offlineasm/transform.rb b/offlineasm/transform.rb index 86c72be..302971e 100644 --- a/offlineasm/transform.rb +++ b/offlineasm/transform.rb @@ -21,6 +21,7 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF # THE POSSIBILITY OF SUCH DAMAGE. +require "config" require "ast" # @@ -228,6 +229,9 @@ class Sequence mapping[myMacros[item.name].variables[idx]] = item.operands[idx] end } + if item.annotation + newList << Instruction.new(item.codeOrigin, "localAnnotation", [], item.annotation) + end newList += myMacros[item.name].body.substitute(mapping).demacroify(myMyMacros).renameLabels(item.name).list else newList << item.demacroify(myMacros) @@ -400,6 +404,17 @@ end class Sequence def validate validateChildren + + # Further verify that this list contains only instructions, labels, and skips. + @list.each { + | node | + unless node.is_a? Instruction or + node.is_a? Label or + node.is_a? LocalLabel or + node.is_a? Skip + raise "Unexpected #{node.inspect} at #{node.codeOrigin}" + end + } end end