@@ -1276,54 +1276,55 @@ def visit_PEEK(self, node):
12761276 # region MATH Functions
12771277 def visit_SIN (self , node ):
12781278 self .ic_fparam (node .operand .type_ , node .operand .t )
1279- self .ic_call ('SIN' , node .size )
1280- self .REQUIRES .add ('sin.asm' )
1279+ self .runtime_call (RuntimeLabel .SIN , node .size )
12811280
12821281 def visit_COS (self , node ):
12831282 self .ic_fparam (node .operand .type_ , node .operand .t )
1284- self .ic_call ('COS' , node .size )
1285- self .REQUIRES .add ('cos.asm' )
1283+ self .runtime_call (RuntimeLabel .COS , node .size )
12861284
12871285 def visit_TAN (self , node ):
12881286 self .ic_fparam (node .operand .type_ , node .operand .t )
1289- self .ic_call ('TAN' , node .size )
1290- self .REQUIRES .add ('tan.asm' )
1287+ self .runtime_call (RuntimeLabel .TAN , node .size )
12911288
12921289 def visit_ASN (self , node ):
12931290 self .ic_fparam (node .operand .type_ , node .operand .t )
1294- self .ic_call ('ASIN' , node .size )
1295- self .REQUIRES .add ('asin.asm' )
1291+ self .runtime_call (RuntimeLabel .ASN , node .size )
12961292
12971293 def visit_ACS (self , node ):
12981294 self .ic_fparam (node .operand .type_ , node .operand .t )
1299- self .ic_call ('ACOS' , node .size )
1300- self .REQUIRES .add ('acos.asm' )
1295+ self .runtime_call (RuntimeLabel .ACS , node .size )
13011296
13021297 def visit_ATN (self , node ):
13031298 self .ic_fparam (node .operand .type_ , node .operand .t )
1304- self .ic_call ('ATAN' , node .size )
1305- self .REQUIRES .add ('atan.asm' )
1299+ self .runtime_call (RuntimeLabel .ATN , node .size )
13061300
13071301 def visit_EXP (self , node ):
13081302 self .ic_fparam (node .operand .type_ , node .operand .t )
1309- self .ic_call ('EXP' , node .size )
1310- self .REQUIRES .add ('exp.asm' )
1303+ self .runtime_call (RuntimeLabel .EXP , node .size )
13111304
13121305 def visit_LN (self , node ):
13131306 self .ic_fparam (node .operand .type_ , node .operand .t )
1314- self .ic_call ('LN' , node .size )
1315- self .REQUIRES .add ('logn.asm' )
1307+ self .runtime_call (RuntimeLabel .LN , node .size )
13161308
13171309 def visit_SGN (self , node ):
13181310 s = self .TSUFFIX (node .operand .type_ )
13191311 self .ic_fparam (node .operand .type_ , node .operand .t )
1320- self .ic_call ('__SGN%s' % s .upper (), node .size )
1321- self .REQUIRES .add ('sgn%s.asm' % s )
1312+
1313+ label = {
1314+ 'i8' : RuntimeLabel .SGNI8 ,
1315+ 'u8' : RuntimeLabel .SGNU8 ,
1316+ 'i16' : RuntimeLabel .SGNI16 ,
1317+ 'u16' : RuntimeLabel .SGNU16 ,
1318+ 'i32' : RuntimeLabel .SGNI32 ,
1319+ 'u32' : RuntimeLabel .SGNU32 ,
1320+ 'f16' : RuntimeLabel .SGNF16 ,
1321+ 'f' : RuntimeLabel .SGNF
1322+ }[s ]
1323+ self .runtime_call (label , node .size )
13221324
13231325 def visit_SQR (self , node ):
13241326 self .ic_fparam (node .operand .type_ , node .operand .t )
1325- self .ic_call ('SQRT' , node .size )
1326- self .REQUIRES .add ('sqrt.asm' )
1327+ self .runtime_call (RuntimeLabel .SQR , node .size )
13271328
13281329 # endregion
13291330
0 commit comments