mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 18:22:07 +00:00
@@ -11,7 +11,7 @@
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
void math_DefinePI(void);
|
||||
int32_t math_Callback_PI(void);
|
||||
void math_Print(int32_t i);
|
||||
int32_t math_Sin(int32_t i);
|
||||
int32_t math_Cos(int32_t i);
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
#include "asm/mymath.h"
|
||||
#include "asm/symbol.h"
|
||||
#include "asm/warning.h"
|
||||
|
||||
#define fx2double(i) ((double)((i) / 65536.0))
|
||||
#define double2fx(d) ((int32_t)((d) * 65536.0))
|
||||
@@ -26,11 +27,13 @@
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Define the _PI symbol
|
||||
* Return the _PI symbol value
|
||||
*/
|
||||
void math_DefinePI(void)
|
||||
int32_t math_Callback_PI(void)
|
||||
{
|
||||
sym_AddEqu("_PI", double2fx(M_PI));
|
||||
warning(WARNING_OBSOLETE, "`_PI` is deprecated; use 3.14159\n");
|
||||
|
||||
return double2fx(M_PI);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -720,5 +720,12 @@ void sym_Init(time_t now)
|
||||
labelScope = NULL;
|
||||
anonLabelID = 0;
|
||||
|
||||
math_DefinePI();
|
||||
/* _PI is deprecated */
|
||||
struct Symbol *_PISymbol = createBuiltinSymbol("_PI");
|
||||
|
||||
_PISymbol->type = SYM_EQU;
|
||||
_PISymbol->src = NULL;
|
||||
_PISymbol->fileLine = 0;
|
||||
_PISymbol->hasCallback = true;
|
||||
_PISymbol->numCallback = math_Callback_PI;
|
||||
}
|
||||
|
||||
4
test/asm/deprecated-pi.asm
Normal file
4
test/asm/deprecated-pi.asm
Normal file
@@ -0,0 +1,4 @@
|
||||
; Remove this test case when _PI is removed.
|
||||
PRINTF _PI
|
||||
PRINTT "\n"
|
||||
PURGE _PI
|
||||
5
test/asm/deprecated-pi.err
Normal file
5
test/asm/deprecated-pi.err
Normal file
@@ -0,0 +1,5 @@
|
||||
warning: deprecated-pi.asm(2): [-Wobsolete]
|
||||
`_PI` is deprecated; use 3.14159
|
||||
ERROR: deprecated-pi.asm(4):
|
||||
Built-in symbol '_PI' cannot be purged
|
||||
error: Assembly aborted (1 errors)!
|
||||
1
test/asm/deprecated-pi.out
Normal file
1
test/asm/deprecated-pi.out
Normal file
@@ -0,0 +1 @@
|
||||
3.14159
|
||||
@@ -13,7 +13,7 @@ PRINTT STRFMT(TEMPLATE, "roses", "red")
|
||||
PRINTT STRFMT(TEMPLATE, "violets", "blue")
|
||||
PRINTT STRFMT(TEMPLATE, "void", 0, "extra")
|
||||
|
||||
PRINTT STRCAT(STRFMT(STRFMT("%%%s.%d%s", "", 9, "f"), _PI), \
|
||||
PRINTT STRCAT(STRFMT(STRFMT("%%%s.%d%s", "", 9, "f"), 3.14159), \
|
||||
STRFMT(" ~ %s\n", STRFMT("%s%x", "thr", 238)))
|
||||
|
||||
PRINTT STRFMT("%d eol %", 1)
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
n equ 300
|
||||
m equ -42
|
||||
f equ -123.0456
|
||||
pi equ 3.14159
|
||||
s equs "hello"
|
||||
|
||||
printt "<{ -6d:n}> <{+06u:n}> <{5x:n}> <{#16b:n}>\n"
|
||||
printt "<{u:m}> <{+3d:m}> <{#016o:m}>\n"
|
||||
printt "<{f:_PI}> <{06f:f}> <{.10f:f}>\n"
|
||||
printt "<{f:pi}> <{06f:f}> <{.10f:f}>\n"
|
||||
printt "<{#-10s:s}> <{10s:s}>\n"
|
||||
|
||||
foo: macro
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
ERROR: string-formatting.asm(9):
|
||||
ERROR: string-formatting.asm(10):
|
||||
Formatting string with prefix flag '#'
|
||||
error: Assembly aborted (1 errors)!
|
||||
|
||||
Reference in New Issue
Block a user