#define DONT_EXECUTE_RX_INT_INSTRUCTION_ON_STACK #ifdef DONT_EXECUTE_RX_INT_INSTRUCTION_ON_STACK #if 1 #define INTNUM(num)\ __builtin_rx_int(num) #else #define INTNUM(num)\ __asm__ volatile\ (\ /* AssemblerTemplate */\ "INT #" #num \ : /* OutputOperands */\ /* No outputs. */\ ) #endif #define INTN(N)\ case N:\ INTNUM(N);\ break; #define INTN5(N)\ INTN(N)\ INTN(N+1)\ INTN(N+2)\ INTN(N+3)\ INTN(N+4) #define INTN10(N)\ INTN5(N)\ INTN5(N+5) #define INTN50(N)\ INTN10(N)\ INTN10(N+10)\ INTN10(N+20)\ INTN10(N+30)\ INTN10(N+40) void int_exception_switch_case_function(signed long num); void int_exception_switch_case_function(signed long num) { switch(num) { INTN50(0) INTN50(50) INTN50(100) INTN50(150) INTN50(200) INTN5(250) INTN(255) default: INTNUM(255); } } #endif /* DONT_EXECUTE_RX_INT_INSTRUCTION_ON_STACK */