From 0cd369451aa78ef253f0e60cd92b165cdc889148 Mon Sep 17 00:00:00 2001 From: Ben Elliston Date: Mon, 4 Dec 2000 04:05:45 +0000 Subject: [PATCH] 2000-12-04 Ben Elliston * cgen-ops.h (SUBWORDSIQI): Mask off top bits. (SUBWORDSIUQI): Likewise. (SUBWORDDIHI): Likewise. (SUBWORDDIQI): New function. --- sim/common/ChangeLog | 5 +++++ sim/common/cgen-ops.h | 14 +++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog index ec82ccbcc5..074fcd7486 100644 --- a/sim/common/ChangeLog +++ b/sim/common/ChangeLog @@ -1,5 +1,10 @@ 2000-12-04 Ben Elliston + * cgen-ops.h (SUBWORDSIQI): Mask off top bits. + (SUBWORDSIUQI): Likewise. + (SUBWORDDIHI): Likewise. + (SUBWORDDIQI): New function. + * cgen-trace.c (disassemble_insn): Remove unused declaration. * cgen-scache.c (scache_option_handler): Remove unused local var. diff --git a/sim/common/cgen-ops.h b/sim/common/cgen-ops.h index 83f4459242..d829e930e7 100644 --- a/sim/common/cgen-ops.h +++ b/sim/common/cgen-ops.h @@ -323,21 +323,28 @@ SEMOPS_INLINE QI SUBWORDSIQI (SI in, int byte) { assert (byte >= 0 && byte <= 3); - return (UQI) (in >> (8 * (3 - byte))); + return (UQI) (in >> (8 * (3 - byte))) & 0xFF; } SEMOPS_INLINE UQI SUBWORDSIUQI (SI in, int byte) { assert (byte >= 0 && byte <= 3); - return (UQI) (in >> (8 * (3 - byte))); + return (UQI) (in >> (8 * (3 - byte))) & 0xFF; +} + +SEMOPS_INLINE QI +SUBWORDDIQI (DI in, int byte) +{ + assert (byte >= 0 && byte <= 7); + return (UQI) (in >> (8 * (7 - byte))) & 0xFF; } SEMOPS_INLINE HI SUBWORDDIHI (DI in, int word) { assert (word >= 0 && word <= 3); - return (UHI) (in >> (16 * (3 - word))); + return (UHI) (in >> (16 * (3 - word))) & 0xFFFF; } SEMOPS_INLINE HI @@ -450,6 +457,7 @@ HI SUBWORDSIHI (HI); SI SUBWORDSFSI (SF); SF SUBWORDSISF (SI); DF SUBWORDDIDF (DI); +QI SUBWORDDIQI (DI, int); HI SUBWORDDIHI (DI, int); SI SUBWORDDISI (DI, int); SI SUBWORDDFSI (DF, int); -- 2.11.0