Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
Nodemcu Firmware
Commits
4905381c
Commit
4905381c
authored
Apr 04, 2019
by
Terry Ellison
Browse files
Resolve merge conflict on docs/index.md
parents
11592951
3f5ae99e
Changes
544
Show whitespace changes
Inline
Side-by-side
app/lua/lauxlib.h
View file @
4905381c
app/lua/lbaselib.c
View file @
4905381c
app/lua/ldblib.c
View file @
4905381c
app/lua/ldo.c
View file @
4905381c
app/lua/legc.c
View file @
4905381c
app/lua/lflash.c
View file @
4905381c
app/lua/lflash.h
View file @
4905381c
app/lua/lgc.c
View file @
4905381c
app/lua/linit.c
View file @
4905381c
...
...
@@ -47,6 +47,20 @@ extern const luaR_entry lua_rotable_base[];
#define LUA_LIBS lua_libs_core
#endif
#ifdef _MSC_VER
//MSVC requires us to declare these sections before we refer to them
#pragma section(__ROSECNAME(A), read)
#pragma section(__ROSECNAME(zzzzzzzz), read)
#pragma section(__ROSECNAME(libs), read)
#pragma section(__ROSECNAME(rotable), read)
//These help us to find the beginning and ending of the RO data. NOTE: linker
//magic is used; the section names are lexically sorted, so 'a' and 'z' are
//important to keep the other sections lexically between these two dummy
//variables. Check your mapfile output if you need to fiddle with this stuff.
const
LOCK_IN_SECTION
(
A
)
char
_ro_start
[
1
]
=
{
0
};
const
LOCK_IN_SECTION
(
zzzzzzzz
)
char
_ro_end
[
1
]
=
{
0
};
#endif
static
const
LOCK_IN_SECTION
(
libs
)
luaL_reg
LUA_LIBS
[]
=
{
{
""
,
luaopen_base
},
{
LUA_LOADLIBNAME
,
luaopen_package
},
...
...
app/lua/llimits.h
View file @
4905381c
app/lua/lmathlib.c
View file @
4905381c
app/lua/loadlib.c
View file @
4905381c
app/lua/lobject.c
View file @
4905381c
app/lua/lobject.h
View file @
4905381c
app/lua/lopcodes.h
View file @
4905381c
app/lua/lrodefs.h
View file @
4905381c
app/lua/lrotable.c
View file @
4905381c
...
...
@@ -9,7 +9,11 @@
#include "lobject.h"
#include "lapi.h"
#ifdef _MSC_VER
#define ALIGNED_STRING (__declspec( align( 4 ) ) char*)
#else
#define ALIGNED_STRING (__attribute__((aligned(4))) char *)
#endif
#define LA_LINES 16
#define LA_SLOTS 4
//#define COLLECT_STATS
...
...
@@ -82,6 +86,7 @@ const TValue* luaR_findentry(ROTable *rotable, TString *key, unsigned *ppos) {
size_t
hash
=
HASH
(
rotable
,
key
);
unsigned
i
=
0
;
int
j
=
lookup_cache
(
hash
,
rotable
);
unsigned
l
=
key
?
key
->
tsv
.
len
:
sizeof
(
"__metatable"
)
-
1
;
if
(
pentry
)
{
if
(
j
>=
0
){
...
...
@@ -97,9 +102,9 @@ const TValue* luaR_findentry(ROTable *rotable, TString *key, unsigned *ppos) {
* aren't needed if there is a cache hit. Note that the termination null
* is included so a "on\0" has a mask of 0xFFFFFF and "a\0" has 0xFFFF.
*/
unsigned
name4
=
*
(
unsigned
*
)
strkey
;
unsigned
l
=
key
?
key
->
tsv
.
len
:
sizeof
(
"__metatable"
)
-
1
;
unsigned
mask4
=
l
>
2
?
(
~
0u
)
:
(
~
0u
)
>>
((
3
-
l
)
*
8
);
unsigned
name4
,
mask4
=
l
>
2
?
(
~
0u
)
:
(
~
0u
)
>>
((
3
-
l
)
*
8
)
;
c_memcpy
(
&
name4
,
strkey
,
sizeof
(
name4
))
;
for
(;
pentry
->
key
.
type
!=
LUA_TNIL
;
i
++
,
pentry
++
)
{
if
((
pentry
->
key
.
type
==
LUA_TSTRING
)
&&
((
*
(
unsigned
*
)
pentry
->
key
.
id
.
strkey
^
name4
)
&
mask4
)
==
0
&&
...
...
app/lua/lrotable.h
View file @
4905381c
...
...
@@ -64,13 +64,21 @@ int luaR_isrotable(void *p);
*/
#if defined(LUA_CROSS_COMPILER)
#if defined(_MSC_VER)
//msvc build uses these dummy vars to locate the beginning and ending addresses of the RO data
extern
const
char
_ro_start
[],
_ro_end
[];
#define IN_RODATA_AREA(p) (((const char*)(p)) >= _ro_start && ((const char *)(p)) <= _ro_end)
#else
/* one of the POSIX variants */
#if defined(__CYGWIN__)
#define _RODATA_END __end__
#elif defined(__MINGW32__)
#define _RODATA_END end
#else
#define _RODATA_END _edata
#endif
extern
const
char
_RODATA_END
[];
#define IN_RODATA_AREA(p) (((const char *)(p)) < _RODATA_END)
#endif
/* defined(_MSC_VER) */
#else
/* xtensa tool chain for ESP target */
...
...
@@ -78,7 +86,7 @@ extern const char _irom0_text_start[];
extern
const
char
_irom0_text_end
[];
#define IN_RODATA_AREA(p) (((const char *)(p)) >= _irom0_text_start && ((const char *)(p)) <= _irom0_text_end)
#endif
#endif
/* defined(LUA_CROSS_COMPILER) */
/* Return 1 if the given pointer is a rotable */
#define luaR_isrotable(p) IN_RODATA_AREA(p)
...
...
app/lua/lstate.c
View file @
4905381c
app/lua/lstring.c
View file @
4905381c
Prev
1
…
5
6
7
8
9
10
11
12
13
…
28
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment