Part Number: MSP430G2553
There is only one pin configured for input on P1, and interrupts are only enabled for that one pin. The interrupt handler is only called on a high-low transition of that input pin, exactly as configured.
However... there are several other bits also set in P1IFG. Even if they are cleared, the next time the interrupt handler is entered, they are all set again (bits 0, 3, 6, and 7).
What can cause this, other than setting them in software?
Port Config:
#define ENABLE_BTN_PIN 3
#define ENABLE_BTN (1 << ENABLE_BTN_PIN)
P1IES = ENABLE_BTN; // input: edge select High->Low
P1IE = ENABLE_BTN; // input: generate interrupts on input change
P1REN = ENABLE_BTN; // enable resistor
P1OUT |= ENABLE_BTN;// pull-up