blob: 2ab4a78e829cfb20f30570e0b77b256f20b7d388 [file] [log] [blame]
/*
* 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;
}