Bug 848146 - Do not need to SkipRoot inline assembler buffers, r=terrence
authorSteve Fink <sfink@mozilla.com>
Tue, 05 Mar 2013 14:57:49 -0800
changeset 138248 e12f7eb2b997387b800901f927023dc520062fdd
parent 138247 ec136828f42a7c1a0142ce407f2f9867b87698ea
child 138249 cad670b92cfe544015ad1695fe3e85f048001960
push id24949
push userryanvm@gmail.com
push dateFri, 12 Jul 2013 17:29:41 +0000
treeherdermozilla-central@f2d3b5149d3a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersterrence
bugs848146
milestone25.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 848146 - Do not need to SkipRoot inline assembler buffers, r=terrence
js/src/assembler/assembler/AssemblerBuffer.h
--- a/js/src/assembler/assembler/AssemblerBuffer.h
+++ b/js/src/assembler/assembler/AssemblerBuffer.h
@@ -59,19 +59,16 @@ namespace JSC {
     class AssemblerBuffer {
         static const int inlineCapacity = 256;
     public:
         AssemblerBuffer()
             : m_buffer(m_inlineBuffer)
             , m_capacity(inlineCapacity)
             , m_size(0)
             , m_oom(false)
-#if defined(DEBUG) && defined(JS_GC_ZEAL) && defined(JSGC_ROOT_ANALYSIS) && !defined(JS_THREADSAFE)
-            , m_skipInline(js::TlsPerThreadData.get(), &m_inlineBuffer)
-#endif
         {
         }
 
         ~AssemblerBuffer()
         {
             if (m_buffer != m_inlineBuffer)
                 free(m_buffer);
         }
@@ -245,27 +242,16 @@ namespace JSC {
             m_capacity = newCapacity;
         }
 
         char m_inlineBuffer[inlineCapacity];
         char* m_buffer;
         int m_capacity;
         int m_size;
         bool m_oom;
-
-#if defined(DEBUG) && defined(JS_GC_ZEAL) && defined(JSGC_ROOT_ANALYSIS) && !defined(JS_THREADSAFE)
-        /*
-         * GC Pointers baked into the code can get stored on the stack here
-         * through the inline assembler buffer. We need to protect these from
-         * being poisoned by the rooting analysis, however, they do not need to
-         * actually be traced: the compiler is only allowed to bake in
-         * non-nursery-allocated pointers, such as Shapes.
-         */
-        js::SkipRoot m_skipInline;
-#endif
     };
 
     class GenericAssembler
     {
         js::Sprinter *printer;
 
       public: