It turns out to be surprisingly expensive to access the gpt hardware (on the order of 150ns per read/write). To cut down on the overhead of setting up each eventtimer event, eliminate read-modify-write sequences to manage the compare interrupt enable, by keeping a shadow copy of the hardware register and only writing to the hardware when the enable bits really change.