mirror of
https://github.com/acpica/acpica/
synced 2025-02-13 12:04:08 +03:00
ASLTS: Fixes for slack mode failures.
This patch fixes the failure reported for the following ASLTS test: exceptions:exc_result2:m692-Inc-Exc (32/64 bit slack mode) exceptions:exc_result2:m692-Dec-Exc (32/64 bit slack mode) The test cases expect exceptions generated for mismatched types during implicit conversions happened to Increment/Decrement opcodes. And the [Unitialized] object could never be converted into object with any other types. But the "FAIL" is emitted due to the slack mode which converts [Uninitialized] operand into 0-valued Integer, thus no type mismatch can be examined for these test cases. The command to confirm this test: aslts.sh -m s32 -m s64 -c exc_result2 -t The result in __STATUS_OF_TESTS before applying this fix: ":STST:exceptions:exc_result2:m692-Inc-Exc:FAIL:Errors # 02 00 00 00:" ":STST:exceptions:exc_result2:m692-Dec-Exc:FAIL:Errors # 02 00 00 00:" The result in __STATUS_OF_TESTS after applying this fix: ":STST:exceptions:exc_result2:m692-Inc-Exc:PASS:" ":STST:exceptions:exc_result2:m692-Dec-Exc:PASS:" Signed-off-by: Lv Zheng <lv.zheng@intel.com>
This commit is contained in:
parent
3911d32046
commit
99ff9c30be
@ -561,10 +561,10 @@ Method(m692, 2, Serialized)
|
||||
Return (1)
|
||||
}
|
||||
|
||||
if (LEqual(arg4, 0)) { // Increment
|
||||
Increment(Local1)
|
||||
if (LEqual(arg4, 0)) { // Increment
|
||||
Increment(Local1)
|
||||
} elseif (LEqual(arg4, 1)) { // Decrement
|
||||
Decrement(Local1)
|
||||
Decrement(Local1)
|
||||
} else {
|
||||
// Unexpected Kind of Op (0 - Increment, 1 - Decrement)
|
||||
err(Concatenate(arg0, terr), z125, 25, 0, 0, arg4, 0)
|
||||
@ -572,9 +572,20 @@ Method(m692, 2, Serialized)
|
||||
}
|
||||
|
||||
if (arg5) {
|
||||
// Exception is expected
|
||||
if (LNot(CH06(arg0, 26, 0xff))) {
|
||||
if (STCS) {m000(2, 0x100, arg2, arg3)}
|
||||
if (LAnd(SLCK, LAnd(LEqual(ToInteger(arg3), 0),
|
||||
LEqual(ToInteger(arg2), 1)))) {
|
||||
// In slack mode, [Uninitialized] object
|
||||
// will be converted to Integer 0, thus no
|
||||
// exception caused by implicit source
|
||||
// conversion.
|
||||
if (CH03(arg0, z125, 26, arg3, arg2)) {
|
||||
if (STCS) {m000(2, 0x100, arg2, arg3)}
|
||||
}
|
||||
} else {
|
||||
// Exception is expected
|
||||
if (LNot(CH06(arg0, 26, 0xff))) {
|
||||
if (STCS) {m000(2, 0x100, arg2, arg3)}
|
||||
}
|
||||
}
|
||||
} elseif (CH03(arg0, z125, 27, arg3, arg2)) {
|
||||
// Processing caused unexpected exception
|
||||
@ -621,7 +632,7 @@ Method(m692, 2, Serialized)
|
||||
Return (1)
|
||||
}
|
||||
|
||||
if (LEqual(arg4, 0)) { // Increment
|
||||
if (LEqual(arg4, 0)) { // Increment
|
||||
Store(m100(Local1), Local2)
|
||||
} elseif (LEqual(arg4, 1)) { // Decrement
|
||||
Store(m101(Local1), Local2)
|
||||
@ -632,9 +643,20 @@ Method(m692, 2, Serialized)
|
||||
}
|
||||
|
||||
if (arg5) {
|
||||
// Exception is expected
|
||||
if (LNot(CH06(arg0, 30, 0xff))) {
|
||||
if (STCS) {m000(2, 0x100, arg2, arg3)}
|
||||
if (LAnd(SLCK, LAnd(LEqual(ToInteger(arg3), 0),
|
||||
LEqual(ToInteger(arg2), 1)))) {
|
||||
// In slack mode, [Uninitialized] object
|
||||
// will be converted to Integer 0, thus no
|
||||
// exception caused by implicit source
|
||||
// conversion.
|
||||
if (CH03(arg0, z125, 30, arg3, arg2)) {
|
||||
if (STCS) {m000(2, 0x100, arg2, arg3)}
|
||||
}
|
||||
} else {
|
||||
// Exception is expected
|
||||
if (LNot(CH06(arg0, 30, 0xff))) {
|
||||
if (STCS) {m000(2, 0x100, arg2, arg3)}
|
||||
}
|
||||
}
|
||||
} elseif (CH03(arg0, z125, 31, arg3, arg2)) {
|
||||
// Processing caused unexpected exception
|
||||
|
Loading…
x
Reference in New Issue
Block a user