/* * automatic code generated from * test.go in package "test" */ // basic types typedef unsigned char _T_U8; typedef signed char _T_I8; typedef unsigned short _T_U16; typedef signed short _T_I16; typedef unsigned long _T_U32; typedef signed long _T_I32; typedef unsigned long long _T_U64; typedef signed long long _T_I64; typedef float _T_F32; typedef double _T_F64; typedef double _T_F80; typedef int _T_B; typedef unsigned char* _T_P; #define offsetof(s, m) (_T_U32)(&(((s*)0)->m)) typedef struct{_T_U32 I1; _T_U32 I2; _T_U32 I3;} _T_I; typedef struct{_T_U32 O1; _T_U32 O2;} _T_O; void test_main(void); _T_O test_simple(_T_I); int printf(char*, ...); // external variables void test_main(void) { // registers register union { _T_U8 _R_U8; _T_I8 _R_I8; _T_U16 _R_U16; _T_I16 _R_I16; _T_U32 _R_U32; _T_I32 _R_I32; _T_U64 _R_U64; _T_I64 _R_I64; _T_F32 _R_F32; _T_F64 _R_F64; _T_F80 _R_F80; _T_B _R_B; _T_P _R_P; } _U; // local variables _T_I32 _V_3; // x _T_I32 _V_4; // y { _T_I I; _T_O O; I.I1 = 10; I.I2 = 20; I.I3 = 30; O = test_simple(I); _V_3 = O.O1; _V_4 = O.O2; } // 1 7 LOAD_I32 NAME a(1) p(3) l(7) x G0 INT32 _U._R_I32 = _V_3; // 2 10 CMP_I32 I15 LITERAL a(1) l(10) INT32 if(_U._R_I32 == 15) // 3 10 BEQ_I32 4 goto _L4; printf("no 1 %d\n", _V_3); // 4 7 LOAD_I32 NAME a(1) p(4) l(7) y G0 INT32 _L4: _U._R_I32 = _V_4; // 5 11 CMP_I32 I50 LITERAL a(1) l(11) INT32 if(_U._R_I32 == 50) // 6 11 BEQ_I32 7 goto _L7; printf("no 2 %d\n", _V_4); // 7 0 END _L7: ; } _T_O test_simple(_T_I I) { // registers register union { _T_U8 _R_U8; _T_I8 _R_I8; _T_U16 _R_U16; _T_I16 _R_I16; _T_U32 _R_U32; _T_I32 _R_I32; _T_U64 _R_U64; _T_I64 _R_I64; _T_F32 _R_F32; _T_F64 _R_F64; _T_F80 _R_F80; _T_B _R_B; _T_P _R_P; } _U; _T_O O; int ia, ib, ic; ia = I.I1; ib = I.I2; ic = I.I3; O.O1 = ia+5; O.O2 = ib+ic; return O; } int main(void) { test_main(); return 0; }