#!/bin/awk -f BEGIN { if (ARGC != 3) { print "Syntax: regdiff dump1 dump2\n" > "/dev/stderr"; exit(1); } f1 = ARGV[1]; f2 = ARGV[2]; if ((getline l1 < f1) <= 0 || (getline l2 < f2) <= 0) { printf("Cannot find file %s or %s\n", f1, f2) > "/dev/stderr"; exit(1); } while (1) { if ((getline l1 < f1) <= 0 || (getline l2 < f2) <= 0) break; l1n = split(l1, l1a); l2n = split(l2, l2a); for (i = 1; i < l1n; i++) { if (l1a[i] != l2a[i]) { reg = sprintf("%s[0x%X]", substr(l1a[1], 0, length(l1a[1]) - 1), i - 2); printf("%s:%20s%20s\n", reg, l1a[i], l2a[i]); } } } exit(0); }