/* * Some or all of this work - Copyright (c) 2006 - 2016, Intel Corp. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * Neither the name of Intel Corporation nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * Test of Return */ Name(z139, 139) Method(mf72, 1, Serialized) { Name(i000, 0) Name(cmp0, 0) Name(md00, 0) Store(arg0, md00) Name(ts, "mf72") Method(m000) { } Method(m001) { if (0xabcd0001) { return (0xabcd0010) } } Method(m002) { if (0xabcd0000) { if (0xabcd0001) { return (0xabcd0010) }} } Method(m003) { while (0xabcd0000) { return (0xabcd0020) } } Method(m004, 7, Serialized) { Name(ret4, 0) Name(r400, 0) Name(r401, 0) Name(r402, 0) Name(r403, 0) Name(r404, 0) Name(r405, 0) Name(r406, 0) Name(r407, 0) Method(m005, 7, Serialized) { Name(ret5, 0) Name(r500, 0) Name(r501, 0) Name(r502, 0) Name(r503, 0) Name(r504, 0) Name(r505, 0) Name(r506, 0) Name(r507, 0) Method(m006, 7, Serialized) { Name(ret6, 0) Name(r600, 0) Name(r601, 0) Name(r602, 0) Name(r603, 0) Name(r604, 0) Name(r605, 0) Name(r606, 0) Name(r607, 0) Method(m007, 7, Serialized) { Name(ret7, 0) Name(r700, 0) Name(r701, 0) Name(r702, 0) Name(r703, 0) Name(r704, 0) Name(r705, 0) Name(r706, 0) Name(r707, 0) Method(m008, 7) { Name(ret8, 0) Name(i000, 0) Name(i001, 0) Name(i002, 0) Name(i003, 0) m000() m001() if (Store(0xaaaa0007, i001)) { Increment(i002) Store(Add(0xaaaa0008, 0), Local5) Store(Subtract(0xaaaa0009, 0), Local5) if (LEqual(arg0, 0)) { return (0x55550000) } Store(Multiply(0xaaaa000a, 1), Local5) Store(0xaaaa000d, i001) Decrement(i001) } m002() m003() while (0xabcd0000) { m000() m001() if (LEqual(arg0, 1)) { return (0x55550001) } Store(0, i000) m002() m003() Switch (0xabcd0100) { case (0xabcd0100) { if (0xabcd0001) { while (0xabcd0002) { if (LNotEqual(arg0, 2)) { while (0xabcd0004) { if (Store(0xaaaa0007, i001)) { Increment(i002) Store(Add(0xaaaa0008, 0), Local5) Store(Subtract(0xaaaa0009, 0), Local5) if (LEqual(arg0, 3)) { return (0x55550003) } Store(Multiply(0xaaaa000a, 1), Local5) Store(0xaaaa000d, i001) Decrement(i001) } Switch (0xabcd0200) { case (0xabcd0300) { Store("Never", Debug) } Default { if (0xabcd0005) { while (0xabcd0006) { if (LNotEqual(arg0, 4)) { m000() m001() if (LEqual(arg0, 5)) { return (0x55550005) } m002() m003() while (0xabcd0008) { if (LEqual(arg0, 6)) { return (0x55550006) } if (0xabcd0009) { if (LEqual(arg0, 7)) { return (0x55550007) } while (0xabcd000a) { if (LNotEqual(arg0, 8)) { while (0xabcd000c) { if (0xabcd000d) { while (0xabcd000e) { if (0xabcd000f) { if (0) { Store("Impossible 0", Debug) } else { if (0xabcd0010) { Store(100, i003) switch (i003) { case (1) { return (0xdddd0000) } case (2) { return (0xdddd0001) } Default { return (0x55550009) } } return (0xdddd0002) } } } } } } m000() m001() } else { m002() m003() Store(1, i003) switch (i003) { case (1) { return (0x55550008) } case (2) { return (0xdddd0003) } Default { return (0xdddd0004) } } return (0xdddd0005) } } } } m000() m001() m002() m003() } else { Store(2, i003) switch (i003) { case (1) { return (0xdddd0006) } case (2) { return (0x55550004) } Default { return (0xdddd0007) } } return (0xdddd0008) } } } } /* Default 0xabcd0300 */ } /* Switch (0xabcd0200) */ } } else { return (0x55550002) } } } } /* case (0xabcd0100) */ } /* Switch (0xabcd0100) */ } return (ret8) } /* m008 */ Method(m009, 7) { Name(ret9, 0) Name(r900, 0) Name(r901, 0) Name(r902, 0) Name(r903, 0) Name(r904, 0) Name(r905, 0) Name(r906, 0) Name(r907, 0) Name(i000, 0) Name(i001, 0) Name(i002, 0) Name(i003, 0) m000() m001() if (Store(0xaaaa0007, i001)) { Increment(i002) Store(Add(0xaaaa0008, 0), Local5) Store(Subtract(0xaaaa0009, 0), Local5) if (LEqual(arg0, 0)) { CopyObject(Store(CopyObject(Store(CopyObject(CopyObject(Store(Store( m008(arg0, arg1, arg2, arg3, arg4, arg5, arg6), r900), r901), r902), r903), r904), r905), r906), ret9) return (ret9) // return (0x55550000) } Store(Multiply(0xaaaa000a, 1), Local5) Store(0xaaaa000d, i001) Decrement(i001) } m002() m003() while (0xabcd0000) { m000() m001() if (LEqual(arg0, 1)) { Store(Store(CopyObject(Store(Store(Store(Store(Store( m008(arg0, arg1, arg2, arg3, arg4, arg5, arg6), r900), r901), r902), r903), r904), r905), r906), ret9) return (ret9) // return (0x55550001) } Store(0, i000) m002() m003() Switch (0xabcd0100) { case (0xabcd0100) { if (0xabcd0001) { while (0xabcd0002) { if (LNotEqual(arg0, 2)) { while (0xabcd0004) { if (Store(0xaaaa0007, i001)) { Increment(i002) Store(Add(0xaaaa0008, 0), Local5) Store(Subtract(0xaaaa0009, 0), Local5) if (LEqual(arg0, 3)) { Store(Store(CopyObject(Store(Store(Store(Store(Store( m008(arg0, arg1, arg2, arg3, arg4, arg5, arg6), r900), r901), r902), r903), r904), r905), r906), ret9) return (ret9) // return (0x55550003) } Store(Multiply(0xaaaa000a, 1), Local5) Store(0xaaaa000d, i001) Decrement(i001) } Switch (0xabcd0200) { case (0xabcd0300) { Store("Never", Debug) } Default { if (0xabcd0005) { while (0xabcd0006) { if (LNotEqual(arg0, 4)) { m000() m001() if (LEqual(arg0, 5)) { Store(Store(CopyObject(Store(Store(Store(Store(Store( m008(arg0, arg1, arg2, arg3, arg4, arg5, arg6), r900), r901), r902), r903), r904), r905), r906), ret9) return (ret9) // return (0x55550005) } m002() m003() while (0xabcd0008) { if (LEqual(arg0, 6)) { Store(Store(CopyObject(Store(Store(Store(Store(Store( m008(arg0, arg1, arg2, arg3, arg4, arg5, arg6), r900), r901), r902), r903), r904), r905), r906), ret9) return (ret9) // return (0x55550006) } if (0xabcd0009) { if (LEqual(arg0, 7)) { Store(Store(CopyObject(Store(Store(Store(Store(Store( m008(arg0, arg1, arg2, arg3, arg4, arg5, arg6), r900), r901), r902), r903), r904), r905), r906), ret9) return (ret9) // return (0x55550007) } while (0xabcd000a) { if (LNotEqual(arg0, 8)) { while (0xabcd000c) { if (0xabcd000d) { while (0xabcd000e) { if (0xabcd000f) { if (0) { Store("Impossible 0", Debug) } else { if (0xabcd0010) { Store(100, i003) switch (i003) { case (1) { return (0xdddd0000) } case (2) { return (0xdddd0001) } Default { Store(Store(CopyObject(Store(Store(Store(Store(Store( m008(arg0, arg1, arg2, arg3, arg4, arg5, arg6), r900), r901), r902), r903), r904), r905), r906), ret9) return (ret9) // return (0x55550009) } } return (0xdddd0002) } } } } } } m000() m001() } else { m002() m003() Store(1, i003) switch (i003) { case (1) { Store(Store(CopyObject(Store(Store(Store(Store(Store( m008(arg0, arg1, arg2, arg3, arg4, arg5, arg6), r900), r901), r902), r903), r904), r905), r906), ret9) return (ret9) // return (0x55550008) } case (2) { return (0xdddd0003) } Default { return (0xdddd0004) } } return (0xdddd0005) } } } } m000() m001() m002() m003() } else { Store(2, i003) switch (i003) { case (1) { return (0xdddd0006) } case (2) { Store(Store(CopyObject(Store(Store(Store(Store(Store( m008(arg0, arg1, arg2, arg3, arg4, arg5, arg6), r900), r901), r902), r903), r904), r905), r906), ret9) return (ret9) // return (0x55550004) } Default { return (0xdddd0007) } } return (0xdddd0008) } } } } /* Default 0xabcd0300 */ } /* Switch (0xabcd0200) */ } } else { Store(Store(CopyObject(Store(Store(Store(Store(Store( m008(arg0, arg1, arg2, arg3, arg4, arg5, arg6), r900), r901), r902), r903), r904), r905), r906), ret9) return (ret9) // return (0x55550002) } } } } /* case (0xabcd0100) */ } /* Switch (0xabcd0100) */ } return (ret9) } /* m009 */ Store(arg0, Local0) Store(arg1, Local1) Store(arg2, Local2) Store(arg3, Local3) Store(arg4, Local4) Store(arg5, Local5) Store(arg6, Local6) if (LEqual(md00, 0)) { CopyObject(Store(CopyObject(Store(CopyObject(CopyObject(Store(Store( m008(arg0, arg1, arg2, arg3, arg4, arg5, arg6), r700), r701), r702), r703), r704), r705), r706), ret7) } else { Store(Store(Store(Store(Store(Store(Store(Store( m009(arg0, arg1, arg2, arg3, arg4, arg5, arg6), r700), r701), r702), r703), r704), r705), r706), ret7) } m4c0(ts, arg0, Local0, Local0) m4c0(ts, arg1, Local1, Local1) m4c0(ts, arg2, Local2, Local2) m4c0(ts, arg3, Local3, Local3) m4c0(ts, arg4, Local4, Local4) m4c0(ts, arg5, Local5, Local5) m4c0(ts, arg6, Local6, Local6) return (ret7) } /* m007 */ Store(arg0, Local0) Store(arg1, Local1) Store(arg2, Local2) Store(arg3, Local3) Store(arg4, Local4) Store(arg5, Local5) Store(arg6, Local6) // CopyObject(CopyObject(CopyObject(CopyObject(CopyObject(CopyObject(CopyObject(CopyObject( CopyObject(CopyObject(CopyObject(CopyObject(CopyObject(CopyObject(CopyObject(Store( m007(arg0, arg1, arg2, arg3, arg4, arg5, arg6), r600), r601), r602), r603), r604), r605), r606), ret6) m4c0(ts, arg0, Local0, Local0) m4c0(ts, arg1, Local1, Local1) m4c0(ts, arg2, Local2, Local2) m4c0(ts, arg3, Local3, Local3) m4c0(ts, arg4, Local4, Local4) m4c0(ts, arg5, Local5, Local5) m4c0(ts, arg6, Local6, Local6) return (ret6) } /* m006 */ Store(arg0, Local0) Store(arg1, Local1) Store(arg2, Local2) Store(arg3, Local3) Store(arg4, Local4) Store(arg5, Local5) Store(arg6, Local6) Store(Store(Store(Store(Store(Store(Store(Store( m006(arg0, arg1, arg2, arg3, arg4, arg5, arg6), r500), r501), r502), r503), r504), r505), r506), ret5) m4c0(ts, arg0, Local0, Local0) m4c0(ts, arg1, Local1, Local1) m4c0(ts, arg2, Local2, Local2) m4c0(ts, arg3, Local3, Local3) m4c0(ts, arg4, Local4, Local4) m4c0(ts, arg5, Local5, Local5) m4c0(ts, arg6, Local6, Local6) return (ret5) } /* m005 */ Store(arg0, Local0) Store(arg1, Local1) Store(arg2, Local2) Store(arg3, Local3) Store(arg4, Local4) Store(arg5, Local5) Store(arg6, Local6) Store(Store(Store(Store(Store(Store(Store(Store( m005(arg0, arg1, arg2, arg3, arg4, arg5, arg6), r400), r401), r402), r403), r404), r405), r406), ret4) m4c0(ts, arg0, Local0, Local0) m4c0(ts, arg1, Local1, Local1) m4c0(ts, arg2, Local2, Local2) m4c0(ts, arg3, Local3, Local3) m4c0(ts, arg4, Local4, Local4) m4c0(ts, arg5, Local5, Local5) m4c0(ts, arg6, Local6, Local6) return (ret4) } /* m004 */ // ===================== 0: Store(0x55550000, cmp0) Store(0, Local0) Store(0xaaaa0001, Local1) Store(0xaaaa0002, Local2) Store(0xaaaa0003, Local3) Store(0xaaaa0004, Local4) Store(0xaaaa0005, Local5) Store(0xaaaa0006, Local6) Store(0xaaaa0007, Local7) Store( m004(Local0, Local1, Local2, Local3, Local4, Local5, Local6), i000) if (LNotEqual(i000, cmp0)) { err("", z139, 0x000, 0, 0, i000, cmp0) } m4c0(ts, Local0, 0, 0) m4c0(ts, Local1, 0xaaaa0001, 0xaaaa0001) m4c0(ts, Local2, 0xaaaa0002, 0xaaaa0002) m4c0(ts, Local3, 0xaaaa0003, 0xaaaa0003) m4c0(ts, Local4, 0xaaaa0004, 0xaaaa0004) m4c0(ts, Local5, 0xaaaa0005, 0xaaaa0005) m4c0(ts, Local6, 0xaaaa0006, 0xaaaa0006) m4c0(ts, Local7, 0xaaaa0007, 0xaaaa0007) // ===================== 1: Store(0x55550001, cmp0) Store(1, Local0) Store( m004(Local0, Local1, Local2, Local3, Local4, Local5, Local6), i000) if (LNotEqual(i000, cmp0)) { err("", z139, 0x001, 0, 0, i000, cmp0) } m4c0(ts, Local0, 1, 1) m4c0(ts, Local1, 0xaaaa0001, 0xaaaa0001) m4c0(ts, Local2, 0xaaaa0002, 0xaaaa0002) m4c0(ts, Local3, 0xaaaa0003, 0xaaaa0003) m4c0(ts, Local4, 0xaaaa0004, 0xaaaa0004) m4c0(ts, Local5, 0xaaaa0005, 0xaaaa0005) m4c0(ts, Local6, 0xaaaa0006, 0xaaaa0006) m4c0(ts, Local7, 0xaaaa0007, 0xaaaa0007) // ===================== 2: Store(0x55550002, cmp0) Store(2, Local0) Store( m004(Local0, Local1, Local2, Local3, Local4, Local5, Local6), i000) if (LNotEqual(i000, cmp0)) { err("", z139, 0x002, 0, 0, i000, cmp0) } m4c0(ts, Local0, 2, 2) m4c0(ts, Local1, 0xaaaa0001, 0xaaaa0001) m4c0(ts, Local2, 0xaaaa0002, 0xaaaa0002) m4c0(ts, Local3, 0xaaaa0003, 0xaaaa0003) m4c0(ts, Local4, 0xaaaa0004, 0xaaaa0004) m4c0(ts, Local5, 0xaaaa0005, 0xaaaa0005) m4c0(ts, Local6, 0xaaaa0006, 0xaaaa0006) m4c0(ts, Local7, 0xaaaa0007, 0xaaaa0007) // ===================== 3: Store(0x55550003, cmp0) Store(3, Local0) Store( m004(Local0, Local1, Local2, Local3, Local4, Local5, Local6), i000) if (LNotEqual(i000, cmp0)) { err("", z139, 0x003, 0, 0, i000, cmp0) } m4c0(ts, Local0, 3, 3) m4c0(ts, Local1, 0xaaaa0001, 0xaaaa0001) m4c0(ts, Local2, 0xaaaa0002, 0xaaaa0002) m4c0(ts, Local3, 0xaaaa0003, 0xaaaa0003) m4c0(ts, Local4, 0xaaaa0004, 0xaaaa0004) m4c0(ts, Local5, 0xaaaa0005, 0xaaaa0005) m4c0(ts, Local6, 0xaaaa0006, 0xaaaa0006) m4c0(ts, Local7, 0xaaaa0007, 0xaaaa0007) // ===================== 4: Store(0x55550004, cmp0) Store(4, Local0) Store( m004(Local0, Local1, Local2, Local3, Local4, Local5, Local6), i000) if (LNotEqual(i000, cmp0)) { err("", z139, 0x004, 0, 0, i000, cmp0) } m4c0(ts, Local0, 4, 4) m4c0(ts, Local1, 0xaaaa0001, 0xaaaa0001) m4c0(ts, Local2, 0xaaaa0002, 0xaaaa0002) m4c0(ts, Local3, 0xaaaa0003, 0xaaaa0003) m4c0(ts, Local4, 0xaaaa0004, 0xaaaa0004) m4c0(ts, Local5, 0xaaaa0005, 0xaaaa0005) m4c0(ts, Local6, 0xaaaa0006, 0xaaaa0006) m4c0(ts, Local7, 0xaaaa0007, 0xaaaa0007) // ===================== 5: Store(0x55550005, cmp0) Store(5, Local0) Store( m004(Local0, Local1, Local2, Local3, Local4, Local5, Local6), i000) if (LNotEqual(i000, cmp0)) { err("", z139, 0x005, 0, 0, i000, cmp0) } m4c0(ts, Local0, 5, 5) m4c0(ts, Local1, 0xaaaa0001, 0xaaaa0001) m4c0(ts, Local2, 0xaaaa0002, 0xaaaa0002) m4c0(ts, Local3, 0xaaaa0003, 0xaaaa0003) m4c0(ts, Local4, 0xaaaa0004, 0xaaaa0004) m4c0(ts, Local5, 0xaaaa0005, 0xaaaa0005) m4c0(ts, Local6, 0xaaaa0006, 0xaaaa0006) m4c0(ts, Local7, 0xaaaa0007, 0xaaaa0007) // ===================== 6: Store(0x55550006, cmp0) Store(6, Local0) Store( m004(Local0, Local1, Local2, Local3, Local4, Local5, Local6), i000) if (LNotEqual(i000, cmp0)) { err("", z139, 0x006, 0, 0, i000, cmp0) } m4c0(ts, Local0, 6, 6) m4c0(ts, Local1, 0xaaaa0001, 0xaaaa0001) m4c0(ts, Local2, 0xaaaa0002, 0xaaaa0002) m4c0(ts, Local3, 0xaaaa0003, 0xaaaa0003) m4c0(ts, Local4, 0xaaaa0004, 0xaaaa0004) m4c0(ts, Local5, 0xaaaa0005, 0xaaaa0005) m4c0(ts, Local6, 0xaaaa0006, 0xaaaa0006) m4c0(ts, Local7, 0xaaaa0007, 0xaaaa0007) // ===================== 7: Store(0x55550007, cmp0) Store(7, Local0) Store( m004(Local0, Local1, Local2, Local3, Local4, Local5, Local6), i000) if (LNotEqual(i000, cmp0)) { err("", z139, 0x007, 0, 0, i000, cmp0) } m4c0(ts, Local0, 7, 7) m4c0(ts, Local1, 0xaaaa0001, 0xaaaa0001) m4c0(ts, Local2, 0xaaaa0002, 0xaaaa0002) m4c0(ts, Local3, 0xaaaa0003, 0xaaaa0003) m4c0(ts, Local4, 0xaaaa0004, 0xaaaa0004) m4c0(ts, Local5, 0xaaaa0005, 0xaaaa0005) m4c0(ts, Local6, 0xaaaa0006, 0xaaaa0006) m4c0(ts, Local7, 0xaaaa0007, 0xaaaa0007) // ===================== 8: Store(0x55550008, cmp0) Store(8, Local0) Store( m004(Local0, Local1, Local2, Local3, Local4, Local5, Local6), i000) if (LNotEqual(i000, cmp0)) { err("", z139, 0x008, 0, 0, i000, cmp0) } m4c0(ts, Local0, 8, 8) m4c0(ts, Local1, 0xaaaa0001, 0xaaaa0001) m4c0(ts, Local2, 0xaaaa0002, 0xaaaa0002) m4c0(ts, Local3, 0xaaaa0003, 0xaaaa0003) m4c0(ts, Local4, 0xaaaa0004, 0xaaaa0004) m4c0(ts, Local5, 0xaaaa0005, 0xaaaa0005) m4c0(ts, Local6, 0xaaaa0006, 0xaaaa0006) m4c0(ts, Local7, 0xaaaa0007, 0xaaaa0007) // ===================== 9: Store(0x55550009, cmp0) Store(9, Local0) Store( m004(Local0, Local1, Local2, Local3, Local4, Local5, Local6), i000) if (LNotEqual(i000, cmp0)) { err("", z139, 0x009, 0, 0, i000, cmp0) } m4c0(ts, Local0, 9, 9) m4c0(ts, Local1, 0xaaaa0001, 0xaaaa0001) m4c0(ts, Local2, 0xaaaa0002, 0xaaaa0002) m4c0(ts, Local3, 0xaaaa0003, 0xaaaa0003) m4c0(ts, Local4, 0xaaaa0004, 0xaaaa0004) m4c0(ts, Local5, 0xaaaa0005, 0xaaaa0005) m4c0(ts, Local6, 0xaaaa0006, 0xaaaa0006) m4c0(ts, Local7, 0xaaaa0007, 0xaaaa0007) } Method(mf73) { SRMT("mf72(0)") mf72(0) SRMT("mf72(1)") mf72(1) }